&driver_functions);
_vbo_CreateContext(&ctx);
+ _mesa_override_extensions(&ctx);
ctx.Version = version;
_mesa_initialize_dispatch_tables(&ctx);
{ "glDrawArraysInstanced", 31, -1 },
{ "glDrawElementsInstanced", 31, -1 },
{ "glPrimitiveRestartIndex", 31, -1 },
+ { "glTexBuffer", 31, -1 },
+
+ /* GL_ARB_texture_buffer_range */
+ { "glTexBufferRange", 43, -1 },
/* GL_ARB_shader_objects */
{ "glDeleteObjectARB", 31, -1 },
{ "glBlendFunci", 40, -1 },
{ "glBlendFuncSeparatei", 40, -1 },
+ { "glUniform1d", 40, -1 },
+ { "glUniform2d", 40, -1 },
+ { "glUniform3d", 40, -1 },
+ { "glUniform4d", 40, -1 },
+ { "glUniform1dv", 40, -1 },
+ { "glUniform2dv", 40, -1 },
+ { "glUniform3dv", 40, -1 },
+ { "glUniform4dv", 40, -1 },
+ { "glUniformMatrix2dv", 40, -1 },
+ { "glUniformMatrix3dv", 40, -1 },
+ { "glUniformMatrix4dv", 40, -1 },
+ { "glUniformMatrix2x3dv", 40, -1 },
+ { "glUniformMatrix2x4dv", 40, -1 },
+ { "glUniformMatrix3x2dv", 40, -1 },
+ { "glUniformMatrix3x4dv", 40, -1 },
+ { "glUniformMatrix4x2dv", 40, -1 },
+ { "glUniformMatrix4x3dv", 40, -1 },
+ { "glGetUniformdv", 43, -1 },
+
/* GL 4.3 */
{ "glIsRenderbuffer", 43, -1 },
{ "glBindRenderbuffer", 43, -1 },
// { "glTextureStorage3DMultisampleEXT", 43, -1 }, // XXX: Add to xml
/* GL 4.5 */
+ /* aliased versions checked above */
+ //{ "glGetGraphicsResetStatus", 45, -1 },
+ //{ "glReadnPixels", 45, -1 },
+ //{ "glGetnUniformfv", 45, -1 },
+ //{ "glGetnUniformiv", 45, -1 },
+ //{ "glGetnUniformuiv", 45, -1 },
{ "glMemoryBarrierByRegion", 45, -1 },
/* GL_ARB_internalformat_query */
{ "glGetInternalformativ", 30, -1 },
+ /* GL_ARB_internalformat_query */
+ { "glGetInternalformati64v", 30, -1 },
+
/* GL_ARB_multi_bind */
{ "glBindBuffersBase", 44, -1 },
{ "glBindBuffersRange", 44, -1 },
{ "glDispatchCompute", 43, -1 },
{ "glDispatchComputeIndirect", 43, -1 },
+ /* GL_ARB_compute_variable_group_size */
+ { "glDispatchComputeGroupSizeARB", 43, -1 },
+
/* GL_EXT_polygon_offset_clamp */
{ "glPolygonOffsetClampEXT", 11, -1 },
/* GL_GREMEDY_string_marker */
{ "glStringMarkerGREMEDY", 15, -1 },
+ /* GL_EXT_window_rectangles */
+ { "glWindowRectanglesEXT", 30, -1 },
+
+ /* GL_KHR_blend_equation_advanced */
+ { "glBlendBarrierKHR", 20, -1 },
+
+ /* GL_ARB_sparse_buffer */
+ { "glBufferPageCommitmentARB", 43, -1 },
+ { "glNamedBufferPageCommitmentARB", 43, -1 },
+
+ /* GL_ARB_bindless_texture */
+ { "glGetTextureHandleARB", 40, -1 },
+ { "glGetTextureSamplerHandleARB", 40, -1 },
+ { "glMakeTextureHandleResidentARB", 40, -1 },
+ { "glMakeTextureHandleNonResidentARB", 40, -1 },
+ { "glIsTextureHandleResidentARB", 40, -1 },
+ { "glGetImageHandleARB", 40, -1 },
+ { "glMakeImageHandleResidentARB", 40, -1 },
+ { "glMakeImageHandleNonResidentARB", 40, -1 },
+ { "glIsImageHandleResidentARB", 40, -1 },
+ { "glUniformHandleui64ARB", 40, -1 },
+ { "glUniformHandleui64vARB", 40, -1 },
+ { "glProgramUniformHandleui64ARB", 40, -1 },
+ { "glProgramUniformHandleui64vARB", 40, -1 },
+ { "glVertexAttribL1ui64ARB", 40, -1 },
+ { "glVertexAttribL1ui64vARB", 40, -1 },
+ { "glGetVertexAttribLui64vARB", 40, -1 },
+
+ /* GL_EXT_external_objects */
+ { "glGetUnsignedBytevEXT", 45, -1 },
+ { "glGetUnsignedBytei_vEXT", 45, -1 },
+ { "glDeleteMemoryObjectsEXT", 45, -1 },
+ { "glIsMemoryObjectEXT", 45, -1 },
+ { "glCreateMemoryObjectsEXT", 45, -1 },
+ { "glMemoryObjectParameterivEXT", 45, -1 },
+ { "glGetMemoryObjectParameterivEXT", 45, -1 },
+ { "glTexStorageMem2DEXT", 45, -1 },
+ { "glTexStorageMem2DMultisampleEXT", 45, -1 },
+ { "glTexStorageMem3DEXT", 45, -1 },
+ { "glTexStorageMem3DMultisampleEXT", 45, -1 },
+ { "glBufferStorageMemEXT", 45, -1 },
+ { "glTextureStorageMem2DEXT", 45, -1 },
+ { "glTextureStorageMem2DMultisampleEXT", 45, -1 },
+ { "glTextureStorageMem3DEXT", 45, -1 },
+ { "glTextureStorageMem3DMultisampleEXT", 45, -1 },
+ { "glNamedBufferStorageMemEXT", 45, -1 },
+ { "glTexStorageMem1DEXT", 45, -1 },
+ { "glTextureStorageMem1DEXT", 45, -1 },
+ { "glGenSemaphoresEXT", 45, -1 },
+ { "glDeleteSemaphoresEXT", 45, -1 },
+ { "glIsSemaphoreEXT", 45, -1 },
+ { "glSemaphoreParameterui64vEXT", 45, -1 },
+ { "glGetSemaphoreParameterui64vEXT", 45, -1 },
+ { "glWaitSemaphoreEXT", 45, -1 },
+ { "glSignalSemaphoreEXT", 45, -1 },
+
+ /* GL_EXT_external_objects_fd */
+ { "glImportMemoryFdEXT", 45, -1 },
+ { "glImportSemaphoreFdEXT", 45, -1 },
+
+ /* GL_ARB_gl_spirv */
+ { "glSpecializeShaderARB", 45, -1 },
+
+ /* GL_EXT_shader_framebuffer_fetch_non_coherent */
+ { "glFramebufferFetchBarrierEXT", 20, -1 },
+
+ /* GL_NV_conservative_raster */
+ { "glSubpixelPrecisionBiasNV", 10, -1 },
+
+ /* GL_NV_conservative_raster_dilate */
+ { "glConservativeRasterParameterfNV", 10, -1 },
+
+ /* GL_NV_conservative_raster_pre_snap_triangles */
+ { "glConservativeRasterParameteriNV", 10, -1 },
+
+ /* GL_ARB_sample_locations */
+ { "glFramebufferSampleLocationsfvARB", 30, -1 },
+ { "glNamedFramebufferSampleLocationsfvARB", 30, -1 },
+ { "glEvaluateDepthValuesARB", 30, -1 },
+
{ NULL, 0, -1 }
};
const struct function gl_compatibility_functions_possible[] = {
- { "glBindVertexArrayAPPLE", 10, -1 },
- { "glGenVertexArraysAPPLE", 10, -1 },
{ "glBindRenderbufferEXT", 10, -1 },
{ "glBindFramebufferEXT", 10, -1 },
{ "glNewList", 10, _gloffset_NewList },
{ "glGetProgramLocalParameterfvARB", 10, -1 },
{ "glGetProgramivARB", 10, -1 },
{ "glGetProgramStringARB", 10, -1 },
- { "glPolygonOffsetEXT", 10, -1 },
{ "glColorPointerEXT", 10, -1 },
{ "glEdgeFlagPointerEXT", 10, -1 },
{ "glIndexPointerEXT", 10, -1 },
};
const struct function gl_core_functions_possible[] = {
- /* GL 3.1 */
- { "glTexBuffer", 31, -1 },
-
/* GL 3.2 */
{ "glFramebufferTexture", 32, -1 },
{ "glDrawArraysIndirect", 43, -1 },
{ "glDrawElementsIndirect", 43, -1 },
- { "glUniform1d", 40, -1 },
- { "glUniform2d", 40, -1 },
- { "glUniform3d", 40, -1 },
- { "glUniform4d", 40, -1 },
- { "glUniform1dv", 40, -1 },
- { "glUniform2dv", 40, -1 },
- { "glUniform3dv", 40, -1 },
- { "glUniform4dv", 40, -1 },
- { "glUniformMatrix2dv", 40, -1 },
- { "glUniformMatrix3dv", 40, -1 },
- { "glUniformMatrix4dv", 40, -1 },
- { "glUniformMatrix2x3dv", 40, -1 },
- { "glUniformMatrix2x4dv", 40, -1 },
- { "glUniformMatrix3x2dv", 40, -1 },
- { "glUniformMatrix3x4dv", 40, -1 },
- { "glUniformMatrix4x2dv", 40, -1 },
- { "glUniformMatrix4x3dv", 40, -1 },
- { "glGetUniformdv", 43, -1 },
-
{ "glBindTransformFeedback", 43, -1 },
{ "glDeleteTransformFeedbacks", 43, -1 },
{ "glGenTransformFeedbacks", 43, -1 },
{ "glGetProgramResourceLocation", 43, -1 },
{ "glGetProgramResourceLocationIndex", 43, -1 },
// { "glShaderStorageBlockBinding", 43, -1 }, // XXX: Add to xml
- { "glTexBufferRange", 43, -1 },
// { "glTextureBufferRangeEXT", 43, -1 }, // XXX: Add to xml
{ "glTexStorage2DMultisample", 43, -1 },
{ "glTexStorage3DMultisample", 43, -1 },
{ "glMultiDrawArraysIndirectCountARB", 31, -1 },
{ "glMultiDrawElementsIndirectCountARB", 31, -1 },
+ /* GL_ARB_ES3_2_compatibility */
+ { "glPrimitiveBoundingBoxARB", 45, -1 },
+
+ /* GL_ARB_gpu_shader_int64 */
+ { "glUniform1i64ARB", 45, -1 },
+ { "glUniform2i64ARB", 45, -1 },
+ { "glUniform3i64ARB", 45, -1 },
+ { "glUniform4i64ARB", 45, -1 },
+ { "glUniform1ui64ARB", 45, -1 },
+ { "glUniform2ui64ARB", 45, -1 },
+ { "glUniform3ui64ARB", 45, -1 },
+ { "glUniform4ui64ARB", 45, -1 },
+ { "glUniform1i64vARB", 45, -1 },
+ { "glUniform2i64vARB", 45, -1 },
+ { "glUniform3i64vARB", 45, -1 },
+ { "glUniform4i64vARB", 45, -1 },
+ { "glUniform1ui64vARB", 45, -1 },
+ { "glUniform2ui64vARB", 45, -1 },
+ { "glUniform3ui64vARB", 45, -1 },
+ { "glUniform4ui64vARB", 45, -1 },
+ { "glGetUniformi64vARB", 45, -1 },
+ { "glGetUniformui64vARB", 45, -1 },
+ { "glGetnUniformi64vARB", 45, -1 },
+ { "glGetnUniformui64vARB", 45, -1 },
+ { "glProgramUniform1i64ARB", 45, -1 },
+ { "glProgramUniform2i64ARB", 45, -1 },
+ { "glProgramUniform3i64ARB", 45, -1 },
+ { "glProgramUniform4i64ARB", 45, -1 },
+ { "glProgramUniform1ui64ARB", 45, -1 },
+ { "glProgramUniform2ui64ARB", 45, -1 },
+ { "glProgramUniform3ui64ARB", 45, -1 },
+ { "glProgramUniform4ui64ARB", 45, -1 },
+ { "glProgramUniform1i64vARB", 45, -1 },
+ { "glProgramUniform2i64vARB", 45, -1 },
+ { "glProgramUniform3i64vARB", 45, -1 },
+ { "glProgramUniform4i64vARB", 45, -1 },
+ { "glProgramUniform1ui64vARB", 45, -1 },
+ { "glProgramUniform2ui64vARB", 45, -1 },
+ { "glProgramUniform3ui64vARB", 45, -1 },
+ { "glProgramUniform4ui64vARB", 45, -1 },
+
+ /* GL_ARB_gl_spirv */
+ { "glSpecializeShaderARB", 45, -1 },
+
{ NULL, 0, -1 }
};
{ "glObjectLabelKHR", 11, -1 },
{ "glObjectPtrLabelKHR", 11, -1 },
+ /* GL_EXT_polygon_offset_clamp */
+ { "glPolygonOffsetClampEXT", 11, -1 },
+
+ /* GL_NV_conservative_raster */
+ { "glSubpixelPrecisionBiasNV", 20, -1 },
+
+ /* GL_NV_conservative_raster_dilate */
+ { "glConservativeRasterParameterfNV", 20, -1 },
+
+ /* GL_NV_conservative_raster_pre_snap_triangles */
+ { "glConservativeRasterParameteriNV", 20, -1 },
+
{ NULL, 0, -1 }
};
{ "glObjectLabelKHR", 20, -1 },
{ "glObjectPtrLabelKHR", 20, -1 },
+ /* GL_EXT_polygon_offset_clamp */
+ { "glPolygonOffsetClampEXT", 11, -1 },
+
+ /* GL_KHR_robustness */
+ { "glGetGraphicsResetStatusKHR", 20, -1 },
+ { "glReadnPixelsKHR", 20, -1 },
+ { "glGetnUniformfvKHR", 20, -1 },
+ { "glGetnUniformivKHR", 20, -1 },
+ { "glGetnUniformuivKHR", 20, -1 },
+
+ /* GL_KHR_blend_equation_advanced */
+ { "glBlendBarrierKHR", 20, -1 },
+
+ /* GL_EXT_occlusion_query_boolean */
+ { "glGenQueriesEXT", 20, -1 },
+ { "glDeleteQueriesEXT", 20, -1 },
+ { "glIsQueryEXT", 20, -1 },
+ { "glBeginQueryEXT", 20, -1 },
+ { "glEndQueryEXT", 20, -1 },
+ { "glGetQueryivEXT", 20, -1 },
+ { "glGetQueryObjectivEXT", 20, -1 },
+ { "glGetQueryObjectuivEXT", 20, -1 },
+
+ /* GL_EXT_disjoint_timer_query */
+ { "glGetQueryObjecti64vEXT", 20, -1 },
+ { "glGetQueryObjectui64vEXT", 20, -1 },
+ { "glQueryCounterEXT", 20, -1 },
+
+ /* GL_EXT_shader_framebuffer_fetch_non_coherent */
+ { "glFramebufferFetchBarrierEXT", 20, -1 },
+
+ /* GL_NV_conservative_raster */
+ { "glSubpixelPrecisionBiasNV", 20, -1 },
+
+ /* GL_NV_conservative_raster_dilate */
+ { "glConservativeRasterParameterfNV", 20, -1 },
+
+ /* GL_NV_conservative_raster_pre_snap_triangles */
+ { "glConservativeRasterParameteriNV", 20, -1 },
+
{ NULL, 0, -1 }
};
const struct function gles3_functions_possible[] = {
- { "glBeginQuery", 30, -1 },
+ // We check for the aliased -EXT version in GLES 2
+ // { "glBeginQuery", 30, -1 },
{ "glBeginTransformFeedback", 30, -1 },
{ "glBindBufferBase", 30, -1 },
{ "glBindBufferRange", 30, -1 },
{ "glCopyBufferSubData", 30, -1 },
// We check for the aliased -OES version in GLES 2
// { "glCopyTexSubImage3D", 30, -1 },
- { "glDeleteQueries", 30, -1 },
+ // We check for the aliased -EXT version in GLES 2
+ // { "glDeleteQueries", 30, -1 },
{ "glDeleteSamplers", 30, -1 },
{ "glDeleteSync", 30, -1 },
{ "glDeleteTransformFeedbacks", 30, -1 },
// { "glDrawBuffers", 30, -1 },
{ "glDrawElementsInstanced", 30, -1 },
{ "glDrawRangeElements", 30, -1 },
- { "glEndQuery", 30, -1 },
+ // We check for the aliased -EXT version in GLES 2
+ // { "glEndQuery", 30, -1 },
{ "glEndTransformFeedback", 30, -1 },
{ "glFenceSync", 30, -1 },
// We check for the aliased -EXT version in GLES 2
// { "glFlushMappedBufferRange", 30, -1 },
{ "glFramebufferTextureLayer", 30, -1 },
- { "glGenQueries", 30, -1 },
+ // We check for the aliased -EXT version in GLES 2
+ // { "glGenQueries", 30, -1 },
{ "glGenSamplers", 30, -1 },
{ "glGenTransformFeedbacks", 30, -1 },
// We check for the aliased -OES version in GLES 2
{ "glGetInteger64v", 30, -1 },
{ "glGetIntegeri_v", 30, -1 },
{ "glGetInternalformativ", 30, -1 },
+ { "glGetInternalformati64v", 30, -1 },
// glGetProgramBinary aliases glGetProgramBinaryOES in GLES 2
- { "glGetQueryiv", 30, -1 },
- { "glGetQueryObjectuiv", 30, -1 },
+ // We check for the aliased -EXT version in GLES 2
+ // { "glGetQueryiv", 30, -1 },
+ // We check for the aliased -EXT version in GLES 2
+ // { "glGetQueryObjectuiv", 30, -1 },
{ "glGetSamplerParameterfv", 30, -1 },
{ "glGetSamplerParameteriv", 30, -1 },
{ "glGetStringi", 30, -1 },
{ "glGetVertexAttribIuiv", 30, -1 },
{ "glInvalidateFramebuffer", 30, -1 },
{ "glInvalidateSubFramebuffer", 30, -1 },
- { "glIsQuery", 30, -1 },
+ // We check for the aliased -EXT version in GLES 2
+ // { "glIsQuery", 30, -1 },
{ "glIsSampler", 30, -1 },
{ "glIsSync", 30, -1 },
{ "glIsTransformFeedback", 30, -1 },
{ "glGetFragDataIndexEXT", 30, -1 },
{ "glBindFragDataLocationEXT", 30, -1 },
+ /* GL_OES_texture_border_clamp */
+ { "glTexParameterIivOES", 30, -1 },
+ { "glTexParameterIuivOES", 30, -1 },
+ { "glGetTexParameterIivOES", 30, -1 },
+ { "glGetTexParameterIuivOES", 30, -1 },
+ { "glSamplerParameterIivOES", 30, -1 },
+ { "glSamplerParameterIuivOES", 30, -1 },
+ { "glGetSamplerParameterIivOES", 30, -1 },
+ { "glGetSamplerParameterIuivOES", 30, -1 },
+
+ /* GL_OES_texture_buffer */
+ { "glTexBufferOES", 31, -1 },
+ { "glTexBufferRangeOES", 31, -1 },
+
+ /* GL_OES_sample_shading */
+ { "glMinSampleShadingOES", 30, -1 },
+
+ /* GL_OES_copy_image */
+ { "glCopyImageSubDataOES", 30, -1 },
+
+ /* GL_OES_draw_buffers_indexed */
+ { "glBlendFunciOES", 30, -1 },
+ { "glBlendFuncSeparateiOES", 30, -1 },
+ { "glBlendEquationiOES", 30, -1 },
+ { "glBlendEquationSeparateiOES", 30, -1 },
+ { "glColorMaskiOES", 30, -1 },
+ { "glEnableiOES", 30, -1 },
+ { "glDisableiOES", 30, -1 },
+ { "glIsEnablediOES", 30, -1 },
+
+ /* GL_EXT_base_instance */
+ { "glDrawArraysInstancedBaseInstanceEXT", 30, -1 },
+ { "glDrawElementsInstancedBaseInstanceEXT", 30, -1 },
+ { "glDrawElementsInstancedBaseVertexBaseInstanceEXT", 30, -1 },
+
+ /* GL_EXT_window_rectangles */
+ { "glWindowRectanglesEXT", 30, -1 },
+
{ NULL, 0, -1 }
};
/* GL_OES_texture_storage_multisample_2d_array */
{ "glTexStorage3DMultisampleOES", 31, -1 },
+ /* GL_OES_texture_view */
+ { "glTextureViewOES", 31, -1 },
+
/* GL_EXT_buffer_storage */
{ "glBufferStorageEXT", 31, -1 },
/* GL_EXT_blend_func_extended */
{ "glGetProgramResourceLocationIndexEXT", 31, -1 },
+ /* GL_OES_geometry_shader */
+ { "glFramebufferTextureOES", 31, -1},
+
+ /* GL_EXT_geometry_shader */
+ // We check for the aliased OES version above
+ // { "glFramebufferTextureEXT", 31, -1},
+
+ /* GL_OES_tessellation_shader */
+ { "glPatchParameteriOES", 31, -1 },
+
+ /* GL_OES_primitive_bound_box */
+ { "glPrimitiveBoundingBoxOES", 31, -1 },
+
+ /* GL_OES_viewport_array */
+ { "glViewportArrayvOES", 31, -1 },
+ { "glViewportIndexedfOES", 31, -1 },
+ { "glViewportIndexedfvOES", 31, -1 },
+ { "glScissorArrayvOES", 31, -1 },
+ { "glScissorIndexedOES", 31, -1 },
+ { "glScissorIndexedvOES", 31, -1 },
+ { "glDepthRangeArrayfvOES", 31, -1 },
+ { "glDepthRangeIndexedfOES", 31, -1 },
+ { "glGetFloati_vOES", 31, -1 },
+
+ /* GL_ARB_sample_locations */
+ { "glFramebufferSampleLocationsfvARB", 31, -1 },
+ { "glNamedFramebufferSampleLocationsfvARB", 31, -1 },
+ { "glEvaluateDepthValuesARB", 31, -1 },
+
{ NULL, 0, -1 },
};