Your adsa-textures branch on fdo fails make check.
On Tue, Dec 16, 2014 at 6:52 AM, Laura Ekstrand <la...@jlekstrand.net> wrote: > This implements all of the texture functions for ARB_direct_state_access, > with the exception of glTextureBufferRange. There is an outstanding bug on > the specification for glTextureBufferRange. Fortunately, glTextureBufferRange > shares its implementation with glTextureBuffer and will be trivial to add > once the bug is fixed. > > Most of the implementation work involved abstracting the internals of the > traditional GL functions and writing the DSA functions on top of these > abstractions. For instance, to implement GenerateTextureMipmap, most of the > functionality of GenerateMipmap was moved to a function > void _mesa_generate_texture_mipmap(struct gl_context *ctx, struct > gl_texture_object *texObj, GLenum target, bool dsa). > GenerateMipmap and GenerateTextureMipmap were then implemented on top of this > function as thin layers that get the context and the relevant texture object. > One exciting byproduct of the creation of these backend abstractions is the > potential for driver internals (such as meta) to use nameless texture > objects. These objects could be created, used, and deleted without costly > hash table lookups. Moreover, the backend abstractions avoid the use of > GET_CURRENT_CONTEXT(ctx), allowing driver internals to pass in a different > context if desired. > > For this reason, most of the backend abstractions were exposed to the rest of > Mesa and given a name of the form _mesa_[DSA_function_name_in_snake_case]. To > avoid confusion between the backend function names and those of software > fallbacks, software fallbacks were renamed in the form > _mesa_[Driver_function_name]_sw. For instance, the backend for TexStorage2D > and TextureStorage2D is named _mesa_texture_storage. To avoid confusion with > the software fallback _mesa_alloc_texture_storage, the software fallback was > renamed to _mesa_AllocTextureStorage_sw. > > ARB_direct_state_access allows the user to create and pass around objects > with the effective target of GL_TEXTURE_CUBE_MAP. This causes some > unfortunate complexities in the implementation of TextureSubImage*D and > GetTextureImage, and there is an outstanding bug on how these implementations > should act if the user fails to provide enough storage for his or her cube > map. In the meantime, TextureSubImage*D and GetTextureImage throw > GL_INVALID_OPERATION if this happens. > > Laura Ekstrand (41): > glapi: Added ARB_direct_state_access.xml file. > main: Created a standard function that looks up a texture object by > its ID and throws INVALID_OPERATION if the ID isn't in the hash > table. > i965: intel_tex_image.c now accepts TEXTURE_CUBE_MAP as a valid > target. > main: Moved _mesa_lock_texture and _mesa_unlock_texture to texobj.h > from teximage.h. > main: Moved _mesa_get_current_tex_object from teximage.c to texobj.c. > main: Changed _mesa_alloc_texture_storage to > _mesa_AllocTextureStorage_sw. > main: Renamed _mesa_get_teximage to _mesa_GetTexImage_sw. > main: Renamed _mesa_get_compressed_teximage to > _mesa_GetCompressedTexImage_sw. > main: Removed trailing whitespace in texstate.c. > main: Added entry point for glCreateTextures. > main: Added entry points for glTextureStorage*D. > main: Added entry points for glTextureSubImage*D. > main: Corrected comment on _mesa_is_zero_size_texture. > main: Added entry point for BindTextureUnit. > main: set_tex_parameteri now handles errors according to the OpenGL > 4.5 Specification. > main: set_tex_parameterf now handles errors according to the OpenGL > 4.5 Specification. > main: Added get_texobj_by_name in texparam.c. > main: Added entry point for glTextureParameterf. > main: Added entry point for glTextureParameterfv. > main: Added entry point for glTextureParameteri. > main: Added entry points for glTextureParameteriv, Iiv, Iuiv. > main: legal_get_tex_level_parameter_target now handles > GL_TEXTURE_CUBE_MAP. > main: Added entry points for glGetTextureLevelParameteriv, fv. > main: Added entry point for glGetTextureParameterfv. > main: Added entry points for glGetTextureParameteriv, Iiv, and Iuiv. > main: Fixed some comments in texparam.c > main: Added entry points for CopyTextureSubImage*D. > main: Nameless texture creation and deletion. Does not affect normal > creation and deletion paths. > main: Added entry point for glGetTextureImage. > main: Added entry point for glGetCompressedTextureImage. > main: Added entry points for glCompressedTextureSubImage*D. > main: Added entry point for glGenerateTextureMipmap. > main: Added entry points for glTextureStorage2DMultisample and > glTextureStorage3DMultisample. > main: Fixed _mesa_texture_image_multisample so that it updates the > texObj->Immutable flag correctly. > main: Added entry point for glTextureBuffer. > main: Deleted trailing whitespaces in texobj.c. > main: Fixed whitespace errors in teximage.h and teximage.c. > main: Refactor in teximage.c to handle NULL from > _mesa_get_current_tex_object. > main: glDeleteTextures now throws GL_INVALID_VALUE if n is negative. > main: Checking for cube completeness in GetTextureImage. > main: Checking for cube completeness in TextureSubImage. > > src/mapi/glapi/gen/ARB_direct_state_access.xml | 271 ++++++ > src/mapi/glapi/gen/Makefile.am | 1 + > src/mapi/glapi/gen/gl_API.xml | 6 +- > src/mesa/drivers/common/driverfuncs.c | 4 +- > src/mesa/drivers/common/meta.c | 2 +- > src/mesa/drivers/dri/i965/intel_tex.c | 2 +- > src/mesa/drivers/dri/i965/intel_tex_copy.c | 1 + > src/mesa/drivers/dri/i965/intel_tex_image.c | 1 + > src/mesa/drivers/dri/swrast/swrast.c | 1 + > src/mesa/main/extensions.c | 1 + > src/mesa/main/genmipmap.c | 73 +- > src/mesa/main/genmipmap.h | 6 + > src/mesa/main/texgetimage.c | 497 ++++++++--- > src/mesa/main/texgetimage.h | 33 +- > src/mesa/main/teximage.c | 1096 > +++++++++++++++++------- > src/mesa/main/teximage.h | 133 ++- > src/mesa/main/texobj.c | 397 ++++++++- > src/mesa/main/texobj.h | 48 +- > src/mesa/main/texparam.c | 758 ++++++++++++---- > src/mesa/main/texparam.h | 84 +- > src/mesa/main/texstate.c | 22 +- > src/mesa/main/texstate.h | 39 +- > src/mesa/main/texstorage.c | 213 +++-- > src/mesa/main/texstorage.h | 39 +- > src/mesa/state_tracker/st_cb_texture.c | 12 +- > 25 files changed, 2971 insertions(+), 769 deletions(-) > create mode 100644 src/mapi/glapi/gen/ARB_direct_state_access.xml > > -- > 2.1.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev