[Mesa-dev] [PATCH v3 0/7] Delay exec table initialization until version is computed

Jordan Justen jordan.l.justen at intel.com
Mon Nov 19 17:01:29 PST 2012


GLES3 support requires that the version be computed before the
exec table is initialized.

For main exec table initialization (api_exec.c):
* Rename _mesa_create_exec_table to _mesa_initialize_exec_table
* _mesa_initialize_context allocates the exec table, and sets
  entries to nop, but leaves functions otherwise uninitialized
* Drivers must now call _mesa_compute_version and then
  _mesa_initialize_exec_table

Similarly for VBO:
* _vbo_CreateContext no longer initializes VBO vtxfmt functions
* _mesa_initialize_vbo_vtxfmt was added, and drivers must now
  call this function after computing the version

v3:
 * VBO vtxfmt function programming must also be delayed until
   the version in computed.
 * Combined all driver changes into a single patch

v2:
 * Rather than move version computation earlier into
   _mesa_initialize_context, now _mesa_initialize_context will
   no longer initialize the exec dispatch table.
 * All drivers should now be modified, whereas in v1, only
   i965 and swrast were modified.

v1:
 * Implement support for swrast & i965 drivers

Jordan Justen (7):
  mesa: separate exec allocation from initialization
  vbo: add _mesa_initialize_vbo_vtxfmt
  drivers: compute version and then initialize exec table
  mesa dispatch_sanity: call new functions to initialize exec table
  mesa: don't initialize exec dispatch tables in
    _mesa_initialize_context
  mesa: don't initialize VBO vtxfmt in _vbo_CreateContext
  mesa: assert if driver did not compute the version

 src/mapi/glapi/gen/gl_genexec.py               |   21 +++++++++------------
 src/mesa/drivers/dri/i915/i830_context.c       |    8 ++++++++
 src/mesa/drivers/dri/i915/i915_context.c       |    8 ++++++++
 src/mesa/drivers/dri/i965/brw_context.c        |    8 ++++++++
 src/mesa/drivers/dri/nouveau/nouveau_context.c |    6 ++++++
 src/mesa/drivers/dri/r200/r200_context.c       |    6 ++++++
 src/mesa/drivers/dri/radeon/radeon_context.c   |    6 ++++++
 src/mesa/drivers/dri/swrast/swrast.c           |    8 ++++++++
 src/mesa/drivers/osmesa/osmesa.c               |    9 +++++++++
 src/mesa/drivers/windows/gdi/wmesa.c           |    7 +++++++
 src/mesa/drivers/x11/xm_api.c                  |    7 +++++++
 src/mesa/main/api_exec.h                       |    4 ++--
 src/mesa/main/context.c                        |    7 +++----
 src/mesa/main/tests/dispatch_sanity.cpp        |    7 ++++++-
 src/mesa/main/vtxfmt.c                         |   20 ++++++++++++++++++++
 src/mesa/main/vtxfmt.h                         |    1 +
 src/mesa/state_tracker/st_context.c            |    8 ++++++++
 src/mesa/state_tracker/st_manager.c            |    2 --
 src/mesa/vbo/vbo_exec.c                        |    4 ----
 src/mesa/vbo/vbo_exec_api.c                    |    4 ----
 src/mesa/vbo/vbo_save_api.c                    |    1 -
 21 files changed, 122 insertions(+), 30 deletions(-)

-- 
1.7.10.4



More information about the mesa-dev mailing list