Mesa (main): bufferobj: make sw clear buffer static, move it and rename it
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Dec 15 14:02:49 UTC 2021
Module: Mesa
Branch: main
Commit: 22e516b8466855bf5abd4720d2b6013841771a4b
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=22e516b8466855bf5abd4720d2b6013841771a4b
Author: Dave Airlie <airlied at redhat.com>
Date: Thu Dec 9 13:30:59 2021 +1000
bufferobj: make sw clear buffer static, move it and rename it
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
---
src/mesa/main/bufferobj.c | 91 +++++++++++++++++++----------------------------
1 file changed, 37 insertions(+), 54 deletions(-)
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index 61287447a9d..0a2ad2fa4cd 100644
--- a/src/mesa/main/bufferobj.c
+++ b/src/mesa/main/bufferobj.c
@@ -576,6 +576,41 @@ copy_buffer_subdata(struct gl_context *ctx,
src->buffer, 0, &box);
}
+static void
+clear_buffer_subdata_sw(struct gl_context *ctx,
+ GLintptr offset, GLsizeiptr size,
+ const GLvoid *clearValue,
+ GLsizeiptr clearValueSize,
+ struct gl_buffer_object *bufObj)
+{
+ GLsizeiptr i;
+ GLubyte *dest;
+
+ dest = _mesa_bufferobj_map_range(ctx, offset, size,
+ GL_MAP_WRITE_BIT |
+ GL_MAP_INVALIDATE_RANGE_BIT,
+ bufObj, MAP_INTERNAL);
+
+ if (!dest) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glClearBuffer[Sub]Data");
+ return;
+ }
+
+ if (clearValue == NULL) {
+ /* Clear with zeros, per the spec */
+ memset(dest, 0, size);
+ _mesa_bufferobj_unmap(ctx, bufObj, MAP_INTERNAL);
+ return;
+ }
+
+ for (i = 0; i < size/clearValueSize; ++i) {
+ memcpy(dest, clearValue, clearValueSize);
+ dest += clearValueSize;
+ }
+
+ _mesa_bufferobj_unmap(ctx, bufObj, MAP_INTERNAL);
+}
+
/**
* Called via glClearBufferSubData().
*/
@@ -590,8 +625,8 @@ clear_buffer_subdata(struct gl_context *ctx,
static const char zeros[16] = {0};
if (!pipe->clear_buffer) {
- _mesa_ClearBufferSubData_sw(ctx, offset, size,
- clearValue, clearValueSize, bufObj);
+ clear_buffer_subdata_sw(ctx, offset, size,
+ clearValue, clearValueSize, bufObj);
return;
}
@@ -1168,58 +1203,6 @@ _mesa_total_buffer_object_memory(struct gl_context *ctx)
return total;
}
-/**
- * Clear a subrange of the buffer object with copies of the supplied data.
- * If data is NULL the buffer is filled with zeros.
- *
- * This is the default callback for \c dd_function_table::ClearBufferSubData()
- * Note that all GL error checking will have been done already.
- *
- * \param ctx GL context.
- * \param offset Offset of the first byte to be cleared.
- * \param size Size, in bytes, of the to be cleared range.
- * \param clearValue Source of the data.
- * \param clearValueSize Size, in bytes, of the supplied data.
- * \param bufObj Object to be cleared.
- *
- * \sa glClearBufferSubData, glClearBufferData and
- * dd_function_table::ClearBufferSubData.
- */
-void
-_mesa_ClearBufferSubData_sw(struct gl_context *ctx,
- GLintptr offset, GLsizeiptr size,
- const GLvoid *clearValue,
- GLsizeiptr clearValueSize,
- struct gl_buffer_object *bufObj)
-{
- GLsizeiptr i;
- GLubyte *dest;
-
- dest = _mesa_bufferobj_map_range(ctx, offset, size,
- GL_MAP_WRITE_BIT |
- GL_MAP_INVALIDATE_RANGE_BIT,
- bufObj, MAP_INTERNAL);
-
- if (!dest) {
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "glClearBuffer[Sub]Data");
- return;
- }
-
- if (clearValue == NULL) {
- /* Clear with zeros, per the spec */
- memset(dest, 0, size);
- _mesa_bufferobj_unmap(ctx, bufObj, MAP_INTERNAL);
- return;
- }
-
- for (i = 0; i < size/clearValueSize; ++i) {
- memcpy(dest, clearValue, clearValueSize);
- dest += clearValueSize;
- }
-
- _mesa_bufferobj_unmap(ctx, bufObj, MAP_INTERNAL);
-}
-
/**
* Initialize the state associated with buffer objects
*/
More information about the mesa-commit
mailing list