[Mesa-dev] [PATCH 00/41] ARB_direct_state_access texture functions

Laura Ekstrand laura at jlekstrand.net
Tue Dec 30 16:27:05 PST 2014


That is now fixed.  Each added entry point in my history passes make check
now.

Thanks.

Laura

On Tue, Dec 30, 2014 at 2:21 PM, Anuj Phogat <anuj.phogat at gmail.com> wrote:

> Your adsa-textures branch on fdo fails make check.
>
> On Tue, Dec 16, 2014 at 6:52 AM, Laura Ekstrand <laura at 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 at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20141230/b75d30ad/attachment-0001.html>


More information about the mesa-dev mailing list