summaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker
Commit message (Collapse)AuthorAgeFilesLines
* Always free image offsets memory when re-initializing texture image fields.Michel Dänzer2009-06-191-3/+0
| | | | Fixes leak running compiz with direct rendering.
* mesa: rework viewport/scissor initialization codeBrian Paul2009-06-172-22/+4
| | | | | | | | | | 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.
* mesa: rework vertex shader output / fragment shader input attribute matchingBrian Paul2009-06-111-20/+33
| | | | | | | | | | | | | | | | | | | | Before, if a vertex shader's outputs didn't exactly match a fragment shader's inputs we could wind up with invalid TGSI shader declarations. For example: Before patch: DCL OUT[0], POSITION DCL OUT[1], COLOR[1] DCL OUT[2], GENERIC[0] DCL OUT[3], GENERIC[0] <- note duplicate [0] DCL OUT[4], GENERIC[2] After patch: DCL OUT[0], POSITION DCL OUT[1], COLOR[1] DCL OUT[2], GENERIC[0] DCL OUT[3], GENERIC[1] DCL OUT[4], GENERIC[2]
* mesa: Use new pf_is_depth_and_stencil inline.José Fonseca2009-06-111-16/+2
|
* mesa: Use PIPE_TEXTURE_USAGE_DEPTH_STENCIL for any depth or stencil format.José Fonseca2009-06-112-7/+11
|
* mesa: Remove dead code.José Fonseca2009-06-111-3/+0
|
* st/mesa: fix typo s/BFC0/BFC1/Brian Paul2009-06-111-2/+2
|
* mesa: Only do read write when we don't have a depth value to writeJakob Bornecrantz2009-06-111-1/+1
|
* mesa: Take the format from the right structure.José Fonseca2009-06-111-1/+1
|
* meas: Use a read/write transfer when writing stencil component, but not ↵José Fonseca2009-06-111-2/+23
| | | | touching the depth component.
* mesa: Reverse s8z24 into z24s8 as required by EXT_packed_depth_stencil.José Fonseca2009-06-101-2/+7
| | | | | | Actually, after spotting this problem, I realized this is unreachable code. However don't bother to enable this fast path now, given the normal path is working just fine.
* mesa: Fix draw_stencil_pixels for PIPE_FORMAT_Z24S8_UNORM.José Fonseca2009-06-101-1/+1
| | | | | | | Reversed component order. This fixes glean depthStencil test failures for PIPE_FORMAT_Z24S8_UNORM visuals.
* mesa: Single precision constants.José Fonseca2009-06-101-2/+2
|
* mesa: Pure software accum buffer.José Fonseca2009-06-104-234/+187
| | | | | | | | | | The existing implementation was already implemented on software, but relied on the pipe driver to always support the R16G16B16A16_SNORM format. This patch eliminates that, without prejudice against a future hardware-only implementation. It also avoids some of the short <-> float conversions, and only does a read transfer of the color buffer on GL_RETURN if absolutely necessary.
* mesa/st: fix tracking of mapped buffer rangesKeith Whitwell2009-06-091-1/+1
| | | | | In st_bufferobj_map_range(), set obj->Offset consistently with its usage elsewhere.
* st/mesa: fix incorrect bufObj Length assignment, remove unneeded assertionBrian Paul2009-06-081-2/+1
|
* st/mesa: remove invalid assertionBrian Paul2009-06-081-3/+0
| | | | | | It's legal for ARB_vertex_program programs to not write to result.position. The results are undefined in that case. This assertion was causing us to abort/exit though.
* mesa: Allocate tokens from the heap.José Fonseca2009-06-081-18/+22
| | | | | | | | | | | The recent increase ST_MAX_SHADER_TOKENS to 8K causes stack overflows on windows. Failure to allocate is not being propagated to the caller. This is not a regression since the previous _mesa_malloc result wasn't being checked as well. Unfortunately it is not easy to fix, as the callers of these functions do not have failure propagation mechanism either, and so on. So leaving a just fixme note for now.
* st/mesa: increase ST_MAX_SHADER_TOKENS to 8kBrian Paul2009-06-041-1/+1
|
* mesa/st: restore flush to copy_texsubimage (was previously finish)Keith Whitwell2009-06-011-0/+3
| | | | Need a flush here even though the original finish was overkill.
* st/gl: Fix mip gen for compressed texturesJakob Bornecrantz2009-06-011-6/+8
|
* st/mesa: fix incorrect sprite origin when drawing to FBO/textureBrian Paul2009-06-011-1/+2
| | | | | | | 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.
* mesa: Check/propagate return value on st_make_current.José Fonseca2009-05-302-8/+11
| | | | | Prevents segmentation fault when trying to set the viewport/scissor after a context/drawable visual mismatch.
* st/mesa: fix incorrect src/dst stride params to _mesa_generate_mipmap_level()Brian Paul2009-05-181-2/+6
| | | | The stride needs to be in texels, not bytes.
* st: fix incorrect target parameter to screen->is_format_supported()Brian Paul2009-05-181-1/+1
| | | | We were passing a GL texture target instead of a pipe_texture_target enum.
* st: do proper refcounting for framebuffer surfacesBrian Paul2009-05-112-6/+17
|
* mesa/st: keep surface_copy arguments positiveKeith Whitwell2009-05-082-3/+68
| | | | | | | 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.
* mesa/st: remove redundant call to st_finish in CopyTexSubImageKeith Whitwell2009-05-081-3/+0
| | | | | Rendering should already have been flushed, any synchronization will be done by the driver or memory manager.
* mesa/st: cope with non-ibo index data in st_draw_feedback.cKeith Whitwell2009-05-081-8/+15
| | | | | | 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.
* mesa: more complete fix for transform_invarient glitchesKeith Whitwell2009-05-081-0/+6
| | | | | | 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.
* st: create renderbuffer's pipe_surface in st_render_texture()Brian Paul2009-05-011-1/+11
| | | | | | 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.
* mesa/st: protect internal flushes with FLUSH_CURRENTKeith Whitwell2009-04-281-1/+1
| | | | Already doing this for driver.flush()
* mesa/st: remove duplicate offset calculationKeith Whitwell2009-04-282-18/+1
|
* mesa/st: translate VERT_ATTRIB_GENERIC8..15 in st_translate_vertex_programKeith Whitwell2009-04-281-0/+8
| | | | It seems quake4 can hit these attributes sometimes.
* mesa/st: workaround for crashes in st_copy_texsubimageKeith Whitwell2009-04-281-0/+10
| | | | Proper fix for this hasn't been identified, but avoid crashing.
* st: Add an st_get_current() function.Thomas Hellstrom2009-04-282-0/+8
| | | | Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
* mesa/st: fix incorrect face, level in compress_with_blitKeith Whitwell2009-04-271-2/+1
| | | | | | | 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.
* st: comments, license, copyrightBrian Paul2009-04-221-0/+32
|
* st: also check _NEW_PROGRAM flag for vertex shader constant buffersBrian Paul2009-04-221-1/+1
| | | | | | 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).
* gallium: Reinstate unconditional flushes.Thomas Hellstrom2009-04-222-0/+4
| | | | | | Lost in commit e50dd26ca6d0eb0d0f97c2780020ea16e3d4a687. Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
* st: play it safe for now and check _NEW_PROGRAM for shader const buffer atomBrian Paul2009-04-211-1/+1
| | | | | When a new program is bound but no constants are updated we still need to update the Gallium const buffer.
* st: use the static atoms[] array directlyBrian Paul2009-04-212-20/+8
| | | | We can simplify this now that we no longer have any dynamic atoms.
* st: do away with dynamic state atom for const buffersBrian Paul2009-04-212-29/+4
| | | | Just use the new _NEW_PROGRAM_CONSTANTS flag instead.
* st: report GL_OUT_OF_MEMORY instead of assertingBrian Paul2009-04-211-4/+4
|
* mesa: Handle failure to create a transfer.José Fonseca2009-04-201-1/+2
|
* st: assert on pipe_buffer_create failureKeith Whitwell2009-04-201-0/+5
| | | | | | 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.
* gallium: Fix glDraw/CopyPixels fragment program leak.Michel Dänzer2009-04-201-0/+2
|
* st: Wait to create bitmap transfer until neededJakob Bornecrantz2009-04-191-8/+30
|
* gallium: Create OGL state tracker wrappers for various CPU access operations.Thomas Hellstrom2009-04-1713-173/+265
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Merge branch 'register-negate'Brian Paul2009-04-162-13/+9
|\