mesa: initialize OutsideBeginEnd directly instead of through Exec

Exec is just a mutable pointer to one of the dispatch tables.
OutsideBeginEnd is what we are actually initializing here. This makes
the original intention clear.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18828>
This commit is contained in:
Marek Olšák
2022-08-11 01:26:06 -04:00
committed by Marge Bot
parent 1c803b7080
commit 684dae9e64
3 changed files with 10 additions and 12 deletions
+8 -10
View File
@@ -22,7 +22,7 @@
# This script generates the file api_exec_init.c, which contains
# _mesa_initialize_exec_table(). It is responsible for populating all
# entries in the "exec" dispatch table that aren't dynamic.
# entries in the "OutsideBeginEnd" dispatch table.
import argparse
import collections
@@ -53,21 +53,19 @@ header = """/**
/**
* Initialize a context's exec table with pointers to Mesa's supported
* Initialize a context's OutsideBeginEnd table with pointers to Mesa's supported
* GL functions.
*
* This function depends on ctx->Version.
*
* \param ctx GL context to which \c exec belongs.
* \param ctx GL context
*/
void
_mesa_initialize_exec_table(struct gl_context *ctx)
{
struct _glapi_table *exec;
exec = ctx->Exec;
assert(exec != NULL);
struct _glapi_table *table = ctx->OutsideBeginEnd;
assert(table != NULL);
assert(ctx->Version > 0);
"""
@@ -113,12 +111,12 @@ class PrintCode(gl_XML.gl_print_base):
no_error_condition = '_mesa_is_no_error_enabled(ctx) && ({0})'.format(condition)
error_condition = '!_mesa_is_no_error_enabled(ctx) && ({0})'.format(condition)
settings_by_condition[no_error_condition].append(
'SET_{0}(exec, {1}{0}_no_error);'.format(f.name, prefix, f.name))
'SET_{0}(table, {1}{0}_no_error);'.format(f.name, prefix, f.name))
settings_by_condition[error_condition].append(
'SET_{0}(exec, {1}{0});'.format(f.name, prefix, f.name))
'SET_{0}(table, {1}{0});'.format(f.name, prefix, f.name))
else:
settings_by_condition[condition].append(
'SET_{0}(exec, {1}{0});'.format(f.name, prefix, f.name))
'SET_{0}(table, {1}{0});'.format(f.name, prefix, f.name))
# Print out an if statement for each unique condition, with
# the SET_* calls nested inside it.
for condition in sorted(settings_by_condition.keys()):
+1 -1
View File
@@ -13615,7 +13615,7 @@ _mesa_initialize_save_table(const struct gl_context *ctx)
* normal-execution dispatch table. This lets us skip populating functions
* that should be called directly instead of compiled into display lists.
*/
memcpy(table, ctx->Exec, numEntries * sizeof(_glapi_proc));
memcpy(table, ctx->OutsideBeginEnd, numEntries * sizeof(_glapi_proc));
#include "api_save_init.h"
}
+1 -1
View File
@@ -1076,7 +1076,7 @@ vbo_install_exec_vtxfmt(struct gl_context *ctx)
#define NAME(x) _mesa_##x
#define NAME_ES(x) _es_##x
struct _glapi_table *tab = ctx->Exec;
struct _glapi_table *tab = ctx->OutsideBeginEnd;
#include "api_vtxfmt_init.h"
if (ctx->BeginEnd) {