[Mesa-dev] [PATCH 00/41] ARB_direct_state_access texture functions
Anuj Phogat
anuj.phogat at gmail.com
Tue Jan 6 12:20:15 PST 2015
I ran gles3 conformance on your adsa-textures branch. Your patches
cause no regressions.
With all the comments fixed, and no piglit regressions, this series is
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
On Tue, Dec 30, 2014 at 4:27 PM, Laura Ekstrand <laura at jlekstrand.net> wrote:
> 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
>
>
More information about the mesa-dev
mailing list