mesa/vbo: Always use buffer objects for storage
authorAdam Jackson <ajax@redhat.com>
Wed, 2 Jun 2021 04:07:36 +0000 (00:07 -0400)
committerMarge Bot <emma+marge@anholt.net>
Tue, 7 Dec 2021 18:21:52 +0000 (18:21 +0000)
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14098>

src/mesa/state_tracker/st_context.c
src/mesa/vbo/vbo.h
src/mesa/vbo/vbo_context.c
src/mesa/vbo/vbo_exec.c
src/mesa/vbo/vbo_exec.h
src/mesa/vbo/vbo_exec_api.c

index 36c0ebb..d7e39e4 100644 (file)
@@ -856,7 +856,7 @@ st_create_context_priv(struct gl_context *ctx, struct pipe_context *pipe,
    /* This must be done after extensions are initialized to enable persistent
     * mappings immediately.
     */
-   _vbo_CreateContext(ctx, true);
+   _vbo_CreateContext(ctx);
 
    _mesa_initialize_dispatch_tables(ctx);
    _mesa_initialize_vbo_vtxfmt(ctx);
index c01ff41..cebe442 100644 (file)
@@ -184,7 +184,7 @@ struct vbo_save_context {
 };
 
 GLboolean
-_vbo_CreateContext(struct gl_context *ctx, bool use_buffer_objects);
+_vbo_CreateContext(struct gl_context *ctx);
 
 void
 _vbo_DestroyContext(struct gl_context *ctx);
index 9930894..f6102f3 100644 (file)
@@ -159,7 +159,7 @@ vbo_exec_update_eval_maps(struct gl_context *ctx)
 
 
 GLboolean
-_vbo_CreateContext(struct gl_context *ctx, bool use_buffer_objects)
+_vbo_CreateContext(struct gl_context *ctx)
 {
    struct vbo_context *vbo = &ctx->vbo_context;
 
@@ -180,7 +180,7 @@ _vbo_CreateContext(struct gl_context *ctx, bool use_buffer_objects)
     * will pretty much be permanently installed, which means that the
     * vtxfmt mechanism can be removed now.
     */
-   vbo_exec_init(ctx, use_buffer_objects);
+   vbo_exec_init(ctx);
    if (ctx->API == API_OPENGL_COMPAT)
       vbo_save_init(ctx);
 
index bc8e644..fbc65be 100644 (file)
@@ -109,11 +109,11 @@ _vbo_attribute_alias_map[VP_MODE_MAX][VERT_ATTRIB_MAX] = {
 
 
 void
-vbo_exec_init(struct gl_context *ctx, bool use_buffer_objects)
+vbo_exec_init(struct gl_context *ctx)
 {
    struct vbo_exec_context *exec = &vbo_context(ctx)->exec;
 
-   vbo_exec_vtx_init(exec, use_buffer_objects);
+   vbo_exec_vtx_init(exec);
 
    ctx->Driver.NeedFlush = 0;
    ctx->Driver.CurrentExecPrimitive = PRIM_OUTSIDE_BEGIN_END;
index c8b141d..b8ba42b 100644 (file)
@@ -40,13 +40,13 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "vbo_attrib.h"
 
 void
-vbo_exec_init(struct gl_context *ctx, bool use_buffer_objects);
+vbo_exec_init(struct gl_context *ctx);
 
 void
 vbo_exec_destroy(struct gl_context *ctx);
 
 void
-vbo_exec_vtx_init(struct vbo_exec_context *exec, bool use_buffer_objects);
+vbo_exec_vtx_init(struct vbo_exec_context *exec);
 
 void
 vbo_exec_vtx_destroy(struct vbo_exec_context *exec);
index 6b61b73..ed78f4f 100644 (file)
@@ -1030,21 +1030,11 @@ vbo_reset_all_attr(struct vbo_exec_context *exec)
 
 
 void
-vbo_exec_vtx_init(struct vbo_exec_context *exec, bool use_buffer_objects)
+vbo_exec_vtx_init(struct vbo_exec_context *exec)
 {
    struct gl_context *ctx = gl_context_from_vbo_exec(exec);
 
-   if (use_buffer_objects) {
-      /* Use buffer objects for immediate mode. */
-      struct vbo_exec_context *exec = &vbo_context(ctx)->exec;
-      exec->vtx.bufferobj = ctx->Driver.NewBufferObject(ctx, IMM_BUFFER_NAME);
-   } else {
-      /* Use allocated memory for immediate mode. */
-      exec->vtx.bufferobj = NULL;
-      exec->vtx.buffer_map =
-         align_malloc(ctx->Const.glBeginEndBufferSize, 64);
-      exec->vtx.buffer_ptr = exec->vtx.buffer_map;
-   }
+   exec->vtx.bufferobj = ctx->Driver.NewBufferObject(ctx, IMM_BUFFER_NAME);
 
    vbo_exec_vtxfmt_init(exec);
    _mesa_noop_vtxfmt_init(ctx, &exec->vtxfmt_noop);