[Mesa-dev] [PATCH 00/23] ARB_direct_state_access buffer objects (v2)
martin.peres at free.fr
Thu Feb 12 12:09:00 PST 2015
On 12/02/15 04:05, Laura Ekstrand wrote:
> This includes a v2 of all of the buffer object code plus a v2 of the related
> TextureBufferRange entry point.
> Note that some implementations have been merged together (MapBuffer and
> MapBufferRange, for instance) because it didn't seem to make sense to keep two
> separate and nearly identical versions of the same code.
> As a reminder:
> 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:
> _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.
Someone commented on my code, stating that internal functions should not
have _mesa_ in their name and I think it makes sense. Do you have an
argument against that?
Other than that, I have adopted the same convention it would seem.
Probably got it from you :)
> 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
> 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.
> Laura Ekstrand (23):
> main: Fix whitespace in teximage.c.
> main: Add entry point for TextureBufferRange.
> main: Add utility function _mesa_lookup_bufferobj_err.
> main: Tex[ture]Buffer[Range] functions now use
> main: Add entry point for CreateBuffers.
> main: Add entry point for NamedBufferStorage.
> main: Add entry point for NamedBufferData.
> main: Add entry point for NamedBufferSubData.
> main: Cosmetic changes to BufferSubData infrastructure.
> main: Add entry point for CopyNamedBufferSubData.
> main: Refactor ClearBuffer[Sub]Data.
> main: Add entry points for ClearNamedBuffer[Sub]Data.
> main: Minor whitespace fixes in ClearNamedBuffer[Sub]Data.
> main: Refactor MapBuffer[Range].
> main: Add entry points for MapNamedBuffer[Range].
> main: Add entry point for UnmapNamedBuffer.
> main: Refactor FlushMappedBufferRange.
> main: Add entry point for FlushMappedNamedBufferRange.
> main: Refactor GetBufferParameteriv.
> main: Add entry points for GetBufferParameteriv.
> main: Add entry point for GetNamedBufferPointerv.
> main: Add entry point for glGetNamedBufferSubData.
> main: Cosmetic changes to GetBufferSubData.
> src/mapi/glapi/gen/ARB_direct_state_access.xml | 112 +++
> src/mesa/main/bufferobj.c | 1150 +++++++++++++++---------
> src/mesa/main/bufferobj.h | 144 ++-
> src/mesa/main/tests/dispatch_sanity.cpp | 16 +
> src/mesa/main/teximage.c | 120 ++-
> src/mesa/main/teximage.h | 4 +
> src/mesa/state_tracker/st_cb_bufferobjects.c | 4 +-
> 7 files changed, 1094 insertions(+), 456 deletions(-)
More information about the mesa-dev