From: Andres Rodriguez Date: Wed, 12 Jul 2017 22:45:06 +0000 (-0400) Subject: mapi: add EXT_external_objects and EXT_external_objects_fd X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=322ee1b3636a38c22bc65009f13667a9d5f438cf;p=mesa.git mapi: add EXT_external_objects and EXT_external_objects_fd Includes implementation stubs. Signed-off-by: Andres Rodriguez Acked-by: Timothy Arceri Acked-by: Samuel Pitoiset --- 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + 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 @@ -1899,6 +1899,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 + * Andres Rodriguez + */ + +/** + * \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. @@ -2651,6 +2657,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) { 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 @@ -53,6 +53,9 @@ _mesa_GetInteger64v( GLenum pname, GLint64 *params ); 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 ); @@ -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 } };