mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-06 01:50:38 +00:00
Add support for all GL 4.6 extensions except SPIR-V
This commit is contained in:
@@ -402,6 +402,7 @@ extern bool IsGLES;
|
||||
EXT_TO_CHECK(33, 30, ARB_explicit_attrib_location) \
|
||||
EXT_TO_CHECK(33, 30, ARB_sampler_objects) \
|
||||
EXT_TO_CHECK(33, 30, ARB_texture_swizzle) \
|
||||
EXT_TO_CHECK(33, 30, ARB_occlusion_query2) \
|
||||
EXT_TO_CHECK(40, 32, ARB_draw_buffers_blend) \
|
||||
EXT_TO_CHECK(40, 31, ARB_draw_indirect) \
|
||||
EXT_TO_CHECK(40, 32, ARB_gpu_shader5) \
|
||||
@@ -433,13 +434,14 @@ extern bool IsGLES;
|
||||
EXT_TO_CHECK(44, 99, ARB_enhanced_layouts) \
|
||||
EXT_TO_CHECK(44, 99, ARB_query_buffer_object) \
|
||||
EXT_TO_CHECK(45, 99, ARB_clip_control) \
|
||||
EXT_TO_CHECK(46, 99, ARB_polygon_offset_clamp) \
|
||||
EXT_TO_CHECK(46, 99, ARB_texture_filter_anisotropic) \
|
||||
EXT_TO_CHECK(46, 99, ARB_pipeline_statistics_query) \
|
||||
EXT_TO_CHECK(99, 99, ARB_indirect_parameters) \
|
||||
EXT_TO_CHECK(99, 99, ARB_seamless_cubemap_per_texture) \
|
||||
EXT_TO_CHECK(99, 99, EXT_depth_bounds_test) \
|
||||
EXT_TO_CHECK(99, 99, EXT_direct_state_access) \
|
||||
EXT_TO_CHECK(99, 99, EXT_polygon_offset_clamp) \
|
||||
EXT_TO_CHECK(99, 99, EXT_raster_multisample) \
|
||||
EXT_TO_CHECK(99, 99, EXT_texture_filter_anisotropic) \
|
||||
EXT_TO_CHECK(99, 30, EXT_texture_swizzle) \
|
||||
EXT_TO_CHECK(99, 99, KHR_blend_equation_advanced_coherent) \
|
||||
/* OpenGL ES extensions */ \
|
||||
@@ -457,8 +459,12 @@ extern bool IsGLES;
|
||||
EXT_TO_CHECK(99, 99, NV_read_depth_stencil) \
|
||||
EXT_TO_CHECK(99, 99, EXT_disjoint_timer_query)
|
||||
|
||||
// GL extensions and their roughly equivalent GLES alternatives
|
||||
// GL extensions equivalents
|
||||
// Either promoted extensions from EXT to ARB, or
|
||||
// desktop extensions and their roughly equivalent GLES alternatives
|
||||
#define EXTENSION_COMPATIBILITY_CHECKS() \
|
||||
EXT_COMP_CHECK(ARB_polygon_offset_clamp, EXT_polygon_offset_clamp) \
|
||||
EXT_COMP_CHECK(ARB_texture_filter_anisotropic, EXT_texture_filter_anisotropic) \
|
||||
EXT_COMP_CHECK(ARB_base_instance, EXT_base_instance) \
|
||||
EXT_COMP_CHECK(ARB_copy_image, EXT_copy_image) \
|
||||
EXT_COMP_CHECK(ARB_copy_image, OES_copy_image) \
|
||||
@@ -1760,6 +1766,12 @@ enum class GLChunk : uint32_t
|
||||
|
||||
glContextInit,
|
||||
|
||||
glMultiDrawArraysIndirectCount,
|
||||
glMultiDrawElementsIndirectCount,
|
||||
glPolygonOffsetClamp,
|
||||
glMaxShaderCompilerThreadsARB,
|
||||
glMaxShaderCompilerThreadsKHR,
|
||||
|
||||
Max,
|
||||
};
|
||||
|
||||
|
||||
@@ -71,18 +71,24 @@ vector<GPUCounter> GLReplay::EnumerateCounters()
|
||||
vector<GPUCounter> ret;
|
||||
|
||||
ret.push_back(GPUCounter::EventGPUDuration);
|
||||
ret.push_back(GPUCounter::InputVerticesRead);
|
||||
ret.push_back(GPUCounter::IAPrimitives);
|
||||
ret.push_back(GPUCounter::GSPrimitives);
|
||||
ret.push_back(GPUCounter::RasterizerInvocations);
|
||||
ret.push_back(GPUCounter::RasterizedPrimitives);
|
||||
ret.push_back(GPUCounter::SamplesPassed);
|
||||
ret.push_back(GPUCounter::VSInvocations);
|
||||
ret.push_back(GPUCounter::TCSInvocations);
|
||||
ret.push_back(GPUCounter::TESInvocations);
|
||||
ret.push_back(GPUCounter::GSInvocations);
|
||||
ret.push_back(GPUCounter::PSInvocations);
|
||||
ret.push_back(GPUCounter::CSInvocations);
|
||||
|
||||
if(HasExt[ARB_occlusion_query2])
|
||||
ret.push_back(GPUCounter::SamplesPassed);
|
||||
|
||||
if(HasExt[ARB_pipeline_statistics_query])
|
||||
{
|
||||
ret.push_back(GPUCounter::InputVerticesRead);
|
||||
ret.push_back(GPUCounter::IAPrimitives);
|
||||
ret.push_back(GPUCounter::GSPrimitives);
|
||||
ret.push_back(GPUCounter::RasterizerInvocations);
|
||||
ret.push_back(GPUCounter::RasterizedPrimitives);
|
||||
ret.push_back(GPUCounter::VSInvocations);
|
||||
ret.push_back(GPUCounter::TCSInvocations);
|
||||
ret.push_back(GPUCounter::TESInvocations);
|
||||
ret.push_back(GPUCounter::GSInvocations);
|
||||
ret.push_back(GPUCounter::PSInvocations);
|
||||
ret.push_back(GPUCounter::CSInvocations);
|
||||
}
|
||||
|
||||
if(m_pAMDCounters)
|
||||
{
|
||||
|
||||
@@ -94,10 +94,12 @@ void WrappedOpenGL::BuildGLExtensions()
|
||||
m_GLExtensions.push_back("GL_ARB_multitexture");
|
||||
m_GLExtensions.push_back("GL_ARB_occlusion_query");
|
||||
m_GLExtensions.push_back("GL_ARB_occlusion_query2");
|
||||
m_GLExtensions.push_back("GL_ARB_parallel_shader_compile");
|
||||
m_GLExtensions.push_back("GL_ARB_pixel_buffer_object");
|
||||
m_GLExtensions.push_back("GL_ARB_pipeline_statistics_query");
|
||||
m_GLExtensions.push_back("GL_ARB_point_parameters");
|
||||
m_GLExtensions.push_back("GL_ARB_point_sprite");
|
||||
m_GLExtensions.push_back("GL_ARB_polygon_offset_clamp");
|
||||
m_GLExtensions.push_back("GL_ARB_post_depth_coverage");
|
||||
m_GLExtensions.push_back("GL_ARB_program_interface_query");
|
||||
m_GLExtensions.push_back("GL_ARB_provoking_vertex");
|
||||
@@ -146,6 +148,7 @@ void WrappedOpenGL::BuildGLExtensions()
|
||||
m_GLExtensions.push_back("GL_ARB_texture_compression_rgtc");
|
||||
m_GLExtensions.push_back("GL_ARB_texture_cube_map");
|
||||
m_GLExtensions.push_back("GL_ARB_texture_cube_map_array");
|
||||
m_GLExtensions.push_back("GL_ARB_texture_filter_anisotropic");
|
||||
m_GLExtensions.push_back("GL_ARB_texture_float");
|
||||
m_GLExtensions.push_back("GL_ARB_texture_gather");
|
||||
m_GLExtensions.push_back("GL_ARB_texture_mirror_clamp_to_edge");
|
||||
@@ -240,6 +243,7 @@ void WrappedOpenGL::BuildGLExtensions()
|
||||
m_GLExtensions.push_back("GL_KHR_context_flush_control");
|
||||
m_GLExtensions.push_back("GL_KHR_debug");
|
||||
m_GLExtensions.push_back("GL_KHR_no_error");
|
||||
m_GLExtensions.push_back("GL_KHR_parallel_shader_compile");
|
||||
m_GLExtensions.push_back("GL_KHR_robustness");
|
||||
m_GLExtensions.push_back("GL_KHR_robust_buffer_access_behavior");
|
||||
|
||||
@@ -272,7 +276,6 @@ void WrappedOpenGL::BuildGLExtensions()
|
||||
support if it's supported on replaying driver'?
|
||||
* GL_ARB_ES3_2_compatibility
|
||||
* GL_ARB_gpu_shader_int64
|
||||
* GL_ARB_parallel_shader_compile
|
||||
* GL_ARB_sample_locations
|
||||
* GL_ARB_texture_filter_minmax
|
||||
|
||||
@@ -3212,9 +3215,11 @@ bool WrappedOpenGL::ProcessChunk(ReadSerialiser &ser, GLChunk chunk)
|
||||
case GLChunk::glMultiDrawElementsIndirect:
|
||||
return Serialise_glMultiDrawElementsIndirect(ser, eGL_NONE, eGL_NONE, 0, 0, 0);
|
||||
case GLChunk::glMultiDrawArraysIndirectCountARB:
|
||||
return Serialise_glMultiDrawArraysIndirectCountARB(ser, eGL_NONE, 0, 0, 0, 0);
|
||||
case GLChunk::glMultiDrawArraysIndirectCount:
|
||||
return Serialise_glMultiDrawArraysIndirectCount(ser, eGL_NONE, 0, 0, 0, 0);
|
||||
case GLChunk::glMultiDrawElementsIndirectCountARB:
|
||||
return Serialise_glMultiDrawElementsIndirectCountARB(ser, eGL_NONE, eGL_NONE, 0, 0, 0, 0);
|
||||
case GLChunk::glMultiDrawElementsIndirectCount:
|
||||
return Serialise_glMultiDrawElementsIndirectCount(ser, eGL_NONE, eGL_NONE, 0, 0, 0, 0);
|
||||
case GLChunk::glClearBufferfv:
|
||||
case GLChunk::glClearNamedFramebufferfv:
|
||||
return Serialise_glClearNamedFramebufferfv(ser, 0, eGL_NONE, 0, 0);
|
||||
@@ -3526,7 +3531,8 @@ bool WrappedOpenGL::ProcessChunk(ReadSerialiser &ser, GLChunk chunk)
|
||||
case GLChunk::glScissorArrayv: return Serialise_glScissorArrayv(ser, 0, 0, 0);
|
||||
case GLChunk::glPolygonMode: return Serialise_glPolygonMode(ser, eGL_NONE, eGL_NONE);
|
||||
case GLChunk::glPolygonOffset: return Serialise_glPolygonOffset(ser, 0, 0);
|
||||
case GLChunk::glPolygonOffsetClampEXT: return Serialise_glPolygonOffsetClampEXT(ser, 0, 0, 0);
|
||||
case GLChunk::glPolygonOffsetClampEXT:
|
||||
case GLChunk::glPolygonOffsetClamp: return Serialise_glPolygonOffsetClamp(ser, 0, 0, 0);
|
||||
case GLChunk::glPrimitiveBoundingBoxEXT:
|
||||
case GLChunk::glPrimitiveBoundingBoxOES:
|
||||
case GLChunk::glPrimitiveBoundingBox:
|
||||
|
||||
@@ -716,7 +716,7 @@ public:
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glPixelStoref, GLenum pname, GLfloat param);
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glPolygonMode, GLenum face, GLenum mode);
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glPolygonOffset, GLfloat factor, GLfloat units);
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glPolygonOffsetClampEXT, GLfloat factor, GLfloat units,
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glPolygonOffsetClamp, GLfloat factor, GLfloat units,
|
||||
GLfloat clamp);
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glPatchParameteri, GLenum pname, GLint param);
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glPatchParameterfv, GLenum pname, const GLfloat *params);
|
||||
@@ -1688,10 +1688,10 @@ public:
|
||||
GLsizei drawcount, GLsizei stride);
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiDrawElementsIndirect, GLenum mode, GLenum type,
|
||||
const void *indirect, GLsizei drawcount, GLsizei stride);
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiDrawArraysIndirectCountARB, GLenum mode,
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiDrawArraysIndirectCount, GLenum mode,
|
||||
const void *indirect, GLintptr drawcount, GLsizei maxdrawcount,
|
||||
GLsizei stride);
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiDrawElementsIndirectCountARB, GLenum mode, GLenum type,
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiDrawElementsIndirectCount, GLenum mode, GLenum type,
|
||||
const void *indirect, GLintptr drawcount, GLsizei maxdrawcount,
|
||||
GLsizei stride);
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glDrawArraysIndirect, GLenum mode, const void *indirect);
|
||||
@@ -2232,6 +2232,8 @@ public:
|
||||
GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY,
|
||||
GLfloat maxZ, GLfloat maxW);
|
||||
|
||||
void glMaxShaderCompilerThreadsKHR(GLuint count);
|
||||
|
||||
template <typename SerialiserType>
|
||||
bool Serialise_glFramebufferTexture2DMultisampleEXT(SerialiserType &ser, GLuint framebuffer,
|
||||
GLenum target, GLenum attachment,
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
{ \
|
||||
if(glhooks.GL.function == NULL) \
|
||||
glhooks.GL.function = (funcPtrType)realFunc; \
|
||||
return (PROC)&glhooks.CONCAT(function, _hooked); \
|
||||
return (PROC)&glhooks.CONCAT(alias, _hooked); \
|
||||
}
|
||||
|
||||
#if 0 // debug print for each unsupported function requested (but not used)
|
||||
|
||||
@@ -630,8 +630,8 @@ struct GLHookSet
|
||||
PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC glDispatchComputeGroupSizeARB;
|
||||
|
||||
// ARB_indirect_parameters
|
||||
PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC glMultiDrawArraysIndirectCountARB;
|
||||
PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC glMultiDrawElementsIndirectCountARB;
|
||||
PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC glMultiDrawArraysIndirectCount; // aliases glMultiDrawArraysIndirectCountARB
|
||||
PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC glMultiDrawElementsIndirectCount; // aliases glMultiDrawElementsIndirectCountARB
|
||||
|
||||
// EXT_raster_multisample
|
||||
PFNGLRASTERSAMPLESEXTPROC glRasterSamplesEXT;
|
||||
@@ -639,8 +639,8 @@ struct GLHookSet
|
||||
// EXT_depth_bounds_test
|
||||
PFNGLDEPTHBOUNDSEXTPROC glDepthBoundsEXT;
|
||||
|
||||
// EXT_polygon_offset_clamp
|
||||
PFNGLPOLYGONOFFSETCLAMPEXTPROC glPolygonOffsetClampEXT;
|
||||
// EXT/ARB_polygon_offset_clamp
|
||||
PFNGLPOLYGONOFFSETCLAMPPROC glPolygonOffsetClamp; // aliases glPolygonOffsetClampEXT
|
||||
|
||||
// EXT_debug_marker
|
||||
PFNGLINSERTEVENTMARKEREXTPROC glInsertEventMarkerEXT;
|
||||
@@ -659,6 +659,10 @@ struct GLHookSet
|
||||
// OVR_multiview_multisampled_render_to_texture
|
||||
PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC glFramebufferTextureMultisampleMultiviewOVR;
|
||||
|
||||
// ARB_parallel_shader_compile
|
||||
PFNGLMAXSHADERCOMPILERTHREADSKHRPROC glMaxShaderCompilerThreadsKHR; // aliases glMaxShaderCompilerThreadsARB
|
||||
|
||||
|
||||
// EXT_direct_state_access below here. We only include the functions relevant for core 3.2+ GL,
|
||||
// not any
|
||||
// functions for legacy functionality.
|
||||
|
||||
@@ -1082,9 +1082,15 @@
|
||||
HookExtensionAlias(PFNGLREADNPIXELSPROC, glReadnPixels, glReadnPixelsARB); \
|
||||
HookExtensionAlias(PFNGLREADNPIXELSPROC, glReadnPixels, glReadnPixelsEXT); \
|
||||
HookExtension(PFNGLTEXTUREBARRIERPROC, glTextureBarrier); \
|
||||
HookExtension(PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC, glMultiDrawArraysIndirectCount); \
|
||||
HookExtensionAlias(PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC, glMultiDrawArraysIndirectCount, glMultiDrawArraysIndirectCountARB); \
|
||||
HookExtension(PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC, glMultiDrawElementsIndirectCount); \
|
||||
HookExtensionAlias(PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC, glMultiDrawElementsIndirectCount, glMultiDrawElementsIndirectCountARB); \
|
||||
HookExtension(PFNGLPOLYGONOFFSETCLAMPPROC, glPolygonOffsetClamp); \
|
||||
HookExtensionAlias(PFNGLPOLYGONOFFSETCLAMPPROC, glPolygonOffsetClamp, glPolygonOffsetClampEXT); \
|
||||
HookExtension(PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC, glDispatchComputeGroupSizeARB); \
|
||||
HookExtension(PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC, glMultiDrawArraysIndirectCountARB); \
|
||||
HookExtension(PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC, glMultiDrawElementsIndirectCountARB); \
|
||||
HookExtension(PFNGLMAXSHADERCOMPILERTHREADSARBPROC, glMaxShaderCompilerThreadsKHR); \
|
||||
HookExtensionAlias(PFNGLMAXSHADERCOMPILERTHREADSARBPROC, glMaxShaderCompilerThreadsKHR, glMaxShaderCompilerThreadsARB); \
|
||||
HookExtension(PFNGLNAMEDSTRINGARBPROC, glNamedStringARB); \
|
||||
HookExtension(PFNGLDELETENAMEDSTRINGARBPROC, glDeleteNamedStringARB); \
|
||||
HookExtension(PFNGLCOMPILESHADERINCLUDEARBPROC, glCompileShaderIncludeARB); \
|
||||
@@ -1196,7 +1202,6 @@
|
||||
HookExtension(PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC, glTextureStorage3DMultisampleEXT); \
|
||||
HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC, glVertexArrayVertexAttribLOffsetEXT); \
|
||||
HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC, glVertexArrayVertexAttribDivisorEXT); \
|
||||
HookExtension(PFNGLPOLYGONOFFSETCLAMPEXTPROC, glPolygonOffsetClampEXT); \
|
||||
HookExtension(PFNGLRASTERSAMPLESEXTPROC, glRasterSamplesEXT); \
|
||||
HookExtension(PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC, glFramebufferTextureMultiviewOVR); \
|
||||
HookExtension(PFNGLDEPTHBOUNDSEXTPROC, glDepthBoundsEXT); \
|
||||
@@ -2337,9 +2342,15 @@
|
||||
HookAliasWrapper8(void, glReadnPixelsEXT, glReadnPixels, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, GLsizei, bufSize, void *, data); \
|
||||
HookWrapper8(void, glReadnPixels, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, GLsizei, bufSize, void *, data); \
|
||||
HookWrapper0(void, glTextureBarrier); \
|
||||
HookAliasWrapper5(void, glMultiDrawArraysIndirectCountARB, glMultiDrawArraysIndirectCount, GLenum, mode, const void *, indirect, GLintptr, drawcount, GLsizei, maxdrawcount, GLsizei, stride); \
|
||||
HookWrapper5(void, glMultiDrawArraysIndirectCount, GLenum, mode, const void *, indirect, GLintptr, drawcount, GLsizei, maxdrawcount, GLsizei, stride); \
|
||||
HookAliasWrapper6(void, glMultiDrawElementsIndirectCountARB, glMultiDrawElementsIndirectCount, GLenum, mode, GLenum, type, const void *, indirect, GLintptr, drawcount, GLsizei, maxdrawcount, GLsizei, stride); \
|
||||
HookWrapper6(void, glMultiDrawElementsIndirectCount, GLenum, mode, GLenum, type, const void *, indirect, GLintptr, drawcount, GLsizei, maxdrawcount, GLsizei, stride); \
|
||||
HookAliasWrapper3(void, glPolygonOffsetClampEXT, glPolygonOffsetClamp, GLfloat, factor, GLfloat, units, GLfloat, clamp); \
|
||||
HookWrapper3(void, glPolygonOffsetClamp, GLfloat, factor, GLfloat, units, GLfloat, clamp); \
|
||||
HookWrapper6(void, glDispatchComputeGroupSizeARB, GLuint, num_groups_x, GLuint, num_groups_y, GLuint, num_groups_z, GLuint, group_size_x, GLuint, group_size_y, GLuint, group_size_z); \
|
||||
HookWrapper5(void, glMultiDrawArraysIndirectCountARB, GLenum, mode, const void *, indirect, GLintptr, drawcount, GLsizei, maxdrawcount, GLsizei, stride); \
|
||||
HookWrapper6(void, glMultiDrawElementsIndirectCountARB, GLenum, mode, GLenum, type, const void *, indirect, GLintptr, drawcount, GLsizei, maxdrawcount, GLsizei, stride); \
|
||||
HookAliasWrapper1(void, glMaxShaderCompilerThreadsARB, glMaxShaderCompilerThreadsKHR, GLuint, count); \
|
||||
HookWrapper1(void, glMaxShaderCompilerThreadsKHR, GLuint, count); \
|
||||
HookWrapper5(void, glNamedStringARB, GLenum, type, GLint, namelen, const GLchar *, name, GLint, stringlen, const GLchar *, string); \
|
||||
HookWrapper2(void, glDeleteNamedStringARB, GLint, namelen, const GLchar *, name); \
|
||||
HookWrapper4(void, glCompileShaderIncludeARB, GLuint, shader, GLsizei, count, const GLchar *const*, path, const GLint *, length); \
|
||||
@@ -2451,7 +2462,6 @@
|
||||
HookWrapper8(void, glTextureStorage3DMultisampleEXT, GLuint, texture, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, fixedsamplelocations); \
|
||||
HookWrapper7(void, glVertexArrayVertexAttribLOffsetEXT, GLuint, vaobj, GLuint, buffer, GLuint, index, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
|
||||
HookWrapper3(void, glVertexArrayVertexAttribDivisorEXT, GLuint, vaobj, GLuint, index, GLuint, divisor); \
|
||||
HookWrapper3(void, glPolygonOffsetClampEXT, GLfloat, factor, GLfloat, units, GLfloat, clamp); \
|
||||
HookWrapper2(void, glRasterSamplesEXT, GLuint, samples, GLboolean, fixedsamplelocations); \
|
||||
HookWrapper6(void, glFramebufferTextureMultiviewOVR, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level, GLint, baseViewIndex, GLsizei, numViews); \
|
||||
HookWrapper2(void, glDepthBoundsEXT, GLclampd, zmin, GLclampd, zmax); \
|
||||
@@ -2482,9 +2492,6 @@
|
||||
// unsupported entry points - used for dummy functions
|
||||
#define DefineUnsupportedDummies() \
|
||||
HookWrapper5(void, glSpecializeShader, GLuint, shader, const GLchar *, pEntryPoint, GLuint, numSpecializationConstants, const GLuint *, pConstantIndex, const GLuint *, pConstantValue); \
|
||||
HookWrapper5(void, glMultiDrawArraysIndirectCount, GLenum, mode, const void *, indirect, GLintptr, drawcount, GLsizei, maxdrawcount, GLsizei, stride); \
|
||||
HookWrapper6(void, glMultiDrawElementsIndirectCount, GLenum, mode, GLenum, type, const void *, indirect, GLintptr, drawcount, GLsizei, maxdrawcount, GLsizei, stride); \
|
||||
HookWrapper3(void, glPolygonOffsetClamp, GLfloat, factor, GLfloat, units, GLfloat, clamp); \
|
||||
HookWrapper8(void, glPrimitiveBoundingBoxARB, GLfloat, minX, GLfloat, minY, GLfloat, minZ, GLfloat, minW, GLfloat, maxX, GLfloat, maxY, GLfloat, maxZ, GLfloat, maxW); \
|
||||
HookWrapper1(GLuint64, glGetTextureHandleARB, GLuint, texture); \
|
||||
HookWrapper2(GLuint64, glGetTextureSamplerHandleARB, GLuint, texture, GLuint, sampler); \
|
||||
@@ -2541,7 +2548,6 @@
|
||||
HookWrapper4(void, glProgramUniform2ui64vARB, GLuint, program, GLint, location, GLsizei, count, const GLuint64 *, value); \
|
||||
HookWrapper4(void, glProgramUniform3ui64vARB, GLuint, program, GLint, location, GLsizei, count, const GLuint64 *, value); \
|
||||
HookWrapper4(void, glProgramUniform4ui64vARB, GLuint, program, GLint, location, GLsizei, count, const GLuint64 *, value); \
|
||||
HookWrapper1(void, glMaxShaderCompilerThreadsARB, GLuint, count); \
|
||||
HookWrapper4(void, glFramebufferSampleLocationsfvARB, GLenum, target, GLuint, start, GLsizei, count, const GLfloat *, v); \
|
||||
HookWrapper4(void, glNamedFramebufferSampleLocationsfvARB, GLuint, framebuffer, GLuint, start, GLsizei, count, const GLfloat *, v); \
|
||||
HookWrapper0(void, glEvaluateDepthValuesARB); \
|
||||
@@ -2549,7 +2555,6 @@
|
||||
HookWrapper4(void, glNamedBufferPageCommitmentEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, GLboolean, commit); \
|
||||
HookWrapper4(void, glNamedBufferPageCommitmentARB, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, GLboolean, commit); \
|
||||
HookWrapper9(void, glTexPageCommitmentARB, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, commit); \
|
||||
HookWrapper1(void, glMaxShaderCompilerThreadsKHR, GLuint, count); \
|
||||
HookWrapper3(void, glGetPerfMonitorGroupsAMD, GLint *, numGroups, GLsizei, groupsSize, GLuint *, groups); \
|
||||
HookWrapper5(void, glGetPerfMonitorCountersAMD, GLuint, group, GLint *, numCounters, GLint *, maxActiveCounters, GLsizei, counterSize, GLuint *, counters); \
|
||||
HookWrapper4(void, glGetPerfMonitorGroupStringAMD, GLuint, group, GLsizei, bufSize, GLsizei *, length, GLchar *, groupString); \
|
||||
@@ -2561,6 +2566,8 @@
|
||||
HookWrapper1(void, glBeginPerfMonitorAMD, GLuint, monitor); \
|
||||
HookWrapper1(void, glEndPerfMonitorAMD, GLuint, monitor); \
|
||||
HookWrapper5(void, glGetPerfMonitorCounterDataAMD, GLuint, monitor, GLenum, pname, GLsizei, dataSize, GLuint *, data, GLint *, bytesWritten); \
|
||||
HookWrapper3(void, glEGLImageTargetTexStorageEXT, GLenum, target, GLeglImageOES, image, const GLint*, attrib_list); \
|
||||
HookWrapper3(void, glEGLImageTargetTextureStorageEXT, GLuint, texture, GLeglImageOES, image, const GLint*, attrib_list); \
|
||||
HookWrapper2(void, glMatrixLoadfEXT, GLenum, mode, const GLfloat *, m); \
|
||||
HookWrapper2(void, glMatrixLoaddEXT, GLenum, mode, const GLdouble *, m); \
|
||||
HookWrapper2(void, glMatrixMultfEXT, GLenum, mode, const GLfloat *, m); \
|
||||
@@ -2638,6 +2645,7 @@
|
||||
HookWrapper2(void, glUseShaderProgramEXT, GLenum, type, GLuint, program); \
|
||||
HookWrapper1(void, glActiveProgramEXT, GLuint, program); \
|
||||
HookWrapper2(GLuint, glCreateShaderProgramEXT, GLenum, type, const GLchar *, string); \
|
||||
HookWrapper0(void, glFramebufferFetchBarrierEXT); \
|
||||
HookWrapper3(void, glWindowRectanglesEXT, GLenum, mode, GLsizei, count, const GLint *, box); \
|
||||
HookWrapper0(void, glApplyFramebufferAttachmentCMAAINTEL); \
|
||||
HookWrapper1(void, glBeginPerfQueryINTEL, GLuint, queryHandle); \
|
||||
@@ -4463,9 +4471,6 @@
|
||||
|
||||
#define CheckUnsupported() \
|
||||
HandleUnsupported(PFNGLSPECIALIZESHADERPROC, glSpecializeShader); \
|
||||
HandleUnsupported(PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC, glMultiDrawArraysIndirectCount); \
|
||||
HandleUnsupported(PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC, glMultiDrawElementsIndirectCount); \
|
||||
HandleUnsupported(PFNGLPOLYGONOFFSETCLAMPPROC, glPolygonOffsetClamp); \
|
||||
HandleUnsupported(PFNGLPRIMITIVEBOUNDINGBOXARBPROC, glPrimitiveBoundingBoxARB); \
|
||||
HandleUnsupported(PFNGLGETTEXTUREHANDLEARBPROC, glGetTextureHandleARB); \
|
||||
HandleUnsupported(PFNGLGETTEXTURESAMPLERHANDLEARBPROC, glGetTextureSamplerHandleARB); \
|
||||
@@ -4522,7 +4527,6 @@
|
||||
HandleUnsupported(PFNGLPROGRAMUNIFORM2UI64VARBPROC, glProgramUniform2ui64vARB); \
|
||||
HandleUnsupported(PFNGLPROGRAMUNIFORM3UI64VARBPROC, glProgramUniform3ui64vARB); \
|
||||
HandleUnsupported(PFNGLPROGRAMUNIFORM4UI64VARBPROC, glProgramUniform4ui64vARB); \
|
||||
HandleUnsupported(PFNGLMAXSHADERCOMPILERTHREADSARBPROC, glMaxShaderCompilerThreadsARB); \
|
||||
HandleUnsupported(PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC, glFramebufferSampleLocationsfvARB); \
|
||||
HandleUnsupported(PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC, glNamedFramebufferSampleLocationsfvARB); \
|
||||
HandleUnsupported(PFNGLEVALUATEDEPTHVALUESARBPROC, glEvaluateDepthValuesARB); \
|
||||
@@ -4530,7 +4534,6 @@
|
||||
HandleUnsupported(PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC, glNamedBufferPageCommitmentEXT); \
|
||||
HandleUnsupported(PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC, glNamedBufferPageCommitmentARB); \
|
||||
HandleUnsupported(PFNGLTEXPAGECOMMITMENTARBPROC, glTexPageCommitmentARB); \
|
||||
HandleUnsupported(PFNGLMAXSHADERCOMPILERTHREADSKHRPROC, glMaxShaderCompilerThreadsKHR); \
|
||||
HandleUnsupported(PFNGLGETPERFMONITORGROUPSAMDPROC, glGetPerfMonitorGroupsAMD); \
|
||||
HandleUnsupported(PFNGLGETPERFMONITORCOUNTERSAMDPROC, glGetPerfMonitorCountersAMD); \
|
||||
HandleUnsupported(PFNGLGETPERFMONITORGROUPSTRINGAMDPROC, glGetPerfMonitorGroupStringAMD); \
|
||||
@@ -4542,6 +4545,8 @@
|
||||
HandleUnsupported(PFNGLBEGINPERFMONITORAMDPROC, glBeginPerfMonitorAMD); \
|
||||
HandleUnsupported(PFNGLENDPERFMONITORAMDPROC, glEndPerfMonitorAMD); \
|
||||
HandleUnsupported(PFNGLGETPERFMONITORCOUNTERDATAAMDPROC, glGetPerfMonitorCounterDataAMD); \
|
||||
HandleUnsupported(PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC, glEGLImageTargetTexStorageEXT); \
|
||||
HandleUnsupported(PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC, glEGLImageTargetTextureStorageEXT); \
|
||||
HandleUnsupported(PFNGLMATRIXLOADFEXTPROC, glMatrixLoadfEXT); \
|
||||
HandleUnsupported(PFNGLMATRIXLOADDEXTPROC, glMatrixLoaddEXT); \
|
||||
HandleUnsupported(PFNGLMATRIXMULTFEXTPROC, glMatrixMultfEXT); \
|
||||
@@ -4619,6 +4624,7 @@
|
||||
HandleUnsupported(PFNGLUSESHADERPROGRAMEXTPROC, glUseShaderProgramEXT); \
|
||||
HandleUnsupported(PFNGLACTIVEPROGRAMEXTPROC, glActiveProgramEXT); \
|
||||
HandleUnsupported(PFNGLCREATESHADERPROGRAMEXTPROC, glCreateShaderProgramEXT); \
|
||||
HandleUnsupported(PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC, glFramebufferFetchBarrierEXT); \
|
||||
HandleUnsupported(PFNGLWINDOWRECTANGLESEXTPROC, glWindowRectanglesEXT); \
|
||||
HandleUnsupported(PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC, glApplyFramebufferAttachmentCMAAINTEL); \
|
||||
HandleUnsupported(PFNGLBEGINPERFQUERYINTELPROC, glBeginPerfQueryINTEL); \
|
||||
|
||||
@@ -1257,8 +1257,8 @@ void GLRenderState::FetchState(WrappedOpenGL *gl)
|
||||
|
||||
m_Real->glGetFloatv(eGL_POLYGON_OFFSET_FACTOR, &PolygonOffset[0]);
|
||||
m_Real->glGetFloatv(eGL_POLYGON_OFFSET_UNITS, &PolygonOffset[1]);
|
||||
if(HasExt[EXT_polygon_offset_clamp])
|
||||
m_Real->glGetFloatv(eGL_POLYGON_OFFSET_CLAMP_EXT, &PolygonOffset[2]);
|
||||
if(HasExt[ARB_polygon_offset_clamp])
|
||||
m_Real->glGetFloatv(eGL_POLYGON_OFFSET_CLAMP, &PolygonOffset[2]);
|
||||
else
|
||||
PolygonOffset[2] = 0.0f;
|
||||
|
||||
@@ -1646,8 +1646,8 @@ void GLRenderState::ApplyState(WrappedOpenGL *gl)
|
||||
if(!IsGLES)
|
||||
m_Real->glPolygonMode(eGL_FRONT_AND_BACK, PolygonMode);
|
||||
|
||||
if(HasExt[EXT_polygon_offset_clamp] && m_Real->glPolygonOffsetClampEXT)
|
||||
m_Real->glPolygonOffsetClampEXT(PolygonOffset[0], PolygonOffset[1], PolygonOffset[2]);
|
||||
if(HasExt[ARB_polygon_offset_clamp])
|
||||
m_Real->glPolygonOffsetClamp(PolygonOffset[0], PolygonOffset[1], PolygonOffset[2]);
|
||||
else
|
||||
m_Real->glPolygonOffset(PolygonOffset[0], PolygonOffset[1]);
|
||||
|
||||
|
||||
@@ -1209,13 +1209,13 @@ void GLReplay::SavePipelineState()
|
||||
else
|
||||
gl.glGetTexParameteriv(target, eGL_TEXTURE_MAG_FILTER, &magf);
|
||||
|
||||
if(HasExt[EXT_texture_filter_anisotropic])
|
||||
if(HasExt[ARB_texture_filter_anisotropic])
|
||||
{
|
||||
if(samp != 0)
|
||||
gl.glGetSamplerParameterfv(samp, eGL_TEXTURE_MAX_ANISOTROPY_EXT,
|
||||
gl.glGetSamplerParameterfv(samp, eGL_TEXTURE_MAX_ANISOTROPY,
|
||||
&pipe.samplers[unit].maxAnisotropy);
|
||||
else
|
||||
gl.glGetTexParameterfv(target, eGL_TEXTURE_MAX_ANISOTROPY_EXT,
|
||||
gl.glGetTexParameterfv(target, eGL_TEXTURE_MAX_ANISOTROPY,
|
||||
&pipe.samplers[unit].maxAnisotropy);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -175,14 +175,14 @@ ReplayStatus GL_CreateReplayDevice(RDCFile *rdc, IReplayDriver **driver)
|
||||
|
||||
GLXContext ctx = NULL;
|
||||
|
||||
// try to create all versions from 4.5 down to 3.2 in order to get the
|
||||
// try to create all versions from 4.6 down to 3.2 in order to get the
|
||||
// highest versioned context we can
|
||||
struct
|
||||
{
|
||||
int major;
|
||||
int minor;
|
||||
} versions[] = {
|
||||
{4, 5}, {4, 4}, {4, 3}, {4, 2}, {4, 1}, {4, 0}, {3, 3}, {3, 2},
|
||||
{4, 6}, {4, 5}, {4, 4}, {4, 3}, {4, 2}, {4, 1}, {4, 0}, {3, 3}, {3, 2},
|
||||
};
|
||||
|
||||
{
|
||||
|
||||
@@ -236,14 +236,14 @@ ReplayStatus GL_CreateReplayDevice(RDCFile *rdc, IReplayDriver **driver)
|
||||
attribs[i++] = WGL_CONTEXT_PROFILE_MASK_ARB;
|
||||
attribs[i++] = WGL_CONTEXT_CORE_PROFILE_BIT_ARB;
|
||||
|
||||
// try to create all versions from 4.5 down to 3.2 in order to get the
|
||||
// try to create all versions from 4.6 down to 3.2 in order to get the
|
||||
// highest versioned context we can
|
||||
struct
|
||||
{
|
||||
int major;
|
||||
int minor;
|
||||
} versions[] = {
|
||||
{4, 5}, {4, 4}, {4, 3}, {4, 2}, {4, 1}, {4, 0}, {3, 3}, {3, 2},
|
||||
{4, 6}, {4, 5}, {4, 4}, {4, 3}, {4, 2}, {4, 1}, {4, 0}, {3, 3}, {3, 2},
|
||||
};
|
||||
|
||||
rc = NULL;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
#ifndef __glcorearb_h_
|
||||
#define __glcorearb_h_ 1
|
||||
#ifndef __gl_glcorearb_h_
|
||||
#define __gl_glcorearb_h_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2017 The Khronos Group Inc.
|
||||
** Copyright (c) 2013-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -618,9 +618,9 @@ GLAPI void APIENTRY glBlendEquation (GLenum mode);
|
||||
|
||||
#ifndef GL_VERSION_1_5
|
||||
#define GL_VERSION_1_5 1
|
||||
#include <stddef.h>
|
||||
typedef ptrdiff_t GLsizeiptr;
|
||||
typedef ptrdiff_t GLintptr;
|
||||
#include "khrplatform.h"
|
||||
typedef khronos_ssize_t GLsizeiptr;
|
||||
typedef khronos_intptr_t GLintptr;
|
||||
#define GL_BUFFER_SIZE 0x8764
|
||||
#define GL_BUFFER_USAGE 0x8765
|
||||
#define GL_QUERY_COUNTER_BITS 0x8864
|
||||
@@ -4006,6 +4006,17 @@ GLAPI void APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname
|
||||
#define GL_RGB_RAW_422_APPLE 0x8A51
|
||||
#endif /* GL_APPLE_rgb_422 */
|
||||
|
||||
#ifndef GL_EXT_EGL_image_storage
|
||||
#define GL_EXT_EGL_image_storage 1
|
||||
typedef void *GLeglImageOES;
|
||||
typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC) (GLenum target, GLeglImageOES image, const GLint* attrib_list);
|
||||
typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC) (GLuint texture, GLeglImageOES image, const GLint* attrib_list);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glEGLImageTargetTexStorageEXT (GLenum target, GLeglImageOES image, const GLint* attrib_list);
|
||||
GLAPI void APIENTRY glEGLImageTargetTextureStorageEXT (GLuint texture, GLeglImageOES image, const GLint* attrib_list);
|
||||
#endif
|
||||
#endif /* GL_EXT_EGL_image_storage */
|
||||
|
||||
#ifndef GL_EXT_debug_label
|
||||
#define GL_EXT_debug_label 1
|
||||
#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F
|
||||
@@ -4604,6 +4615,19 @@ GLAPI GLuint APIENTRY glCreateShaderProgramEXT (GLenum type, const GLchar *strin
|
||||
#endif
|
||||
#endif /* GL_EXT_separate_shader_objects */
|
||||
|
||||
#ifndef GL_EXT_shader_framebuffer_fetch
|
||||
#define GL_EXT_shader_framebuffer_fetch 1
|
||||
#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
|
||||
#endif /* GL_EXT_shader_framebuffer_fetch */
|
||||
|
||||
#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent
|
||||
#define GL_EXT_shader_framebuffer_fetch_non_coherent 1
|
||||
typedef void (APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC) (void);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glFramebufferFetchBarrierEXT (void);
|
||||
#endif
|
||||
#endif /* GL_EXT_shader_framebuffer_fetch_non_coherent */
|
||||
|
||||
#ifndef GL_EXT_shader_integer_mix
|
||||
#define GL_EXT_shader_integer_mix 1
|
||||
#endif /* GL_EXT_shader_integer_mix */
|
||||
@@ -4643,6 +4667,11 @@ GLAPI void APIENTRY glWindowRectanglesEXT (GLenum mode, GLsizei count, const GLi
|
||||
#endif
|
||||
#endif /* GL_EXT_window_rectangles */
|
||||
|
||||
#ifndef GL_INTEL_blackhole_render
|
||||
#define GL_INTEL_blackhole_render 1
|
||||
#define GL_BLACKHOLE_RENDER_INTEL 0x83FC
|
||||
#endif /* GL_INTEL_blackhole_render */
|
||||
|
||||
#ifndef GL_INTEL_conservative_rasterization
|
||||
#define GL_INTEL_conservative_rasterization 1
|
||||
#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
#ifndef __glext_h_
|
||||
#define __glext_h_ 1
|
||||
#ifndef __gl_glext_h_
|
||||
#define __gl_glext_h_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2017 The Khronos Group Inc.
|
||||
** Copyright (c) 2013-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -51,7 +51,7 @@ extern "C" {
|
||||
#define GLAPI extern
|
||||
#endif
|
||||
|
||||
#define GL_GLEXT_VERSION 20180114
|
||||
#define GL_GLEXT_VERSION 20180525
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gl
|
||||
@@ -464,9 +464,9 @@ GLAPI void APIENTRY glBlendEquation (GLenum mode);
|
||||
|
||||
#ifndef GL_VERSION_1_5
|
||||
#define GL_VERSION_1_5 1
|
||||
#include <stddef.h>
|
||||
typedef ptrdiff_t GLsizeiptr;
|
||||
typedef ptrdiff_t GLintptr;
|
||||
#include "khrplatform.h"
|
||||
typedef khronos_ssize_t GLsizeiptr;
|
||||
typedef khronos_intptr_t GLintptr;
|
||||
#define GL_BUFFER_SIZE 0x8764
|
||||
#define GL_BUFFER_USAGE 0x8765
|
||||
#define GL_QUERY_COUNTER_BITS 0x8864
|
||||
@@ -4713,6 +4713,7 @@ GLAPI void APIENTRY glVertexBlendARB (GLint count);
|
||||
|
||||
#ifndef GL_ARB_vertex_buffer_object
|
||||
#define GL_ARB_vertex_buffer_object 1
|
||||
#include <stddef.h>
|
||||
typedef ptrdiff_t GLsizeiptrARB;
|
||||
typedef ptrdiff_t GLintptrARB;
|
||||
#define GL_BUFFER_SIZE_ARB 0x8764
|
||||
@@ -5704,6 +5705,10 @@ GLAPI void APIENTRY glSetMultisamplefvAMD (GLenum pname, GLuint index, const GLf
|
||||
#define GL_AMD_shader_explicit_vertex_parameter 1
|
||||
#endif /* GL_AMD_shader_explicit_vertex_parameter */
|
||||
|
||||
#ifndef GL_AMD_shader_gpu_shader_half_float_fetch
|
||||
#define GL_AMD_shader_gpu_shader_half_float_fetch 1
|
||||
#endif /* GL_AMD_shader_gpu_shader_half_float_fetch */
|
||||
|
||||
#ifndef GL_AMD_shader_image_load_store_lod
|
||||
#define GL_AMD_shader_image_load_store_lod 1
|
||||
#endif /* GL_AMD_shader_image_load_store_lod */
|
||||
@@ -6451,6 +6456,17 @@ GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum pname, GLfloat param);
|
||||
#define GL_422_REV_AVERAGE_EXT 0x80CF
|
||||
#endif /* GL_EXT_422_pixels */
|
||||
|
||||
#ifndef GL_EXT_EGL_image_storage
|
||||
#define GL_EXT_EGL_image_storage 1
|
||||
typedef void *GLeglImageOES;
|
||||
typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC) (GLenum target, GLeglImageOES image, const GLint* attrib_list);
|
||||
typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC) (GLuint texture, GLeglImageOES image, const GLint* attrib_list);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glEGLImageTargetTexStorageEXT (GLenum target, GLeglImageOES image, const GLint* attrib_list);
|
||||
GLAPI void APIENTRY glEGLImageTargetTextureStorageEXT (GLuint texture, GLeglImageOES image, const GLint* attrib_list);
|
||||
#endif
|
||||
#endif /* GL_EXT_EGL_image_storage */
|
||||
|
||||
#ifndef GL_EXT_abgr
|
||||
#define GL_EXT_abgr 1
|
||||
#define GL_ABGR_EXT 0x8000
|
||||
@@ -8065,6 +8081,19 @@ GLAPI GLuint APIENTRY glCreateShaderProgramEXT (GLenum type, const GLchar *strin
|
||||
#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA
|
||||
#endif /* GL_EXT_separate_specular_color */
|
||||
|
||||
#ifndef GL_EXT_shader_framebuffer_fetch
|
||||
#define GL_EXT_shader_framebuffer_fetch 1
|
||||
#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
|
||||
#endif /* GL_EXT_shader_framebuffer_fetch */
|
||||
|
||||
#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent
|
||||
#define GL_EXT_shader_framebuffer_fetch_non_coherent 1
|
||||
typedef void (APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC) (void);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glFramebufferFetchBarrierEXT (void);
|
||||
#endif
|
||||
#endif /* GL_EXT_shader_framebuffer_fetch_non_coherent */
|
||||
|
||||
#ifndef GL_EXT_shader_image_load_formatted
|
||||
#define GL_EXT_shader_image_load_formatted 1
|
||||
#endif /* GL_EXT_shader_image_load_formatted */
|
||||
@@ -9128,6 +9157,11 @@ GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRG
|
||||
#define GL_INTERLACE_READ_INGR 0x8568
|
||||
#endif /* GL_INGR_interlace_read */
|
||||
|
||||
#ifndef GL_INTEL_blackhole_render
|
||||
#define GL_INTEL_blackhole_render 1
|
||||
#define GL_BLACKHOLE_RENDER_INTEL 0x83FC
|
||||
#endif /* GL_INTEL_blackhole_render */
|
||||
|
||||
#ifndef GL_INTEL_conservative_rasterization
|
||||
#define GL_INTEL_conservative_rasterization 1
|
||||
#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE
|
||||
|
||||
@@ -2722,10 +2722,10 @@ void WrappedOpenGL::glMultiDrawElementsIndirect(GLenum mode, GLenum type, const
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
bool WrappedOpenGL::Serialise_glMultiDrawArraysIndirectCountARB(SerialiserType &ser, GLenum mode,
|
||||
const void *indirect,
|
||||
GLintptr drawcountPtr,
|
||||
GLsizei maxdrawcount, GLsizei stride)
|
||||
bool WrappedOpenGL::Serialise_glMultiDrawArraysIndirectCount(SerialiserType &ser, GLenum mode,
|
||||
const void *indirect,
|
||||
GLintptr drawcountPtr,
|
||||
GLsizei maxdrawcount, GLsizei stride)
|
||||
{
|
||||
SERIALISE_ELEMENT(mode);
|
||||
SERIALISE_ELEMENT_LOCAL(offset, (uint64_t)indirect);
|
||||
@@ -2748,8 +2748,8 @@ bool WrappedOpenGL::Serialise_glMultiDrawArraysIndirectCountARB(SerialiserType &
|
||||
|
||||
if(IsLoading(m_State))
|
||||
{
|
||||
m_Real.glMultiDrawArraysIndirectCountARB(mode, (const void *)offset, (GLintptr)drawcount,
|
||||
maxdrawcount, stride);
|
||||
m_Real.glMultiDrawArraysIndirectCount(mode, (const void *)offset, (GLintptr)drawcount,
|
||||
maxdrawcount, stride);
|
||||
|
||||
DrawcallDescription draw;
|
||||
draw.name = StringFormat::Fmt("%s(<%i>)", ToStr(gl_CurChunk).c_str(), realdrawcount);
|
||||
@@ -2890,14 +2890,14 @@ bool WrappedOpenGL::Serialise_glMultiDrawArraysIndirectCountARB(SerialiserType &
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glMultiDrawArraysIndirectCountARB(GLenum mode, const void *indirect,
|
||||
GLintptr drawcount, GLsizei maxdrawcount,
|
||||
GLsizei stride)
|
||||
void WrappedOpenGL::glMultiDrawArraysIndirectCount(GLenum mode, const void *indirect,
|
||||
GLintptr drawcount, GLsizei maxdrawcount,
|
||||
GLsizei stride)
|
||||
{
|
||||
CoherentMapImplicitBarrier();
|
||||
|
||||
SERIALISE_TIME_CALL(
|
||||
m_Real.glMultiDrawArraysIndirectCountARB(mode, indirect, drawcount, maxdrawcount, stride));
|
||||
m_Real.glMultiDrawArraysIndirectCount(mode, indirect, drawcount, maxdrawcount, stride));
|
||||
|
||||
if(IsActiveCapturing(m_State))
|
||||
{
|
||||
@@ -2905,7 +2905,7 @@ void WrappedOpenGL::glMultiDrawArraysIndirectCountARB(GLenum mode, const void *i
|
||||
|
||||
ser.SetDrawChunk();
|
||||
SCOPED_SERIALISE_CHUNK(gl_CurChunk);
|
||||
Serialise_glMultiDrawArraysIndirectCountARB(ser, mode, indirect, drawcount, maxdrawcount, stride);
|
||||
Serialise_glMultiDrawArraysIndirectCount(ser, mode, indirect, drawcount, maxdrawcount, stride);
|
||||
|
||||
GetContextRecord()->AddChunk(scope.Get());
|
||||
|
||||
@@ -2921,11 +2921,10 @@ void WrappedOpenGL::glMultiDrawArraysIndirectCountARB(GLenum mode, const void *i
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
bool WrappedOpenGL::Serialise_glMultiDrawElementsIndirectCountARB(SerialiserType &ser, GLenum mode,
|
||||
GLenum type, const void *indirect,
|
||||
GLintptr drawcountPtr,
|
||||
GLsizei maxdrawcount,
|
||||
GLsizei stride)
|
||||
bool WrappedOpenGL::Serialise_glMultiDrawElementsIndirectCount(SerialiserType &ser, GLenum mode,
|
||||
GLenum type, const void *indirect,
|
||||
GLintptr drawcountPtr,
|
||||
GLsizei maxdrawcount, GLsizei stride)
|
||||
{
|
||||
SERIALISE_ELEMENT(mode);
|
||||
SERIALISE_ELEMENT(type);
|
||||
@@ -2951,8 +2950,8 @@ bool WrappedOpenGL::Serialise_glMultiDrawElementsIndirectCountARB(SerialiserType
|
||||
|
||||
if(IsLoading(m_State))
|
||||
{
|
||||
m_Real.glMultiDrawElementsIndirectCountARB(mode, type, (const void *)offset,
|
||||
(GLintptr)drawcount, maxdrawcount, stride);
|
||||
m_Real.glMultiDrawElementsIndirectCount(mode, type, (const void *)offset, (GLintptr)drawcount,
|
||||
maxdrawcount, stride);
|
||||
|
||||
DrawcallDescription draw;
|
||||
draw.name = StringFormat::Fmt("%s(<%i>)", ToStr(gl_CurChunk).c_str(), realdrawcount);
|
||||
@@ -3099,14 +3098,14 @@ bool WrappedOpenGL::Serialise_glMultiDrawElementsIndirectCountARB(SerialiserType
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glMultiDrawElementsIndirectCountARB(GLenum mode, GLenum type,
|
||||
const void *indirect, GLintptr drawcount,
|
||||
GLsizei maxdrawcount, GLsizei stride)
|
||||
void WrappedOpenGL::glMultiDrawElementsIndirectCount(GLenum mode, GLenum type, const void *indirect,
|
||||
GLintptr drawcount, GLsizei maxdrawcount,
|
||||
GLsizei stride)
|
||||
{
|
||||
CoherentMapImplicitBarrier();
|
||||
|
||||
SERIALISE_TIME_CALL(m_Real.glMultiDrawElementsIndirectCountARB(mode, type, indirect, drawcount,
|
||||
maxdrawcount, stride));
|
||||
SERIALISE_TIME_CALL(m_Real.glMultiDrawElementsIndirectCount(mode, type, indirect, drawcount,
|
||||
maxdrawcount, stride));
|
||||
|
||||
if(IsActiveCapturing(m_State))
|
||||
{
|
||||
@@ -3114,8 +3113,8 @@ void WrappedOpenGL::glMultiDrawElementsIndirectCountARB(GLenum mode, GLenum type
|
||||
|
||||
ser.SetDrawChunk();
|
||||
SCOPED_SERIALISE_CHUNK(gl_CurChunk);
|
||||
Serialise_glMultiDrawElementsIndirectCountARB(ser, mode, type, indirect, drawcount,
|
||||
maxdrawcount, stride);
|
||||
Serialise_glMultiDrawElementsIndirectCount(ser, mode, type, indirect, drawcount, maxdrawcount,
|
||||
stride);
|
||||
|
||||
GetContextRecord()->AddChunk(scope.Get());
|
||||
|
||||
@@ -4312,10 +4311,10 @@ INSTANTIATE_FUNCTION_SERIALISED(void, glMultiDrawArraysIndirect, GLenum mode, co
|
||||
GLsizei drawcount, GLsizei stride);
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, glMultiDrawElementsIndirect, GLenum mode, GLenum type,
|
||||
const void *indirect, GLsizei drawcount, GLsizei stride);
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, glMultiDrawArraysIndirectCountARB, GLenum mode,
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, glMultiDrawArraysIndirectCount, GLenum mode,
|
||||
const void *indirect, GLintptr drawcount, GLsizei maxdrawcount,
|
||||
GLsizei stride);
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, glMultiDrawElementsIndirectCountARB, GLenum mode, GLenum type,
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, glMultiDrawElementsIndirectCount, GLenum mode, GLenum type,
|
||||
const void *indirect, GLintptr drawcount, GLsizei maxdrawcount,
|
||||
GLsizei stride);
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, glClearNamedFramebufferfv, GLuint framebufferHandle,
|
||||
|
||||
@@ -1711,6 +1711,15 @@ void WrappedOpenGL::glDeleteNamedStringARB(GLint namelen, const GLchar *name)
|
||||
|
||||
#pragma endregion
|
||||
|
||||
void WrappedOpenGL::glMaxShaderCompilerThreadsKHR(GLuint count)
|
||||
{
|
||||
// pass through, don't record
|
||||
m_Real.glMaxShaderCompilerThreadsKHR(count);
|
||||
}
|
||||
|
||||
{
|
||||
}
|
||||
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, glCreateShader, GLenum type, GLuint shader);
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, glShaderSource, GLuint shaderHandle, GLsizei count,
|
||||
const GLchar *const *source, const GLint *length);
|
||||
|
||||
@@ -1904,8 +1904,8 @@ void WrappedOpenGL::glPolygonOffset(GLfloat factor, GLfloat units)
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
bool WrappedOpenGL::Serialise_glPolygonOffsetClampEXT(SerialiserType &ser, GLfloat factor,
|
||||
GLfloat units, GLfloat clamp)
|
||||
bool WrappedOpenGL::Serialise_glPolygonOffsetClamp(SerialiserType &ser, GLfloat factor,
|
||||
GLfloat units, GLfloat clamp)
|
||||
{
|
||||
SERIALISE_ELEMENT(factor);
|
||||
SERIALISE_ELEMENT(units);
|
||||
@@ -1915,21 +1915,21 @@ bool WrappedOpenGL::Serialise_glPolygonOffsetClampEXT(SerialiserType &ser, GLflo
|
||||
|
||||
if(IsReplayingAndReading())
|
||||
{
|
||||
m_Real.glPolygonOffsetClampEXT(factor, units, clamp);
|
||||
m_Real.glPolygonOffsetClamp(factor, units, clamp);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glPolygonOffsetClampEXT(GLfloat factor, GLfloat units, GLfloat clamp)
|
||||
void WrappedOpenGL::glPolygonOffsetClamp(GLfloat factor, GLfloat units, GLfloat clamp)
|
||||
{
|
||||
SERIALISE_TIME_CALL(m_Real.glPolygonOffsetClampEXT(factor, units, clamp));
|
||||
SERIALISE_TIME_CALL(m_Real.glPolygonOffsetClamp(factor, units, clamp));
|
||||
|
||||
if(IsActiveCapturing(m_State))
|
||||
{
|
||||
USE_SCRATCH_SERIALISER();
|
||||
SCOPED_SERIALISE_CHUNK(gl_CurChunk);
|
||||
Serialise_glPolygonOffsetClampEXT(ser, factor, units, clamp);
|
||||
Serialise_glPolygonOffsetClamp(ser, factor, units, clamp);
|
||||
|
||||
GetContextRecord()->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -2042,7 +2042,7 @@ INSTANTIATE_FUNCTION_SERIALISED(void, glScissor, GLint x, GLint y, GLsizei width
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, glScissorArrayv, GLuint first, GLsizei count, const GLint *v);
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, glPolygonMode, GLenum face, GLenum mode);
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, glPolygonOffset, GLfloat factor, GLfloat units);
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, glPolygonOffsetClampEXT, GLfloat factor, GLfloat units,
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, glPolygonOffsetClamp, GLfloat factor, GLfloat units,
|
||||
GLfloat clamp);
|
||||
INSTANTIATE_FUNCTION_SERIALISED(void, glPrimitiveBoundingBox, GLfloat minX, GLfloat minY,
|
||||
GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY,
|
||||
|
||||
Reference in New Issue
Block a user