summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_context.c
AgeCommit message (Collapse)Author
2009-06-17mesa: rework viewport/scissor initialization codeBrian Paul
The first time a context is bound to a drawable, the viewport and scissor bounds are initialized to the buffer's size. This is actually a bit tricky. A new _mesa_check_init_viewport() function is called in several places to check if the viewport has been initialized. We also use a new ctx->ViewportInitialized flag instead of the overloaded ctx->FirstTimeCurrent flag.
2009-05-30mesa: Check/propagate return value on st_make_current.José Fonseca
Prevents segmentation fault when trying to set the viewport/scissor after a context/drawable visual mismatch.
2009-05-11st: do proper refcounting for framebuffer surfacesBrian Paul
2009-05-08mesa: more complete fix for transform_invarient glitchesKeith Whitwell
Add a new flag mvp_with_dp4 in the context, and use that to switch both ffvertex.c and programopt.c vertex transformation code to either DP4 or MUL/MAD implementations.
2009-04-28st: Add an st_get_current() function.Thomas Hellstrom
Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
2009-03-18st: call _glapi_check_multithread from st_make_currentKeith Whitwell
This function is called from many OS-dependent versions of MakeCurrent. Move the check for multithreading to this central location to avoid having to make this check from all the callers.
2009-03-07mesa: move glViewport and glDepthRange functions into new viewport.c fileBrian Paul
A bit of refactoring with an eye toward ES2 and GL 3.1
2009-03-04gallium: Remove some superfluous instances of #include "p_inlines.h".Michel Dänzer
2009-03-04gallium: Unify reference counting.Michel Dänzer
The core reference counting code is centralized in p_refcnt.h. This has some consequences related to struct pipe_buffer: * The screen member of struct pipe_buffer must be initialized, or pipe_buffer_reference() will crash trying to destroy a buffer with reference count 0. u_simple_screen takes care of this, but I may have missed some of the drivers not using it. * Except for rare exceptions deep in winsys code, buffers must always be allocated via pipe_buffer_create() or via screen->*buffer_create() rather than via winsys->*buffer_create().
2009-02-23gallium: include st_cb_viewport.h to silence warningBrian Paul
2009-02-23gallium: add winsys interface for viewport changes to support DRI2Alan Hourihane
2009-02-12mesa: use new ST_CALLOC_STRUCT() macro in gallium state trackerBrian Paul
2009-02-12mesa: consistantly use mesa memory-functions in gallium state trackerBrian Paul
Use _mesa_malloc(), _mesa_free(), etc everywhere, not malloc(), free(), etc. Still using CALLOC_STRUCT() at this point.
2009-01-09st: build fixAlan Hourihane
2008-09-17gallium: clean-up/fix msaa override in state trackerBrian Paul
2008-09-16gallium: move _vbo_DestroyContext() callBrian Paul
Call it before freeing core Mesa state to avoid references to freed buffer objects.
2008-09-03gallium: Have pipe_buffer_* receive a pipe_screen instead of a pipe_context.José Fonseca
We want to use the pipe_buffer_* inlines everywhere, but a pipe context is not always available nor is it needed.
2008-08-19gallium: do a proper implementation of GL_OES_read_formatBrian Paul
Examine the currently bound color buffer's format to see if there's a good format/type match.
2008-08-19mesa: Call pipe->destroy on context destruction for all platforms.José Fonseca
2008-08-14gallium: use a default texture in update_textures(), update_samplers() when ↵Brian Paul
needed The default texture is used when the current fragment shader has texture sample instructions but the user has not provided/bound a texture.
2008-08-12gallium: more context clean-upBrian Paul
2008-07-21gallium: Temporary workaround for mismatched pipe create and pipe destroyJonathan White
2008-07-10gallium: check for FEATURE_feedback and FEATURE_drawpix when creating/using ↵Brian Paul
the aux draw module
2008-06-20gallium: always need st_init-blit()Brian Paul
2008-06-20gallium: assorted FEATURE testsBrian Paul
2008-06-18gallium: more FEATURE_x testsBrian Paul
2008-06-18gallium: added st_get_proc_address()Brian Paul
2008-06-18gallium: added FEATURE_x testsBrian Paul
2008-06-09gallium: include scissor.hBrian Paul
2008-05-20gallium: move vertex/fragment program unbindingBrian Paul
2008-05-20gallium: clean-up glDraw/CopyPixels shaders when destroying contextBrian Paul
2008-05-16gallium: release textures during context tear-down (fix mem leak)Brian Paul
2008-05-06gallium: implement 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. Another memory bug involving shaders yet to be fixed...
2008-04-30gallium: use new buffer wrapper functions in p_inlines.hBrian Paul
This allows us to remove most of the direct references to winsys in the state tracker.
2008-04-24gallium: use cso_destroy_vertex/fragment_shader() functionsBrian Paul
Also, rearrange the st_destroy_context() code a bit to prevent some invalid/NULL ptr derefs during tear-down.
2008-04-17gallium: reorder some of the destroy context codeBrian Paul
2008-04-09gallium: remove unneeded st->haveFramebufferSurfaces field.Brian Paul
2008-04-03gallium: streamline viewport/raster/shader state for clearing with quadsBrian Paul
Move init of these items to new st_init_clear().
2008-03-28gallium: implement a glBitmap cacheBrian
The bitmap cache attempts to accumulate a series of glBitmap calls in a buffer to effectively render a whole bunch of bitmaps at once. The cache can be disabled, if needed, by setting UseBitmapCache=GL_FALSE.
2008-03-25gallium: disable the selection/feedback draw module's options for wide ↵Brian Paul
lines, points, etc. Disable paths that would convert points/lines to tris as that upsets selection, feedback, rastpos.
2008-03-24gallium: free bitmap fragment shaders, misc clean-upBrian Paul
2008-03-20gallium: glBitmap code now separe from glDraw/CopyPixels codeBrian
Also, glBitmap now re-uses the vertex buffer to avoid frequent allocations/ deallocations. And, use u_simple_shaders utility code.
2008-03-20gallium: use the utility pasthrough shadersBrian
This avoids the Mesa->TGSI translation step.
2008-03-18gallium: plug in and init GL_EXT_framebuffer_blit function/extensionBrian
2008-03-11gallium: rework CSO-related code in state trackerBrian
Use the code in cso_context.c rather than st_cache.c. Basically, binding of state objects now goes through the CSO module. But Vertex/fragment shaders go through pipe->bind_fs/vs_state() since they're not cached by the CSO module at this time. Also, update softpipe driver to handle NULL state objects in various places. This happens during context destruction. May need to update other drivers...
2008-02-15Code reorganization: update build.José Fonseca
Update the Makefiles and includes for the new paths. Note that there hasn't been no separation of the Makefiles yet, and make is jumping all over the place. That will be taken care shortly. But for now, make should work. It was tested with linux and linux-dri. Linux-cell and linux-llvm might require some minor tweaks.
2008-02-08gallium: initial implemenation of auto mipmap generation in state trackerBrian
Use hardware rendering to compute/render mipmap levels. The fallback path (which will be used for non-renderable texture formats) isn't working yet.
2008-01-25gallium: rename pipe_buffer_handle to pipe_buffer, rework pipebuffer/ codeKeith Whitwell
Provide an actual definition of the pipe_buffer struct, containing the parameters used to create the buffer, and its refcount. Shift refcounting buffers out of the winsys interface, similar to surfaces & textures. Rework pipebuffer/ to reflect the fact these changes, and also Michel's reworking of the buffer interface.
2008-01-01unref const buffers during context destroyBrian
2007-12-19Fix problem with initial viewport/scissor size.Brian
If an app never called glViewport, the viewport size was always 0 by 0 pixels. Now pass initial size to st_create_framebuffer() and initialize the viewport and scissor bounds in st_make_current(). This could also be fixed by ensuring the gl_framebuffers passed to _mesa_make_current() were initialized to the right size. But that involves allocating the renderbuffers/pipe_surfaces earlier and that runs into some other issues ATM. Also remove obsolete createRenderbuffers param to st_create_framebuffer().