summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/vtxfmt.c
Commit message (Collapse)AuthorAgeFilesLines
* mesa: Don't install glEvalMesh in the beginend dispatch tableIan Romanick2013-02-201-5/+5
| | | | | | | | NOTE: This is a candidate for the 9.1 branch. Signed-off-by: Ian Romanick <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59740 Reviewed-by: Eric Anholt <[email protected]>
* mesa: Install a minimal dispatch table during glBegin()/glEnd().Eric Anholt2013-01-211-0/+2
| | | | | | | | | | This is a step toward getting rid of ASSERT_OUTSIDE_BEGIN_END() in Mesa. v2: Finish create_beginend_table() comment, move loopback API init into it, and add a const flag. (suggestions by Brian) Reviewed-by: Brian Paul <[email protected]> (v1) Reviewed-by: Ian Romanick <[email protected]> (v1)
* mesa: assert if driver did not compute the versionJordan Justen2012-12-161-0/+2
| | | | | | | | | | Make sure drivers initialize the version before: * _mesa_initialize_exec_table is called * _mesa_initialize_exec_table_vbo is called * A context is made current Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* vbo: add _mesa_initialize_vbo_vtxfmtJordan Justen2012-12-161-0/+18
| | | | | | | | This function initializes the exec/save dispatch tables for VBO vtxfmt. Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Rename API_OPENGL to API_OPENGL_COMPAT.Paul Berry2012-11-291-7/+7
| | | | | | | | | | This should help avoid confusion now that we're using the gl_api enum to distinguishing between core and compatibility API's. The corresponding enum value for core API's is API_OPENGL_CORE. Acked-by: Eric Anholt <[email protected]> Acked-by: Matt Turner <[email protected]> Acked-by: Kenneth Graunke <[email protected]>
* dispatch: GLES1 fixes for _mesa_create_exec_table().Paul Berry2012-11-011-20/+31
| | | | | | | | | | | | | | | | | Currently, _mesa_create_exec_table() (in api_exec.c) is used for all APIs except GLES1. In GLES1, _mesa_create_exec_table_es1() (a code generated function) is used instead. In principle, this shouldn't be necessary. It should be possible for api_exec.c to contain the logic for populating the dispatch table for all API's. This patch paves the way for using _mesa_create_exec_table() instead of _mesa_create_exec_table_es1(), by making _mesa_create_exec_table() (and the functions it calls) expose the correct subset of desktop GL functions for GLES1. Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Add notes about remaining NV_vertex_program code.Eric Anholt2012-10-151-1/+1
| | | | Reviewed-by: Brian Paul <[email protected]>
* mesa: Don't set vtxfmt dispatch pointers for many things in ES2 or coreIan Romanick2012-09-281-53/+73
| | | | | | | NOTE: This is a candidate for the 9.0 branch Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: remove FEATURE_ARB_(fragment|vertex)_program defines.Oliver McFadden2012-09-151-2/+0
| | | | | Signed-off-by: Oliver McFadden <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: remove FEATURE_beginend define.Oliver McFadden2012-09-151-5/+0
| | | | | Signed-off-by: Oliver McFadden <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Disallow more deprecated functions in core contextIan Romanick2012-08-291-2/+1
| | | | Signed-off-by: Ian Romanick <[email protected]>
* mesa: Don't allow display lists or evaluators in core contextIan Romanick2012-08-291-2/+6
| | | | Signed-off-by: Ian Romanick <[email protected]>
* mesa: Kill ES2 wrapper functionsIan Romanick2012-08-291-2/+1
| | | | | | | | | v2: Fix completely broken condition around ClearColorIiEXT and ClearColorIuiEXT. v3: Add special VertexAttrib handling for ES2. Signed-off-by: Ian Romanick <[email protected]>
* mesa: don't enable legacy GL functions when using API_OPENGL_COREJordan Justen2012-07-301-79/+88
| | | | | | | Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: add support for using API_OPENGL_COREJordan Justen2012-07-301-2/+2
| | | | | | | Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: implement new DrawTransformFeedback functionsMarek Olšák2012-07-121-0/+5
| | | | Acked-by: Ian Romanick <[email protected]>
* mesa: Add support for GL_ARB_base_instanceFredrik Höglund2012-06-191-0/+3
| | | | Reviewed-by: Brian Paul <[email protected]>
* mesa: Fix typo in comment.Eric Anholt2012-02-291-1/+1
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: implement DrawTransformFeedback from ARB_transform_feedback2Marek Olšák2011-12-151-0/+1
| | | | | | | | | | | | | | It's like DrawArrays, but the count is taken from a transform feedback object. This removes DrawTransformFeedback from dd_function_table and adds the same function to GLvertexformat (with the function parameters matching GL). The vbo_draw_func callback has a new parameter "struct gl_transform_feedback_object *tfb_vertcount". The rest of the code just validates states and forwards the transform feedback object into vbo_draw_func.
* mesa: add initial API changes for ARB_vertex_type_2_10_10_10_rev.Dave Airlie2011-09-061-0/+47
| | | | | | | add new APIs to the internal mesa driver interface + set funcs in vtxfmt.c Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: add implementation of glDrawElementsInstancedBaseVertexPierre-Eric Pelloux-Prayer2011-06-021-0/+1
| | | | Signed-off-by: Brian Paul <[email protected]>
* mesa: Directly include mfeatures.h in files that perform feature tests.Vinson Lee2011-01-071-0/+1
|
* mesa: hook up GL 3.x entrypointsBrian Paul2010-11-211-2/+2
| | | | Fix up some details in the xml files and regenerate dispatch files.
* mesa: implement integer-valued vertex attribute functionsBrian Paul2010-10-281-4/+30
| | | | The integers still get converted to floats. That'll have to change someday.
* mesa: plug in primitive restart functionBrian Paul2010-10-211-0/+3
|
* Only install vtxfmt tables for OpenGLKristian Høgsberg2010-10-141-2/+4
| | | | | | GLES1 and GLES2 install their own exec pointers and don't need the Save table. Also, the SET_* macros use different indices for the different APIs so the offsets used in vtxfmt.c are actually wrong for the ES APIs.
* Drop the "neutral" tnl moduleKristian Høgsberg2010-10-141-65/+2
| | | | | | | Just always check for FLUSH_UPDATE_CURRENT and call Driver.BeginVertices when necessary. By using the unlikely() macros, this ends up as a 10% performance improvement (for isosurf, anyway) over the old, complicated function pointer swapping.
* Drop GLcontext typedef and use struct gl_context insteadKristian Høgsberg2010-10-131-4/+4
|
* mesa: implement core Mesa support for GL_ARB_draw_instancedBrian Paul2010-04-041-0/+2
|
* mesa: Remove unnecessary headers from vtxfmt.c.Vinson Lee2010-01-171-2/+0
|
* mesa/main: New feature FEATURE_beginend.Chia-I Wu2009-09-301-0/+6
| | | | | This feature corresponds to the Begin/End paradigm. Disabling this feature also eliminates the use of GLvertexformat completely.
* mesa/main: Make FEATURE_dlist follow feature conventions.Chia-I Wu2009-09-301-2/+4
| | | | | As shown in mfeatures.h, this allows users of dlist.h to work without knowing if the feature is available.
* mesa/main: Make FEATURE_evaluators follow feature conventions.Chia-I Wu2009-09-301-9/+4
| | | | | As shown in mfeatures.h, this allows users of eval.h to work without knowing if the feature is available.
* mesa/main: New feature FEATURE_arrayelt.Chia-I Wu2009-09-301-1/+3
| | | | This allows the removal of AEcontext.
* mesa: Add support for ARB_draw_elements_base_vertex.Eric Anholt2009-09-081-0/+3
|
* mesa: Make MultiDrawElements submit multiple primitives at once.Eric Anholt2009-09-011-0/+1
| | | | | | | | | Previously, MultiDrawElements just called DrawElements a bunch of times. By sending several primitives down the pipeline at once, we avoid a bunch of validation. On my GL demo, this improves fps by 2.5% (+/- .41%) and reduces CPU usage by 70.5% (+/- 2.9%) (n=3). Reviewed by: Ian Romanick <[email protected]>
* mesa: Add BeginVertices driver callKeith Whitwell2009-03-031-3/+6
| | | | | Provides notification to the VBO modules prior to the first immediate call. Pairs with FlushVertices()
* Put color index attribute into the 6th attribute slot.Brian Paul2006-04-251-1/+0
| | | | | | Update a lot of loops, conditionals to use the _TNL_FIRST/LAST_* values instead of specific vertex attributes. Remove the EdgeFlagv function from the GLvertexformat struct.
* No longer alias generic vertex attribs with conventional attribs for ↵Brian Paul2006-04-251-8/+15
| | | | GL_ARB_vertex_program.
* Fix recent problems with display lists and other parts of the code.Ian Romanick2005-08-051-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | CALL_by_offset, SET_by_offset, and GET_by_offset all had various problems. The core issue is that parts of the device-independent code in Mesa assumes that all functions have slots in the dispatch table. This is especially true in the display list code. It will merrilly try to set dispatch pointers for glVertexAttrib1fARB even if GL_ARB_vertex_program is not supported. When the GET/SET/CALL macros are invoked, they would read a 0 from the remap table. The problem is that 0 is the dispatch offset for glNewList! One change is that the remap table is now initialized to be full of -1 values. In addtion, all of the *_by_offset marcos misbehave in an obvious way if the specified offset is -1. SET_by_offset will do nothing, GET_by_offset will return NULL, and CALL_by_offset, since it uses GET_by_offset, will segfault. I also had to add GL_EXT_blend_func_separate to the list of default extensions in all_mesa_extensions (src/mesa/drivers/dri/common/utils.c). Even though many drivers do not export this extension, glBlendFunc is internally implemented by calling glBlendFuncSeparate. Without this addition, glBlendFunc stopped working on drivers (such as mga) that do not export GL_EXT_blend_func_separate. There are still a few assertions / crashes in GL_ARB_vertex_program tests, but I don't think that these are related to any of my changes.
* Major rip-up of internal function insertion interface. The oldmesa_6_3_1Ian Romanick2005-07-281-4/+3
| | | | | | | | | | | | | | | | | | | | | | _glapi_add_entrypoint has been replaced by a new routine called _glapi_add_dispatch. This new routine dynamically assignes dispatch offsets to functions added. This allows IHVs to add support for extension functions that do not have assigned dispatch offsets. It also means that a driver has no idea what offset will be assigned to a function. The vast majority of the changes in this commit account for that. An additional table, driDispatchRemapTable, is added. Functions not in the Linux OpenGL ABI (i.e., anything not in GL 1.2 + ARB_multitexture) has a fixed offset in this new table. The entry in this table specifies the offset in of the function in the real dispatch table. The internal interface was also bumped from version 20050725 to 20050727. This has been tested with various programs in progs/demos on: radeon (Radeon Mobility M6) r128 (Rage 128 Pro) mga (G400)
* Wrap every place that accesses a dispatch table with a macro. A new script-Ian Romanick2005-07-181-72/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | generated file, called src/mesa/glapi/dispatch.h, is added. This file contains three macros for each API function. It contains a GET, a SET, and a CALL. Each of the macros take a pointer to the context and a pointer to the dispatch table. In several threads on mesa3d-dev we discussed replacing _glapi_add_entrypoint with a new function called _glapi_add_dispatch. For this discussion, the important difference between the two is that the caller of _glapi_add_dispatch does *not* know what the dispatch offset will be at compile time. Because of this callers need to track the dispatch offset returned by _glapi_add_dispatch. http://marc.theaimsgroup.com/?t=111947074700001&r=1&w=2 The downside is that driver code then has to access the dispatch table two different ways. It accesses it using structure tags (e.g., exec->Begin) for functions with fixed offsets and via a remap table (e.g., exec[ remap->NewExtensionFunction ]) for functions without fixed offsets. Yuck! Using the macros allows both types of functions to be accessed identically. If a driver needs to set a pointer for Begin, it does 'SET_Begin(ctx, exec, my_begin_function)'. If it needs to set a pointer for NewExtensionFunction, it does 'SET_NewExtensionFunction(ctx, exec, my_NewExtensionFunction_function)'. Furthermore, if at some point in the future a static offset is assigned for NewExtensionFunction, only the macros need to change (instead of every single place that accesses a table for that function). This code differs slightly from the originally posted patches in that the CALL, GET, and SET marcos no longer take a context pointer as a parameter. Brian Paul had suggested that the remap table could be stored as a global since it would be set at CreateScreen time and would be constant for all contexts. This change reflects that feedback. http://marc.theaimsgroup.com/?t=112087194700001&r=1&w=2
* silence warningsAlan Hourihane2004-12-081-1/+1
|
* Change the dispatch offsets for the VertexAttrib*NV functions so they don'tBrian Paul2004-11-271-1/+9
| | | | | | | alias with the corresponding ARB functions. GL_ARB_vertex_shader (and OpenGL 2.0's) VertexAttrib functions don't alias with conventional vertex attributes, as GL_NV_vertex_program does. So, the ARB and NV version of VertexAttrib need to be distinct.
* Silence gcc 3.4 warnings on ReactOS. Mostly unused var warnings. (patch ↵Brian Paul2004-08-251-1/+2
| | | | 1015696)
* added some const keywordsBrian Paul2004-02-241-7/+8
|
* Merge vtx-0-2-branchKeith Whitwell2003-11-241-12/+9
|
* VertexAttrib4fv wasn't being installed (4f was).Keith Whitwell2003-10-061-0/+1
|
* Removed all RCS / CVS tags (Id, Header, Date, etc.) from everything.Ian Romanick2003-06-051-1/+0
|
* updated email addressesBrian Paul2002-10-291-3/+3
|