summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mapi/glapi/gen/EXT_external_objects.xml234
-rw-r--r--src/mapi/glapi/gen/EXT_external_objects_fd.xml28
-rw-r--r--src/mapi/glapi/gen/Makefile.am2
-rw-r--r--src/mapi/glapi/gen/gl_API.xml3
-rw-r--r--src/mapi/glapi/gen/gl_genexec.py1
-rw-r--r--src/mesa/Makefile.sources2
-rw-r--r--src/mesa/main/bufferobj.c31
-rw-r--r--src/mesa/main/bufferobj.h13
-rw-r--r--src/mesa/main/externalobjects.c257
-rw-r--r--src/mesa/main/externalobjects.h200
-rw-r--r--src/mesa/main/get.c12
-rw-r--r--src/mesa/main/get.h6
-rw-r--r--src/mesa/main/tests/dispatch_sanity.cpp32
13 files changed, 820 insertions, 1 deletions
diff --git a/src/mapi/glapi/gen/EXT_external_objects.xml b/src/mapi/glapi/gen/EXT_external_objects.xml
new file mode 100644
index 00000000000..25e6879ec7b
--- /dev/null
+++ b/src/mapi/glapi/gen/EXT_external_objects.xml
@@ -0,0 +1,234 @@
+<?xml version="1.0"?>
+<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
+
+<!-- Note: no GLX protocol info yet. -->
+
+
+<OpenGLAPI>
+
+<category name="EXT_external_objects" number="503">
+
+ <enum name="TEXTURE_TILING_EXT" value="0x9580"/>
+ <enum name="DEDICATED_MEMORY_OBJECT_EXT" value="0x9581"/>
+ <enum name="PROTECTED_MEMORY_OBJECT_EXT" value="0x959B"/>
+ <enum name="NUM_TILING_TYPES_EXT" value="0x9582"/>
+ <enum name="TILING_TYPES_EXT" value="0x9583"/>
+ <enum name="OPTIMAL_TILING_EXT" value="0x9584"/>
+ <enum name="LINEAR_TILING_EXT" value="0x9585"/>
+ <enum name="NUM_DEVICE_UUIDS_EXT" value="0x9596"/>
+ <enum name="DEVICE_UUID_EXT" value="0x9597"/>
+ <enum name="DRIVER_UUID_EXT" value="0x9598"/>
+ <enum name="LAYOUT_GENERAL_EXT" value="0x958D"/>
+ <enum name="LAYOUT_COLOR_ATTACHMENT_EXT" value="0x958E"/>
+ <enum name="LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT" value="0x958F"/>
+ <enum name="LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT" value="0x9590"/>
+ <enum name="LAYOUT_SHADER_READ_ONLY_EXT" value="0x9591"/>
+ <enum name="LAYOUT_TRANSFER_SRC_EXT" value="0x9592"/>
+ <enum name="LAYOUT_TRANSFER_DST_EXT" value="0x9593"/>
+
+ <function name="GetUnsignedBytevEXT" es2="3.2">
+ <param name="pname" type="GLenum"/>
+ <param name="data" type="GLubyte *"/>
+ </function>
+
+ <function name="GetUnsignedBytei_vEXT" es2="3.2">
+ <param name="target" type="GLenum"/>
+ <param name="index" type="GLuint"/>
+ <param name="data" type="GLubyte *"/>
+ </function>
+
+ <function name="DeleteMemoryObjectsEXT" es2="3.2">
+ <param name="n" type="GLsizei"/>
+ <param name="memoryObjects" type="const GLuint *"/>
+ </function>
+
+ <function name="IsMemoryObjectEXT" es2="3.2">
+ <param name="memoryObject" type="GLuint"/>
+ <return type="GLboolean"/>
+ </function>
+
+ <function name="CreateMemoryObjectsEXT" es2="3.2">
+ <param name="n" type="GLsizei"/>
+ <param name="memoryObjects" type="GLuint *"/>
+ </function>
+
+ <function name="MemoryObjectParameterivEXT" es2="3.2">
+ <param name="memoryObject" type="GLuint"/>
+ <param name="pname" type="GLenum"/>
+ <param name="params" type="const GLint *"/>
+ </function>
+
+ <function name="GetMemoryObjectParameterivEXT" es2="3.2">
+ <param name="memoryObject" type="GLuint"/>
+ <param name="pname" type="GLenum"/>
+ <param name="params" type="GLint *"/>
+ </function>
+
+ <function name="TexStorageMem2DEXT" es2="3.2">
+ <param name="target" type="GLenum"/>
+ <param name="levels" type="GLsizei"/>
+ <param name="internalFormat" type="GLenum"/>
+ <param name="width" type="GLsizei"/>
+ <param name="height" type="GLsizei"/>
+ <param name="memory" type="GLuint"/>
+ <param name="offset" type="GLuint64"/>
+ </function>
+
+ <function name="TexStorageMem2DMultisampleEXT" es2="3.2">
+ <param name="target" type="GLenum"/>
+ <param name="samples" type="GLsizei"/>
+ <param name="internalFormat" type="GLenum"/>
+ <param name="width" type="GLsizei"/>
+ <param name="height" type="GLsizei"/>
+ <param name="fixedSampleLocations" type="GLboolean"/>
+ <param name="memory" type="GLuint"/>
+ <param name="offset" type="GLuint64"/>
+ </function>
+
+ <function name="TexStorageMem3DEXT" es2="3.2">
+ <param name="target" type="GLenum"/>
+ <param name="levels" type="GLsizei"/>
+ <param name="internalFormat" type="GLenum"/>
+ <param name="width" type="GLsizei"/>
+ <param name="height" type="GLsizei"/>
+ <param name="depth" type="GLsizei"/>
+ <param name="memory" type="GLuint"/>
+ <param name="offset" type="GLuint64"/>
+ </function>
+
+ <function name="TexStorageMem3DMultisampleEXT" es2="3.2">
+ <param name="target" type="GLenum"/>
+ <param name="samples" type="GLsizei"/>
+ <param name="internalFormat" type="GLenum"/>
+ <param name="width" type="GLsizei"/>
+ <param name="height" type="GLsizei"/>
+ <param name="depth" type="GLsizei"/>
+ <param name="fixedSampleLocations" type="GLboolean"/>
+ <param name="memory" type="GLuint"/>
+ <param name="offset" type="GLuint64"/>
+ </function>
+
+ <function name="BufferStorageMemEXT" es2="3.2" no_error="true">
+ <param name="target" type="GLenum"/>
+ <param name="size" type="GLsizeiptr"/>
+ <param name="memory" type="GLuint"/>
+ <param name="offset" type="GLuint64"/>
+ </function>
+
+ <function name="TextureStorageMem2DEXT" es2="3.2">
+ <param name="texture" type="GLenum"/>
+ <param name="levels" type="GLsizei"/>
+ <param name="internalFormat" type="GLenum"/>
+ <param name="width" type="GLsizei"/>
+ <param name="height" type="GLsizei"/>
+ <param name="memory" type="GLuint"/>
+ <param name="offset" type="GLuint64"/>
+ </function>
+
+ <function name="TextureStorageMem2DMultisampleEXT" es2="3.2">
+ <param name="texture" type="GLuint"/>
+ <param name="samples" type="GLsizei"/>
+ <param name="internalFormat" type="GLenum"/>
+ <param name="width" type="GLsizei"/>
+ <param name="height" type="GLsizei"/>
+ <param name="fixedSampleLocations" type="GLboolean"/>
+ <param name="memory" type="GLuint"/>
+ <param name="offset" type="GLuint64"/>
+ </function>
+
+ <function name="TextureStorageMem3DEXT" es2="3.2">
+ <param name="texture" type="GLuint"/>
+ <param name="levels" type="GLsizei"/>
+ <param name="internalFormat" type="GLenum"/>
+ <param name="width" type="GLsizei"/>
+ <param name="height" type="GLsizei"/>
+ <param name="depth" type="GLsizei"/>
+ <param name="memory" type="GLuint"/>
+ <param name="offset" type="GLuint64"/>
+ </function>
+
+ <function name="TextureStorageMem3DMultisampleEXT" es2="3.2">
+ <param name="texture" type="GLuint"/>
+ <param name="samples" type="GLsizei"/>
+ <param name="internalFormat" type="GLenum"/>
+ <param name="width" type="GLsizei"/>
+ <param name="height" type="GLsizei"/>
+ <param name="depth" type="GLsizei"/>
+ <param name="fixedSampleLocations" type="GLboolean"/>
+ <param name="memory" type="GLuint"/>
+ <param name="offset" type="GLuint64"/>
+ </function>
+
+ <function name="NamedBufferStorageMemEXT" es2="3.2" no_error="true">
+ <param name="buffer" type="GLuint"/>
+ <param name="size" type="GLsizeiptr"/>
+ <param name="memory" type="GLuint"/>
+ <param name="offset" type="GLuint64"/>
+ </function>
+
+ <function name="TexStorageMem1DEXT">
+ <param name="target" type="GLenum"/>
+ <param name="levels" type="GLsizei"/>
+ <param name="internalFormat" type="GLenum"/>
+ <param name="width" type="GLsizei"/>
+ <param name="memory" type="GLuint"/>
+ <param name="offset" type="GLuint64"/>
+ </function>
+
+ <function name="TextureStorageMem1DEXT">
+ <param name="texture" type="GLuint"/>
+ <param name="levels" type="GLsizei"/>
+ <param name="internalFormat" type="GLenum"/>
+ <param name="width" type="GLsizei"/>
+ <param name="memory" type="GLuint"/>
+ <param name="offset" type="GLuint64"/>
+ </function>
+
+ <function name="GenSemaphoresEXT" es2="3.2">
+ <param name="n" type="GLsizei"/>
+ <param name="semaphores" type="GLuint *"/>
+ </function>
+
+ <function name="DeleteSemaphoresEXT" es2="3.2">
+ <param name="n" type="GLsizei"/>
+ <param name="semaphores" type="const GLuint *"/>
+ </function>
+
+ <function name="IsSemaphoreEXT" es2="3.2">
+ <param name="semaphore" type="GLuint"/>
+ <return type="GLboolean"/>
+ </function>
+
+ <function name="SemaphoreParameterui64vEXT" es2="3.2">
+ <param name="semaphore" type="GLuint"/>
+ <param name="pname" type="GLenum"/>
+ <param name="params" type="const GLuint64 *"/>
+ </function>
+
+ <function name="GetSemaphoreParameterui64vEXT" es2="3.2">
+ <param name="semaphore" type="GLuint"/>
+ <param name="pname" type="GLenum"/>
+ <param name="params" type="GLuint64 *"/>
+ </function>
+
+ <function name="WaitSemaphoreEXT" es2="3.2">
+ <param name="semaphore" type="GLuint"/>
+ <param name="numBufferBarriers" type="GLuint"/>
+ <param name="buffers" type="const GLuint *"/>
+ <param name="numTextureBarriers" type="GLuint"/>
+ <param name="textures" type="const GLuint *"/>
+ <param name="srcLayouts" type="const GLenum *"/>
+ </function>
+
+ <function name="SignalSemaphoreEXT" es2="3.2">
+ <param name="semaphore" type="GLuint"/>
+ <param name="numBufferBarriers" type="GLuint"/>
+ <param name="buffers" type="const GLuint *"/>
+ <param name="numTextureBarriers" type="GLuint"/>
+ <param name="textures" type="const GLuint *"/>
+ <param name="dstLayouts" type="const GLenum *"/>
+ </function>
+
+</category>
+
+</OpenGLAPI>
diff --git a/src/mapi/glapi/gen/EXT_external_objects_fd.xml b/src/mapi/glapi/gen/EXT_external_objects_fd.xml
new file mode 100644
index 00000000000..6eaa3f5b0cc
--- /dev/null
+++ b/src/mapi/glapi/gen/EXT_external_objects_fd.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
+
+<!-- Note: no GLX protocol info yet. -->
+
+
+<OpenGLAPI>
+
+<category name="EXT_external_objects_fd" number="504">
+
+ <enum name="HANDLE_TYPE_OPAQUE_FD_EXT" value="0x9586"/>
+
+ <function name="ImportMemoryFdEXT" es2="3.2">
+ <param name="memory" type="GLuint"/>
+ <param name="size" type="GLuint64"/>
+ <param name="handleType" type="GLenum"/>
+ <param name="fd" type="GLint"/>
+ </function>
+
+ <function name="ImportSemaphoreFdEXT" es2="3.2">
+ <param name="semaphore" type="GLuint"/>
+ <param name="handleType" type="GLenum"/>
+ <param name="fd" type="GLint"/>
+ </function>
+
+</category>
+
+</OpenGLAPI>
diff --git a/src/mapi/glapi/gen/Makefile.am b/src/mapi/glapi/gen/Makefile.am
index bd04519f804..7f4a4693030 100644
--- a/src/mapi/glapi/gen/Makefile.am
+++ b/src/mapi/glapi/gen/Makefile.am
@@ -192,6 +192,8 @@ API_XML = \
APPLE_object_purgeable.xml \
APPLE_vertex_array_object.xml \
EXT_draw_buffers2.xml \
+ EXT_external_objects.xml \
+ EXT_external_objects_fd.xml \
EXT_framebuffer_object.xml \
EXT_gpu_shader4.xml \
EXT_packed_depth_stencil.xml \
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
index 8e50a015069..eb1d9b83b27 100644
--- a/src/mapi/glapi/gen/gl_API.xml
+++ b/src/mapi/glapi/gen/gl_API.xml
@@ -13060,6 +13060,9 @@
<xi:include href="NV_vdpau_interop.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+<xi:include href="EXT_external_objects.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+<xi:include href="EXT_external_objects_fd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
<xi:include href="GL4x.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</OpenGLAPI>
diff --git a/src/mapi/glapi/gen/gl_genexec.py b/src/mapi/glapi/gen/gl_genexec.py
index 57e155bd1fa..b7b22328ff8 100644
--- a/src/mapi/glapi/gen/gl_genexec.py
+++ b/src/mapi/glapi/gen/gl_genexec.py
@@ -75,6 +75,7 @@ header = """/**
#include "main/errors.h"
#include "main/es1_conversion.h"
#include "main/eval.h"
+#include "main/externalobjects.h"
#include "main/get.h"
#include "main/feedback.h"
#include "main/fog.h"
diff --git a/src/mesa/Makefile.sources b/src/mesa/Makefile.sources
index 97c8287acbc..f116d170037 100644
--- a/src/mesa/Makefile.sources
+++ b/src/mesa/Makefile.sources
@@ -85,6 +85,8 @@ MAIN_FILES = \
main/extensions.h \
main/extensions_table.c \
main/extensions_table.h \
+ main/externalobjects.c \
+ main/externalobjects.h \
main/fbobject.c \
main/fbobject.h \
main/feedback.c \
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index 037b2adae0f..05c15661b29 100644
--- a/src/mesa/main/bufferobj.c
+++ b/src/mesa/main/bufferobj.c
@@ -1900,6 +1900,22 @@ _mesa_BufferStorage(GLenum target, GLsizeiptr size, const GLvoid *data,
void GLAPIENTRY
+_mesa_BufferStorageMemEXT(GLenum target, GLsizeiptr size,
+ GLuint memory, GLuint64 offset)
+{
+
+}
+
+
+void GLAPIENTRY
+_mesa_BufferStorageMemEXT_no_error(GLenum target, GLsizeiptr size,
+ GLuint memory, GLuint64 offset)
+{
+
+}
+
+
+void GLAPIENTRY
_mesa_NamedBufferStorage_no_error(GLuint buffer, GLsizeiptr size,
const GLvoid *data, GLbitfield flags)
{
@@ -1922,6 +1938,21 @@ _mesa_NamedBufferStorage(GLuint buffer, GLsizeiptr size, const GLvoid *data,
"glNamedBufferStorage");
}
+void GLAPIENTRY
+_mesa_NamedBufferStorageMemEXT(GLuint buffer, GLsizeiptr size,
+ GLuint memory, GLuint64 offset)
+{
+
+}
+
+
+void GLAPIENTRY
+_mesa_NamedBufferStorageMemEXT_no_error(GLuint buffer, GLsizeiptr size,
+ GLuint memory, GLuint64 offset)
+{
+
+}
+
static ALWAYS_INLINE void
buffer_data(struct gl_context *ctx, struct gl_buffer_object *bufObj,
diff --git a/src/mesa/main/bufferobj.h b/src/mesa/main/bufferobj.h
index 9920ed233ac..74538648540 100644
--- a/src/mesa/main/bufferobj.h
+++ b/src/mesa/main/bufferobj.h
@@ -188,13 +188,24 @@ _mesa_BufferStorage_no_error(GLenum target, GLsizeiptr size,
void GLAPIENTRY
_mesa_BufferStorage(GLenum target, GLsizeiptr size, const GLvoid *data,
GLbitfield flags);
-
+void GLAPIENTRY
+_mesa_BufferStorageMemEXT(GLenum target, GLsizeiptr size,
+ GLuint memory, GLuint64 offset);
+void GLAPIENTRY
+_mesa_BufferStorageMemEXT_no_error(GLenum target, GLsizeiptr size,
+ GLuint memory, GLuint64 offset);
void GLAPIENTRY
_mesa_NamedBufferStorage_no_error(GLuint buffer, GLsizeiptr size,
const GLvoid *data, GLbitfield flags);
void GLAPIENTRY
_mesa_NamedBufferStorage(GLuint buffer, GLsizeiptr size, const GLvoid *data,
GLbitfield flags);
+void GLAPIENTRY
+_mesa_NamedBufferStorageMemEXT(GLuint buffer, GLsizeiptr size,
+ GLuint memory, GLuint64 offset);
+void GLAPIENTRY
+_mesa_NamedBufferStorageMemEXT_no_error(GLuint buffer, GLsizeiptr size,
+ GLuint memory, GLuint64 offset);
void GLAPIENTRY
_mesa_BufferData_no_error(GLenum target, GLsizeiptr size,
diff --git a/src/mesa/main/externalobjects.c b/src/mesa/main/externalobjects.c
new file mode 100644
index 00000000000..86404d2a8d3
--- /dev/null
+++ b/src/mesa/main/externalobjects.c
@@ -0,0 +1,257 @@
+/*
+ * Copyright © 2016 Red Hat.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+#include "externalobjects.h"
+
+void GLAPIENTRY
+_mesa_DeleteMemoryObjectsEXT(GLsizei n, const GLuint *memoryObjects)
+{
+
+}
+
+GLboolean GLAPIENTRY
+_mesa_IsMemoryObjectEXT(GLuint memoryObject)
+{
+ return GL_FALSE;
+}
+
+void GLAPIENTRY
+_mesa_CreateMemoryObjectsEXT(GLsizei n, GLuint *memoryObjects)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_MemoryObjectParameterivEXT(GLuint memoryObject,
+ GLenum pname,
+ const GLint *params)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_GetMemoryObjectParameterivEXT(GLuint memoryObject,
+ GLenum pname,
+ GLint *params)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_TexStorageMem2DEXT(GLenum target,
+ GLsizei levels,
+ GLenum internalFormat,
+ GLsizei width,
+ GLsizei height,
+ GLuint memory,
+ GLuint64 offset)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_TexStorageMem2DMultisampleEXT(GLenum target,
+ GLsizei samples,
+ GLenum internalFormat,
+ GLsizei width,
+ GLsizei height,
+ GLboolean fixedSampleLocations,
+ GLuint memory,
+ GLuint64 offset)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_TexStorageMem3DEXT(GLenum target,
+ GLsizei levels,
+ GLenum internalFormat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLuint memory,
+ GLuint64 offset)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_TexStorageMem3DMultisampleEXT(GLenum target,
+ GLsizei samples,
+ GLenum internalFormat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLboolean fixedSampleLocations,
+ GLuint memory,
+ GLuint64 offset)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_TextureStorageMem2DEXT(GLuint texture,
+ GLsizei levels,
+ GLenum internalFormat,
+ GLsizei width,
+ GLsizei height,
+ GLuint memory,
+ GLuint64 offset)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_TextureStorageMem2DMultisampleEXT(GLuint texture,
+ GLsizei samples,
+ GLenum internalFormat,
+ GLsizei width,
+ GLsizei height,
+ GLboolean fixedSampleLocations,
+ GLuint memory,
+ GLuint64 offset)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_TextureStorageMem3DEXT(GLuint texture,
+ GLsizei levels,
+ GLenum internalFormat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLuint memory,
+ GLuint64 offset)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_TextureStorageMem3DMultisampleEXT(GLuint texture,
+ GLsizei samples,
+ GLenum internalFormat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLboolean fixedSampleLocations,
+ GLuint memory,
+ GLuint64 offset)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_TexStorageMem1DEXT(GLenum target,
+ GLsizei levels,
+ GLenum internalFormat,
+ GLsizei width,
+ GLuint memory,
+ GLuint64 offset)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_TextureStorageMem1DEXT(GLuint texture,
+ GLsizei levels,
+ GLenum internalFormat,
+ GLsizei width,
+ GLuint memory,
+ GLuint64 offset)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_GenSemaphoresEXT(GLsizei n, GLuint *semaphores)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_DeleteSemaphoresEXT(GLsizei n, const GLuint *semaphores)
+{
+
+}
+
+GLboolean GLAPIENTRY
+_mesa_IsSemaphoreEXT(GLuint semaphore)
+{
+ return GL_FALSE;
+}
+
+void GLAPIENTRY
+_mesa_SemaphoreParameterui64vEXT(GLuint semaphore,
+ GLenum pname,
+ const GLuint64 *params)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_GetSemaphoreParameterui64vEXT(GLuint semaphore,
+ GLenum pname,
+ GLuint64 *params)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_WaitSemaphoreEXT(GLuint semaphore,
+ GLuint numBufferBarriers,
+ const GLuint *buffers,
+ GLuint numTextureBarriers,
+ const GLuint *textures,
+ const GLenum *srcLayouts)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_SignalSemaphoreEXT(GLuint semaphore,
+ GLuint numBufferBarriers,
+ const GLuint *buffers,
+ GLuint numTextureBarriers,
+ const GLuint *textures,
+ const GLenum *dstLayouts)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_ImportMemoryFdEXT(GLuint memory,
+ GLuint64 size,
+ GLenum handleType,
+ GLint fd)
+{
+
+}
+
+void GLAPIENTRY
+_mesa_ImportSemaphoreFdEXT(GLuint semaphore,
+ GLenum handleType,
+ GLint fd)
+{
+
+}
diff --git a/src/mesa/main/externalobjects.h b/src/mesa/main/externalobjects.h
new file mode 100644
index 00000000000..f70be8e8ab9
--- /dev/null
+++ b/src/mesa/main/externalobjects.h
@@ -0,0 +1,200 @@
+/*
+ * Mesa 3-D graphics library
+ *
+ * Copyright (C) 2017 Red Hat.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Authors: Dave Airlie <[email protected]>
+ * Andres Rodriguez <[email protected]>
+ */
+
+/**
+ * \file externalobjects.h
+ *
+ * Declarations of functions related to the API interop extensions.
+ */
+
+#ifndef EXTERNALOBJECTS_H
+#define EXTERNALOBJECTS_H
+
+#include "glheader.h"
+
+extern void GLAPIENTRY
+_mesa_DeleteMemoryObjectsEXT(GLsizei n, const GLuint *memoryObjects);
+
+extern GLboolean GLAPIENTRY
+_mesa_IsMemoryObjectEXT(GLuint memoryObject);
+
+extern void GLAPIENTRY
+_mesa_CreateMemoryObjectsEXT(GLsizei n, GLuint *memoryObjects);
+
+extern void GLAPIENTRY
+_mesa_MemoryObjectParameterivEXT(GLuint memoryObject,
+ GLenum pname,
+ const GLint *params);
+
+extern void GLAPIENTRY
+_mesa_GetMemoryObjectParameterivEXT(GLuint memoryObject,
+ GLenum pname,
+ GLint *params);
+
+extern void GLAPIENTRY
+_mesa_TexStorageMem2DEXT(GLenum target,
+ GLsizei levels,
+ GLenum internalFormat,
+ GLsizei width,
+ GLsizei height,
+ GLuint memory,
+ GLuint64 offset);
+
+extern void GLAPIENTRY
+_mesa_TexStorageMem2DMultisampleEXT(GLenum target,
+ GLsizei samples,
+ GLenum internalFormat,
+ GLsizei width,
+ GLsizei height,
+ GLboolean fixedSampleLocations,
+ GLuint memory,
+ GLuint64 offset);
+
+extern void GLAPIENTRY
+_mesa_TexStorageMem3DEXT(GLenum target,
+ GLsizei levels,
+ GLenum internalFormat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLuint memory,
+ GLuint64 offset);
+
+extern void GLAPIENTRY
+_mesa_TexStorageMem3DMultisampleEXT(GLenum target,
+ GLsizei samples,
+ GLenum internalFormat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLboolean fixedSampleLocations,
+ GLuint memory,
+ GLuint64 offset);
+
+extern void GLAPIENTRY
+_mesa_TextureStorageMem2DEXT(GLuint texture,
+ GLsizei levels,
+ GLenum internalFormat,
+ GLsizei width,
+ GLsizei height,
+ GLuint memory,
+ GLuint64 offset);
+
+extern void GLAPIENTRY
+_mesa_TextureStorageMem2DMultisampleEXT(GLuint texture,
+ GLsizei samples,
+ GLenum internalFormat,
+ GLsizei width,
+ GLsizei height,
+ GLboolean fixedSampleLocations,
+ GLuint memory,
+ GLuint64 offset);
+
+extern void GLAPIENTRY
+_mesa_TextureStorageMem3DEXT(GLuint texture,
+ GLsizei levels,
+ GLenum internalFormat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLuint memory,
+ GLuint64 offset);
+
+extern void GLAPIENTRY
+_mesa_TextureStorageMem3DMultisampleEXT(GLuint texture,
+ GLsizei samples,
+ GLenum internalFormat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLboolean fixedSampleLocations,
+ GLuint memory,
+ GLuint64 offset);
+
+extern void GLAPIENTRY
+_mesa_TexStorageMem1DEXT(GLenum target,
+ GLsizei levels,
+ GLenum internalFormat,
+ GLsizei width,
+ GLuint memory,
+ GLuint64 offset);
+
+extern void GLAPIENTRY
+_mesa_TextureStorageMem1DEXT(GLuint texture,
+ GLsizei levels,
+ GLenum internalFormat,
+ GLsizei width,
+ GLuint memory,
+ GLuint64 offset);
+
+extern void GLAPIENTRY
+_mesa_GenSemaphoresEXT(GLsizei n, GLuint *semaphores);
+
+extern void GLAPIENTRY
+_mesa_DeleteSemaphoresEXT(GLsizei n, const GLuint *semaphores);
+
+extern GLboolean GLAPIENTRY
+_mesa_IsSemaphoreEXT(GLuint semaphore);
+
+extern void GLAPIENTRY
+_mesa_SemaphoreParameterui64vEXT(GLuint semaphore,
+ GLenum pname,
+ const GLuint64 *params);
+
+extern void GLAPIENTRY
+_mesa_GetSemaphoreParameterui64vEXT(GLuint semaphore,
+ GLenum pname,
+ GLuint64 *params);
+
+extern void GLAPIENTRY
+_mesa_WaitSemaphoreEXT(GLuint semaphore,
+ GLuint numBufferBarriers,
+ const GLuint *buffers,
+ GLuint numTextureBarriers,
+ const GLuint *textures,
+ const GLenum *srcLayouts);
+
+extern void GLAPIENTRY
+_mesa_SignalSemaphoreEXT(GLuint semaphore,
+ GLuint numBufferBarriers,
+ const GLuint *buffers,
+ GLuint numTextureBarriers,
+ const GLuint *textures,
+ const GLenum *dstLayouts);
+
+extern void GLAPIENTRY
+_mesa_ImportMemoryFdEXT(GLuint memory,
+ GLuint64 size,
+ GLenum handleType,
+ GLint fd);
+
+extern void GLAPIENTRY
+_mesa_ImportSemaphoreFdEXT(GLuint semaphore,
+ GLenum handleType,
+ GLint fd);
+
+#endif
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index 68f520f14ef..982f64a08ac 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -1946,6 +1946,12 @@ _mesa_GetDoublev(GLenum pname, GLdouble *params)
}
}
+void GLAPIENTRY
+_mesa_GetUnsignedBytevEXT(GLenum pname, GLubyte *data)
+{
+
+}
+
/**
* Convert a GL texture binding enum such as GL_TEXTURE_BINDING_2D
* into the corresponding Mesa texture target index.
@@ -2652,6 +2658,12 @@ _mesa_GetDoublei_v(GLenum pname, GLuint index, GLdouble *params)
}
void GLAPIENTRY
+_mesa_GetUnsignedBytei_vEXT(GLenum target, GLuint index, GLubyte *data)
+{
+
+}
+
+void GLAPIENTRY
_mesa_GetFixedv(GLenum pname, GLfixed *params)
{
const struct value_desc *d;
diff --git a/src/mesa/main/get.h b/src/mesa/main/get.h
index ce97cc586d4..34cb9381fed 100644
--- a/src/mesa/main/get.h
+++ b/src/mesa/main/get.h
@@ -54,6 +54,9 @@ extern void GLAPIENTRY
_mesa_GetFixedv(GLenum pname, GLfixed *params);
extern void GLAPIENTRY
+_mesa_GetUnsignedBytevEXT(GLenum pname, GLubyte *data);
+
+extern void GLAPIENTRY
_mesa_GetBooleani_v( GLenum pname, GLuint index, GLboolean *params );
extern void GLAPIENTRY
@@ -71,6 +74,9 @@ _mesa_GetFloati_v(GLenum target, GLuint index, GLfloat *data);
extern void GLAPIENTRY
_mesa_GetDoublei_v(GLenum target, GLuint index, GLdouble *data);
+extern void GLAPIENTRY
+_mesa_GetUnsignedBytei_vEXT(GLenum target, GLuint index, GLubyte *data);
+
extern const GLubyte * GLAPIENTRY
_mesa_GetString( GLenum name );
diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp
index 724c22ee9b3..aea9ffb37f3 100644
--- a/src/mesa/main/tests/dispatch_sanity.cpp
+++ b/src/mesa/main/tests/dispatch_sanity.cpp
@@ -983,6 +983,38 @@ const struct function common_desktop_functions_possible[] = {
{ "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 },
+
{ NULL, 0, -1 }
};