summaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker
Commit message (Collapse)AuthorAgeFilesLines
* gallium: remove the swizzling parts of ExtSwizzleKeith Whitwell2009-10-231-2/+0
| | | | | | | | | These haven't been used by the mesa state tracker since the conversion to tgsi_ureg, and it seems that none of the other state trackers are using it either. This helps simplify one of the biggest suprises when starting off with TGSI shaders.
* gallium: remove noise opcodesKeith Whitwell2009-10-231-8/+15
| | | | | | | | | | | Provide a dummy implementation in the GL state tracker (move 0.5 to the destination regs). At some point, a motivated person could add a better implementation of noise. Currently not even the nvidia binary drivers do anything more than this. In any case, the place to do this is in the GL state tracker, not the poor driver.
* gallium: Permit surface_copy and surface_fill to be NULL.Corbin Simpson2009-10-174-14/+40
| | | | | | | | | | | | | Uf. Lots of files touched. Would people with working vega, xorg, dri1, etc. please make sure you are not broken, and fix yourself up if you are. There were only two or three places where the code did not have painful fallbacks, so I would advise st maintainers to find less painful workarounds, or consider overhauling util_surface_copy and util_surface_fill. Per ymanton, darktama, and Dr_Jakob's suggestions, clear has been left as-is. I will not add PIPE_CAP_BLITTER unless it is deemed necessary.
* Merge branch 'mesa_7_6_branch'Brian Paul2009-10-101-0/+7
|\
| * st/mesa: create aux buffers according to visualBrian Paul2009-10-091-0/+7
| | | | | | | | Fixes bug 24426 for gallium.
* | mesa/st: add missing mesa constant file nameKeith Whitwell2009-10-071-10/+11
| | | | | | | | | | There are many different names for constants in mesa, we were missing one since the ureg rewrite.
* | st/mesa: pass pipe_screen, not pipe_context to st_choose_format() functionsBrian Paul2009-10-075-12/+15
| | | | | | | | These don't depend on context state, but use a screen pointer.
* | Merge branch 'mesa_7_6_branch'Brian Paul2009-10-052-12/+13
|\| | | | | | | | | | | Conflicts: src/gallium/auxiliary/util/u_cpu_detect.c
| * st/mesa: check for null before asserts, fix possible mem leakBrian Paul2009-10-011-6/+7
| |
| * st/mesa: silence hidden parameter warningBrian Paul2009-10-011-6/+6
| |
| * st/mesa: fix non-mipmap lastLevel calculation.Brian Paul2009-10-011-1/+5
| | | | | | | | | | reviewed by Brian Paul. (cherry picked from master, commit ae2daacbac7242938cffe0e2409071e030e00863)
* | mesa: Copy textures' base format into wrapper renderbuffer.José Fonseca2009-10-051-0/+1
| | | | | | | | | | Otherwise st_copy_texsubimage will fallback to software blit due to inconsistent base formats.
* | mesa/st: add ST_DEBUG environment variableKeith Whitwell2009-10-0510-8/+119
| | | | | | | | | | At last it's possible to turn on tgsi dumps and other debugging in the state tracker without modifying sources...
* | mesa/st: don't reuse vertex buffers for bitmap, clear quadsKeith Whitwell2009-10-022-2/+24
| | | | | | | | | | | | | | | | | | | | Currently using max_slots > 1 will cause synchronous rendering if the driver flushes its command buffers between one bitmap and the next. Need to improve buffer_write to allow NO_WAIT (as well as no_flush) updates to buffers where we know there is no conflict with previous data.
* | gallium: Preparations for adding more PIPE_TRANSFER_* usage flags.Michel Dänzer2009-10-022-3/+2
| | | | | | | | | | | | Always test for PIPE_TRANSFER_READ/WRITE using the bit-wise and operator, and add a pipe_transfer_buffer_flags() helper for getting the buffer usage flags corresponding to them.
* | gallium: remove depth.occlusion_count flagKeith Whitwell2009-10-011-4/+0
| | | | | | | | | | | | | | This was redundant as drivers can just keep track of whether they are inside a begin/end query pair. We want to add more query types later and also support nested queries, none of which map well onto a flag like this. No driver appeared to be using the flag.
* | st/mesa: fix non-mipmap lastLevel calculation.Cooper Yuan2009-10-011-1/+5
| | | | | | | | reviewed by Brian Paul.
* | mesa/main: New feature FEATURE_queryobj.Chia-I Wu2009-09-301-1/+1
| | | | | | | | | | It merges FEATURE_ARB_occlusion_query and FEATURE_EXT_timer_query, and follows the feature conventions.
* | st/mesa: check gl_texture_object::GenerateMipmap field when allocating texmemBrian Paul2009-09-281-0/+3
| | | | | | | | | | In guess_and_alloc_texture() use the gl_texture_object::GenerateMipmap field as another hint as to whether to allocate space for a whole mipmap.
* | Merge branch 'mesa_7_6_branch'Brian Paul2009-09-282-55/+89
|\|
| * Merge branch 'mesa_7_5_branch' into mesa_7_6_branchBrian Paul2009-09-282-55/+89
| |\
| | * st/mesa: fix st_generate_mipmap() issuesBrian Paul2009-09-281-2/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | The main issue is we didn't always have a gallium texture object with enough space to store the to-be-generated mipmap levels. When that's the case, allocate a new gallium texture and use st_texure_finalize() to copy images from the old texture to the new one. We also had the baseLevel parameter to st_render_mipmap() wrong.
| | * st/mesa: fix/simplify st_texture_object::lastLevel calculationBrian Paul2009-09-281-53/+9
| | | | | | | | | | | | | | | | | | | | | Don't compute the st_texture_object::lastLevel field based on the texture filters. Use the _MaxLevel value that core Mesa computes for us. When called from the GenerateMipmap path, we'll use the lastLevel field as-is.
* | | Merge branch 'mesa_7_6_branch'Brian Paul2009-09-241-3/+9
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/mesa/drivers/dri/r600/r700_assembler.c src/mesa/drivers/dri/r600/r700_chip.c src/mesa/drivers/dri/r600/r700_render.c src/mesa/drivers/dri/r600/r700_vertprog.c src/mesa/drivers/dri/r600/r700_vertprog.h src/mesa/drivers/dri/radeon/radeon_span.c
| * | Merge branch 'mesa_7_5_branch' into mesa_7_6_branchBrian Paul2009-09-241-3/+9
| |\|
| | * st/mesa: trim calculated userbuffer sizeKeith Whitwell2009-09-231-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In get_array_bounds we were previously defining a user buffer sized as (nr_vertices * stride). The trouble is that if the vertex data occupies less than stride bytes, the extra tailing (stride - size) bytes may extend outside the memory actually allocated by the app and caused a segfault. To fix this, define a the buffer bounds to be: ptr .. ptr + (nr-1)*stride + element_size
* | | mesa: Ensure TGSI tokens are freed with gallium's free.José Fonseca2009-09-214-5/+20
| | | | | | | | | | | | To avoid breaking the gallium's builtin malloc debugging.
* | | Merge branch 'mesa_7_6_branch'Brian Paul2009-09-203-8/+29
|\| | | | | | | | | | | | | | Conflicts: src/mesa/drivers/dri/intel/intel_clear.c
| * | Merge branch 'mesa_7_5_branch' into mesa_7_6_branchNicolai Hähnle2009-09-202-5/+14
| |\|
| | * mesa/st: Initialize format bits of framebuffer renderbuffersNicolai Hähnle2009-09-201-0/+1
| | | | | | | | | | | | Signed-off-by: Nicolai Hähnle <[email protected]>
| | * st/mesa: fix some incorrect branching/clean-up code in TexImage functionsBrian Paul2009-09-161-3/+3
| | | | | | | | | | | | | | | We need to be sure to call the _mesa_unmap_teximage_pbo() function if we called _mesa_validate_pbo_teximage().
| | * st/mesa: fix texture memory allocation bugBrian Paul2009-09-161-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following example caused an incorrect GL_OUT_OF_MEMORY error to be raised in glTexSubImage2D: glTexImage2D(level=0, width=32, height=32, pixels=NULL); glTexImage2D(level=0, width=64, height=64, pixels=NULL); glTexSubImage2D(level=0, pixels!=NULL); The second glTexImage2D() call needs to cause the first image to be deallocated then reallocated at the new size. This was not happening because we were testing for pixels==NULL too early.
| | * st/mesa: silence uninitialized var warningsBrian Paul2009-09-031-2/+2
| | |
| | * st/mesa: fix glCopyPixels(GL_STENCIL_INDEX) inverted positionBrian Paul2009-09-031-0/+4
| | | | | | | | | | | | | | | If the renderbuffer orientation is Y=0=TOP we need to invert the dstY position.
| | * st/mesa: Do GL_RGBA->GL_RGB texsubimage on hardwareKeith Whitwell2009-09-021-14/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | State tracker currently backs GL_RGB textures with RGBA almost always. This means we need to maintain A==1 in these textures to give correct GL_RGB sampling results. This change offloads the RGBA->RGB copy to hardware using the new writemask version of u_blit_pixels. More src/dstLogical/dstActual triples could be shifted to hardware by this technique in future patches.
| | * st/mesa: flush bitmap cache if Z value changesBrian Paul2009-08-211-5/+11
| | | | | | | | | | | | | | | | | | | | | When adding a new bitmap to the cache we have to check if the Z value is changing and flush first if it is. This is a modified version of a patch from Justin Dou <[email protected]>
| * | mesa/st: Create front renderbuffer on the fly when supplied with a surfaceNicolai Hähnle2009-09-201-3/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Normally, the mesa/st would create a fake front buffer out of a client-allocated surface. In the DRI setting, however, st/dri provides a front buffer surface which is created and maintained by the X server. Prefer to use this surface instead, so that front buffer rendering and reading works correctly. Signed-off-by: Nicolai Hähnle <[email protected]>
* | | mesa: Allow BlitFramebuffer from a texture.José Fonseca2009-09-191-11/+45
| | | | | | | | | | | | | | | Although GL_EXT_framebuffer_blit does not mention textures, it doesn't forbid them either, and some thirdparty driver appear to support this.
* | | mesa: move generate mipmap callsBrian Paul2009-09-151-12/+0
| | | | | | | | | | | | | | | | | | Per the suggestion in the Intel driver, move the calls to ctx->Driver.GenerateMipmap() into core Mesa so that drivers don't have to worry about it.
* | | st/mesa: disable accidentally committed _mesa_print_program() callBrian Paul2009-09-151-1/+1
| | |
* | | st/mesa: minor whitespace, comment clean-upsBrian Paul2009-09-141-21/+9
| | |
* | | mesa/st: remove dead commentKeith Whitwell2009-09-141-7/+0
| | |
* | | st/mesa: convert to new tgsi_ureg mechanism for shader emitKeith Whitwell2009-09-143-983/+625
| | | | | | | | | | | | | | | | | | | | | | | | | | | Should be easier to read and work with than the older ways of emitting TGSI tokens. Also, emit simpler TGSI than previously: - translate away source and dest extended modifiers - translate away the SWZ opcode
* | | mesa: remove unused SATURATE_PLUS_MINUS_ONE flagKeith Whitwell2009-09-121-2/+0
| | | | | | | | | | | | Never set in mesa. Remove from tgsi translation as well.
* | | st/mesa: use st_context() helperBrian Paul2009-09-101-17/+17
|/ /
* | st/mesa: silence uninitialized var warningsBrian Paul2009-09-031-2/+2
| |
* | st/mesa: fix glCopyPixels(GL_STENCIL_INDEX) inverted positionBrian Paul2009-09-031-0/+4
| | | | | | | | | | If the renderbuffer orientation is Y=0=TOP we need to invert the dstY position.
* | st/mesa: Do GL_RGBA->GL_RGB texsubimage on hardwareKeith Whitwell2009-09-031-14/+51
| | | | | | | | | | | | | | | | | | | | | | | | State tracker currently backs GL_RGB textures with RGBA almost always. This means we need to maintain A==1 in these textures to give correct GL_RGB sampling results. This change offloads the RGBA->RGB copy to hardware using the new writemask version of u_blit_pixels. More src/dstLogical/dstActual triples could be shifted to hardware by this technique in future patches.
* | mesa: consolidate PBO map/unmap helpersBrian Paul2009-09-034-13/+13
| | | | | | | | | | | | | | Instead of _mesa_map_readpix_pbo() use _mesa_map_pbo_source(). Instead of _mesa_map_drawpix_pbo() and _mesa_map_bitmap_pbo() use _mesa_map_pbo_dest().
* | mesa: change ctx->Driver.BufferData() to return GLboolean for success/failureBrian Paul2009-09-031-4/+5
| | | | | | | | | | Return GL_FALSE if we failed to allocate the buffer. Then raise GL_OUT_OF_MEMORY in core Mesa.