summaryrefslogtreecommitdiff
path: root/src/mesa/main/state.c
AgeCommit message (Collapse)Author
2008-05-06implement full reference counting for vertex/fragment programsBrian
Use _mesa_reference_vert/fragprog() wherever we assign program pointers. Fixes a memory corruption bug found with glean/api2 test.
2008-04-01fix mistakenly set ATIFragmentShader._Enabled bit (bug 15269)Roland Scheidegger
2007-11-09alias ProgramEnvParameter4xyARB and ProgramParameter4xyNV (bug #12935)Roland Scheidegger
these should be the same functions (as per spec).
2007-10-30Alias glStencilOpSeparateATI with glStencilOpSeparate.Brian
2007-10-30Finish up ATI_separate_stencilBrian
Add entrypoints to glapi XML file and regenerate files. Implement glStencilOpSeparateATI(). Consolidate some code in stencil.c
2007-09-27Restore old _TriangleCaps code to fix Blender problem (bug 12164)Brian
2007-07-21Remove ctx->Point._Size and ctx->Line._Width.Brian
The clamping for these values depends on whether we're drawing AA or non-AA points, lines. Defer clamping until drawing time. Drivers could compute and keep clamped AA and clamped non-AA values if desired.
2007-07-04Be more consistant with paths in #includes. Eventually, eliminate a bunch ↵Brian
of -I flags.
2007-05-16Initial implementation of MESA_texture_arrayIan Romanick
Shadow sampling from texture arrays is still not implemented. Everything else should be there, though.
2007-04-26Unconditionally update _TriangleCaps bits. Fixes software fallback bugs, ↵Brian
such as #10687.
2007-04-21Rename occlude.[ch] to queryobj.[ch]Brian
2007-03-27Restore the UseTexEnvProgram logic.Brian
Was removed during glsl-compiler work. Still need to go back and revisit this because of the interaction with fragment shaders...
2007-02-22Merge branch 'origin' into glsl-compiler-1Brian
Conflicts: src/mesa/main/state.c src/mesa/shader/program.c src/mesa/shader/program.h src/mesa/shader/programopt.c src/mesa/shader/slang/slang_execute.c src/mesa/sources src/mesa/swrast/s_arbshader.c src/mesa/swrast/s_context.c src/mesa/swrast/s_span.c src/mesa/swrast/s_zoom.c src/mesa/tnl/t_context.c src/mesa/tnl/t_save_api.c src/mesa/tnl/t_vb_arbprogram.c src/mesa/tnl/t_vp_build.c src/mesa/tnl/t_vtx_eval.c
2007-02-10ctx->Point._Size fixRune Peterson
2007-01-16Merge branch 'master' of git+ssh://keithw@git.freedesktop.org/git/mesa/mesa ↵Keith Whitwell
into vbo-0.2 Conflicts: src/mesa/array_cache/sources src/mesa/drivers/dri/i965/brw_context.c src/mesa/drivers/dri/i965/brw_draw.c src/mesa/drivers/dri/i965/brw_fallback.c src/mesa/drivers/dri/i965/brw_vs_emit.c src/mesa/drivers/dri/i965/brw_vs_tnl.c src/mesa/drivers/dri/mach64/mach64_context.c src/mesa/main/extensions.c src/mesa/main/getstring.c src/mesa/tnl/sources src/mesa/tnl/t_save_api.c src/mesa/tnl/t_save_playback.c src/mesa/tnl/t_vtx_api.c src/mesa/tnl/t_vtx_exec.c src/mesa/vbo/vbo_attrib.h src/mesa/vbo/vbo_exec_api.c src/mesa/vbo/vbo_save_api.c src/mesa/vbo/vbo_save_draw.c
2006-12-19Clean-up and re-org of the main GLSL object types.Brian
Use the gl_shader struct as it should be. Renamed gl_linked_program to gl_shader_program. Store both shaders and programs in the same hash table and use the Type field to distinguish them.
2006-12-19Overhaul of GLSL API functions, dispatching, etc.Brian
2006-12-15Lots of assorted changes for new GLSL compiler backend.Brian
New datatypes, constants, variables.
2006-12-13Move all the code for computing ctx->_TriangleCaps into state.c.Brian
ctx->_TriangleCaps should probably go away altogether someday...
2006-11-03plug in 2.0, 2.1 functionsBrian Paul
2006-11-02new RGBA_LOGICOP_ENABLED() macroBrian Paul
2006-11-02Rename _mesa_IsProgram() to _mesa_IsProgramARB() to avoid collision with theBrian Paul
OpenGL 2.0 function of the same name.
2006-11-02merge current trunk into vbo branchAlan Hourihane
2006-11-01Merge texmem-0-3-branch.Keith Whitwell
2006-10-30Move edgeflag into the VERT_ATTRIB_SEVEN slot. This means that ourKeith Whitwell
NV_vertex_program implementation has slightly incorrect aliasing behaviour. I think this is reasonable given the simplification and the fact that the mainstream ARB_vp continues to have the correct behaviour.
2006-10-11Fix bug #4681.Ian Romanick
glDeleteTextures and glDeleteTexturesEXT were erroneously listed as aliases of each other. For anything /except/ GLX protocol they are aliases. This set of changes allows functions that are functionally identical but have different GLX protocol to be listed as aliases. When building with GLX_INDIRECT_RENDERING set, different static functions are used. These functions determine whether the current context is direct rendering or not. If the context is direct rendering, the aliased function (e.g., glDeleteTextures in the case of glDeleteTexturesEXT) is called. If the context is not direct rendering, the correct GLX protocol is sent. For a deeper explanation of what is changed, please see: http://dri.freedesktop.org/wiki/PartiallyAliasedFunctions
2006-08-24GL_EXT_paletted_texture functions should alias GL_SGI_color_table functions.Ian Romanick
The functions for GL_EXT_paletted_texture that do not share GLX protocol with GL_ARB_imaging are supposed to alias the similar functions from GL_SGI_color_table. They didn't. This patch corrects this problem and enables GLX protocol for both extensions. Since this removes 3 entries from the dispatch table, this change creates a lot of changes in the generated files.
2006-08-17added FEATURE_EXT_timer_query and testsBrian Paul
2006-08-15Add support for GL_EXT_gpu_program_parameters. Any driver that enablesIan Romanick
either GL_ARB_vertex_program or GL_ARB_fragment_program should enable this extension as well.
2006-07-20Some structure renaming. Prefix vertex/fragment-related structs withBrian Paul
"gl_" to match other structs.
2006-07-18Compute ctx->Color._LogicOpEnabled in one place instead of four places!Brian Paul
2006-06-12Add support for GL_APPLE_vertex_array_object. Several test programsIan Romanick
and demos are also added. Adding basic support to drivers should be as easy as just enabling the extension, though thorough test would also be required.
2006-05-24The ctx->_TexEnvProgram that's allocated in update_state() doesn't seem toBrian Paul
be needed (it's set in texenvprogram.c) and is a memory leak according to valgrind. Disable with #if 0 / #endif
2006-04-25Put color index attribute into the 6th attribute slot.Brian Paul
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.
2006-04-11More GLSL code:Michal Krol
- use macros to access and modify render inputs bit-field; - un-alias generic vertex attributes for ARB vertex calls; - use MAX_VERTEX_PROGRAM_ATTRIBS (NV code) or MAX_VERTEX_ATTRIBS (ARB code) in place of VERT_ATTRIB_MAX; - define VERT_ATTRIB_GENERIC0..15 for un-aliased vertex attributes for ARB_vertex_shader; - fix generic attribute index range check in arbprogparse.c; - interface GLSL varyings between vertex and fragment shader; - use 64-bit optimised bitset (bitset.h) for render inputs;
2006-03-29Move the computation of the viewport matrix into a new update_viewport_matrix()Brian Paul
function since the matrix depends on the viewport params and the framebuffer's depth buffer resolution. Fixes some renderbuffer / depth range issues. This simplifies the _mesa_set_viewport() and _mesa_DepthRange() functions too.
2006-03-01Added glBlitFramebufferEXT function.Brian Paul
2006-01-09s/GLuint/GLbitfield/Brian Paul
2005-12-14Removed the GL_SGIX/SGIS_pixel_texture extensions. Same thing can beBrian Paul
done with fragment programs nowadays.
2005-12-12Split _MaintainTexEnvProgram into two flags _Maintain and _Use. ThisKeith Whitwell
restores the ability to run the software driver with program TNL but tradtional swrast.
2005-12-07Updates for GL_EXT_timer_query:Brian Paul
New GLint64EXT and GLuint64EXT types (use C99's long long types). New glGetQueryObject[u]i64vEXT() functions.
2005-11-19No longer derive 'ati_fragment_shader' from 'program' class. Only theBrian Paul
program->Id and program->RefCount fields were used and ATI fragment shaders didn't have too much in common with ARB/NV vertex/fragment programs anyway.
2005-11-12Move stuff common to vertex/fragment_program into the base class, including:Brian Paul
Instructions, InputsRead, OutputsWritten, and Parameters. Also, added debug functions: _mesa_print_instruction(), _mesa_print_program_parameters() and revamp _mesa_print_program().
2005-11-05remove unneeded #includesBrian Paul
2005-10-21fix GLX server resize/crash when resizing windowsBrian Paul
2005-10-07Fix a number of point size attenuation problems.Brian Paul
Move size clamping into the rasterization function.
2005-09-13OpenGL 2.0's two-sided stencil feature wasn't implemented correctly.Brian Paul
See comment near top of stencil.c for info about OpenGL 2.0 vs. GL_EXT_stencil_two_side.
2005-07-18Wrap every place that accesses a dispatch table with a macro. A new script-Ian Romanick
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
2005-05-09Use driver functions to create TexEnvProgram, TnlProgramKeith Whitwell
2005-05-04Major check-in of changes for GL_EXT_framebuffer_object extension.Brian Paul
Main driver impacts: - new code for creating the Mesa GLframebuffer - new span/pixel read/write code Some drivers not yet updated/tested.