summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker
AgeCommit message (Collapse)Author
2009-06-02st/mesa: minor clean-ups, reformatting, etcBrian Paul
2009-06-02st/mesa: implement/enable GL_ARB_copy_buffer extensionBrian Paul
2009-06-01Merge branch 'mesa_7_5_branch'Brian Paul
2009-06-01st/mesa: fix incorrect sprite origin when drawing to FBO/textureBrian Paul
Need to take the draw buffer's up/down orientation into consideration when setting the sprite_coord_mode field. Fixes inverted sprites when drawing into an FBO.
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-27st/mesa: init Format field of vertex arrays for feedback modeBrian Paul
Fixes segfault in glRasterPos()
2009-05-22mesa: use Elements() for loop limitBrian Paul
2009-05-21st: add support for GL_EXT_vertex_array_bgraBrian Paul
2009-05-19st: reformatting, comments, var renamingBrian Paul
2009-05-18Merge branch 'mesa_7_5_branch'Brian Paul
Conflicts: Makefile src/mesa/main/version.h
2009-05-18st/mesa: fix incorrect src/dst stride params to _mesa_generate_mipmap_level()Brian Paul
The stride needs to be in texels, not bytes.
2009-05-18st: fix incorrect target parameter to screen->is_format_supported()Brian Paul
We were passing a GL texture target instead of a pipe_texture_target enum.
2009-05-13st/mesa: enable GL_APPLE_vertex_array_object for gallium driversBrian Paul
2009-05-11Merge branch 'mesa_7_5_branch'Brian Paul
Conflicts: Makefile src/mesa/main/version.h
2009-05-11st: do proper refcounting for framebuffer surfacesBrian Paul
2009-05-08mesa/st: keep surface_copy arguments positiveKeith Whitwell
The src/dest x,y, and w,h arguments of the pipe->surface_copy function are unsigned and the drivers aren't expecting negative (or extremly-large unsigned) values as inputs. Trim the requests at the state-tracker level before passing down.
2009-05-08mesa/st: remove redundant call to st_finish in CopyTexSubImageKeith Whitwell
Rendering should already have been flushed, any synchronization will be done by the driver or memory manager.
2009-05-08mesa/st: cope with non-ibo index data in st_draw_feedback.cKeith Whitwell
Previously only non-indexed or indicies-in-a-vbo cases were handled in this code. This change adds the missing regular indices-in-memory case.
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-05-08mesa/st: keep surface_copy arguments positiveKeith Whitwell
The src/dest x,y, and w,h arguments of the pipe->surface_copy function are unsigned and the drivers aren't expecting negative (or extremly-large unsigned) values as inputs. Trim the requests at the state-tracker level before passing down.
2009-05-08mesa/st: remove redundant call to st_finish in CopyTexSubImageKeith Whitwell
Rendering should already have been flushed, any synchronization will be done by the driver or memory manager.
2009-05-08mesa/st: cope with non-ibo index data in st_draw_feedback.cKeith Whitwell
Previously only non-indexed or indicies-in-a-vbo cases were handled in this code. This change adds the missing regular indices-in-memory case.
2009-05-05mesa: 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-05-01Merge branch 'mesa_7_5_branch'Brian Paul
2009-05-01st: create renderbuffer's pipe_surface in st_render_texture()Brian Paul
Previously we created the pipe_surface during framebuffer validation. But if we did a glCopyTex[Sub]Image() before anything else we wouldn't yet have the surface. This fixes that.
2009-05-01st: if st_swapbuffers() is called for single-buffered visual don't crashBrian Paul
Furthermore, return pointer(s) to the front color buffer(s).
2009-05-01st: when creating an on-demand front color buffer, init to back buffer imageBrian Paul
When we create a new front color buffer (user called glDrawBuffer(GL_FRONT)) initialize it to the contents of the back buffer. Any previous call to SwapBuffers() would have done that in effect, so make it reality.
2009-05-01st: added st_renderbuffer::defined flagBrian Paul
Indicates whether there's defined image contents, or garbage/don't care. This is set when we draw into a renderbuffer and cleared when we resize/ reallocate a renderbuffer or do a buffer swap (back buffer becomes undefined). We use this to determine whether the front color buffer has been drawn to, and whether to display its contents upon glFlush/Finish(), when the new st_swapbuffers() function is used.
2009-05-01set: new st_swapbuffers() which does a true front/back buffer swapBrian Paul
The pointers to the front/back renderbuffers are exchanged. This new function isn't actually used yet...
2009-05-01st: when double buffered, only create front color buffer on demandBrian Paul
Before we always created the front color buffer, even if was never used. This can save some memory.
2009-04-28mesa/st: protect internal flushes with FLUSH_CURRENTKeith Whitwell
Already doing this for driver.flush()
2009-04-28mesa/st: remove duplicate offset calculationKeith Whitwell
2009-04-28mesa/st: translate VERT_ATTRIB_GENERIC8..15 in st_translate_vertex_programKeith Whitwell
It seems quake4 can hit these attributes sometimes.
2009-04-28mesa/st: workaround for crashes in st_copy_texsubimageKeith Whitwell
Proper fix for this hasn't been identified, but avoid crashing.
2009-04-28st: Add an st_get_current() function.Thomas Hellstrom
Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
2009-04-27mesa/st: fix incorrect face, level in compress_with_blitKeith Whitwell
We were incorrectly applying the destination texture face and level when requesting a transfer to the temporary texture, which has only one face and level. This would obviously cause problems uploading to compressed cube and mipmap textures.
2009-04-22st: comments, license, copyrightBrian Paul
2009-04-22st: also check _NEW_PROGRAM flag for vertex shader constant buffersBrian Paul
This is a follow-on to commit c1a3b852807fb160f0cd246c1364b7336b4b947e. Note that (at this time) wherever _NEW_PROGRAM_CONSTANTS is set we're still setting _NEW_PROGRAM so this won't really make any difference (for now).
2009-04-22gallium: Reinstate unconditional flushes.Thomas Hellstrom
Lost in commit e50dd26ca6d0eb0d0f97c2780020ea16e3d4a687. Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
2009-04-21st: play it safe for now and check _NEW_PROGRAM for shader const buffer atomBrian Paul
When a new program is bound but no constants are updated we still need to update the Gallium const buffer.
2009-04-21st: use the static atoms[] array directlyBrian Paul
We can simplify this now that we no longer have any dynamic atoms.
2009-04-21st: do away with dynamic state atom for const buffersBrian Paul
Just use the new _NEW_PROGRAM_CONSTANTS flag instead.
2009-04-21st: report GL_OUT_OF_MEMORY instead of assertingBrian Paul
2009-04-20mesa: Handle failure to create a transfer.José Fonseca
2009-04-20st: assert on pipe_buffer_create failureKeith Whitwell
This needs a proper fix to propogate the out-of-memory condition back up to Mesa and the app as a GL error. Until then, at least catch the problem at its source.
2009-04-20gallium: Fix glDraw/CopyPixels fragment program leak.Michel Dänzer
2009-04-19st: Wait to create bitmap transfer until neededJakob Bornecrantz
2009-04-17gallium: Create OGL state tracker wrappers for various CPU access operations.Thomas Hellstrom
There are two usage types of buffer CPU accesses: One where we try to use the buffer contents for multiple draw commands in a batch. (batch := sequence of commands that are flushed together), like incrementally adding bitmaps to a bitmap texture that is reallocated on flush. And one where we assume we can safely overwrite the old buffer contexts, like glTexSubImage. In this case we need to make sure all old drawing commands referencing the buffer are flushed before we map the buffer. This is easily forgotten. Add wrappers for the most common of these operations. The first type is prefixed with "st_no_flush" and the second type is prefixed with "st_cond_flush", where "cond" indicates that we attmpt to only flush if there is indeed unflushed draw commands referencing the buffer. Prefixed functions are screen::get_tex_transfer pipe_buffer_write pipe_buffer_read pipe_buffer_map Please use the wrappers whenever possible. Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
2009-04-16Merge branch 'register-negate'Brian Paul
2009-04-16Merge branch 'gallium-s3tc'José Fonseca