summaryrefslogtreecommitdiffstats
path: root/src/mesa
Commit message (Collapse)AuthorAgeFilesLines
* mesa: Convert fixed function fragment program generator to GLSL IR.Eric Anholt2011-03-114-783/+668
| | | | | | | | This is a step towards providing a direct route for drivers accepting GLSL IR for codegen. Perhaps more importantly, it runs the fixed function fragment program through the GLSL IR optimization. Having seen how easy it is to make ugly fixed function texenv code that can do unnecessary work, this may improve real applicatinos.
* mesa: Add gl_MESAFogParamsOptimized for our special pre-computed fog params.Eric Anholt2011-03-111-0/+5
| | | | | | | It would be nice if we handled optimized uniform math like this in some generic way, since people often end up doing uniform expressions in shaders, but for now keep this hard-coded like it was in the texenvprogram code.
* mesa: Add a builtin uniform for the ATI_envmap_bumpmap rotation matrix.Eric Anholt2011-03-111-0/+11
| | | | | | | For fixed function fragment processing in GLSL IR, we want to be able to reference this state value. gl_* not explicitly permitted is reserved, so using this variable name internally shouldn't be any issue.
* mesa: Move texenvprogram.c to ff_fragment_shader.cpp.Eric Anholt2011-03-112-7/+16
| | | | | This file is about to change to generating a shader program instead of a fragment program.
* prog_cache: Add some support for shader_programs in prog_cache.Eric Anholt2011-03-112-4/+58
| | | | | | This is used in the upcoming fixed function shader_program generation, and shader_program and ARB programs are together in this code until both fragment and vertex ff get converted.
* mesa: Don't try to remove an internal shader_program from the hash.Eric Anholt2011-03-111-2/+4
| | | | It fails on assertions if the key isn't actually present.
* i965: Use ffs() on a 32-bit int value instad of ffsll().Eric Anholt2011-03-111-1/+1
|
* gallium: remove flags from the flush functionMarek Olšák2011-03-114-8/+8
| | | | | | | | | | The drivers have been changed so that they behave as if all of the flags were set. This is already implicit in most hardware drivers and required for multiple contexts. Some state trackers were also abusing the PIPE_FLUSH_RENDER_CACHE flag to decide whether flush_frontbuffer should be called. New flag ST_FLUSH_FRONT has been added to st_api.h as a replacement.
* gallium: remove the geom_flags param from is_format_supportedMarek Olšák2011-03-118-160/+119
|
* gallium: cleanup fence_signalled and fence_finishMarek Olšák2011-03-112-3/+3
| | | | So that they don't have the driver-specific param and return type.
* mesa: test against MaxUniformComponents in check_resources()Brian Paul2011-03-111-3/+3
| | | | | | Since we're compiling/linking GLSL shaders we should check against the shader uniform limits, not the legacy vertex/fragment program parameter limits which are usually lower.
* mesa: move location of some geometry program limitsBrian Paul2011-03-115-26/+29
| | | | | | | The gl_program_constants struct is for limits that are applicable to any/all shader stages. Move the geometry shader-only fields into the gl_constants struct. Remove redundant MaxGeometryUniformComponents field too.
* mesa: use check_resources() to check program against limitsBrian Paul2011-03-111-0/+58
| | | | | | Without these checks we could create shaders with more samplers, constants than the driver could handle. Fail linking rather than dying later.
* mesa: replace NEED_SECONDARY_COLOR(), RGBA_LOGICOP_ENABLED() with inlinesBrian Paul2011-03-1121-59/+85
| | | | and rename them.
* mesa: call FLUSH_VERTICES() before deleting shaders, buffers, query objectsBrian Paul2011-03-113-0/+5
| | | | | | | | Need to flush rendering (or at least indicate that the rug might be getting pulled out from underneath us) when a shader, buffer object or query object is about to be deleted. Also, this helps to tell the VBO module to unmap its current vertex buffer.
* st/mesa: remove unnecessary flushesMarek Olšák2011-03-111-3/+0
| | | | | | | The framebuffer cache flush should be implicit when calling set_framebuffer_state. There is no need to flush the command stream either.
* intel: Don't complain when getparam fails due to a missing param.Eric Anholt2011-03-091-1/+3
| | | | | This is an expected behavior when we're testing for the presence of new kernel features.
* i965: Pack the tracked state atoms into separate arrays for prepare/emit.Chris Wilson2011-03-092-42/+43
| | | | | | Improves performance of a hacked-up scissor-many (to reuse a small set of scissors instead of blowing out the cache, and then to run 100x more iterations so it actually took some time) by 3.6% +/- 1.2% (n=10)
* gallium: add timeout parameter to fence_finishMarek Olšák2011-03-082-3/+4
| | | | | This is a follow-up to the ARB_sync patch for st/mesa and completes the ARB_sync implementation.
* st/mesa: implement ARB_syncMarek Olšák2011-03-086-0/+168
| | | | | | The ServerWaitSync implementation matches Intel's driver. The extension is advertised when pipe_screen::fence_finish is set.
* st/mesa: cleanup checking for signed compressed formats in generate_mipmapsMarek Olšák2011-03-081-8/+4
|
* st/mesa: add LATC and 3DC supportMarek Olšák2011-03-083-3/+76
| | | | softpipe passes all tests.
* mesa: add ATI_texture_compression_3dcMarek Olšák2011-03-087-0/+30
| | | | | | | LUMINANCE_ALPHA_LATC2 = LUMINANCE_ALPHA_3DC, so this is easy. Note that there is no specification for 3DC, just a few white papers from ATI.
* mesa: add EXT_texture_compression_latcMarek Olšák2011-03-0813-7/+234
| | | | | | | | | | | | | | | | | The encoding/decoding algorithms are shared with RGTC. Thanks to some magic with the base format, the RGTC texstore functions work for LATC too. swrast passes the related piglit tests besides two things: - The alpha channel is wrong (it's always 1), however the incorrect alpha channel makes some other tests fail too, so I guess it's unrelated to LATC. - Signed LATC fetches aren't correct yet (signed values are clamped to [0,1]), however RGTC has the same problem. Further testing (with other of my patches) shows that hardware drivers and softpipe work. BTW, ETQW uses this extension.
* st/mesa: Fix an incorrect user vertex buffer referenceThomas Hellstrom2011-03-081-4/+2
| | | | | | | | st->user_vb[attr] was always pointing to the same user vb, regardless of the value of attr. Together with reverting the temporary workaround for bug 34378, and a fix in the svga driver, this fixes googleearth on svga. Signed-off-by: Thomas Hellstrom <[email protected]>
* vbo: mark vertex arrays as dirty when re-bindingMarek Olšák2011-03-081-1/+12
| | | | | This fixes: https://bugs.freedesktop.org/show_bug.cgi?id=34378
* r300/compiler: remove unused variablesMarek Olšák2011-03-081-1/+1
|
* swrast: flip the conditionals in shadow_compare4() for readabilityBrian Paul2011-03-081-24/+24
|
* swrast: add coord clamping, fix comparisons for shadow testingPhilip Taylor2011-03-081-27/+30
| | | | | | | | | This fixes https://bugs.freedesktop.org/show_bug.cgi?id=31159 for swrast and piglit depth-tex-compare. NOTE: This is a candidate for the 7.10 branch. Signed-off-by: Brian Paul <[email protected]>
* r300/compiler: fix equal and notequal shadow compare functionsMarek Olšák2011-03-081-18/+16
|
* r300/compiler: detect constants harderMarek Olšák2011-03-081-4/+8
|
* r300/compiler: improve the detection of constants for constant foldingMarek Olšák2011-03-081-0/+7
| | | | Now the expression V==0 generates one instruction instead of two.
* r300/compiler: saturate Z before the shadow comparisonMarek Olšák2011-03-081-37/+44
| | | | | | | This fixes: https://bugs.freedesktop.org/show_bug.cgi?id=31159 NOTE: This is a candidate for the 7.9 and 7.10 branches.
* mesa: return after invalidating renderbufferMarek Olšák2011-03-071-0/+1
|
* st/mesa: fail to alloc a renderbuffer if st_choose_renderbuffer_format failsMarek Olšák2011-03-071-1/+5
| | | | | | This fixes: state_tracker/st_format.c:401:st_pipe_format_to_mesa_format: Assertion `0' failed.
* mesa: invalidate framebuffer if internal format of renderbuffer is changedMarek Olšák2011-03-072-6/+31
| | | | RenderTexture doesn't have to be called in invalidate_rb, I guess.
* mesa: initialize DummyBufferObject's mutexBrian Paul2011-03-071-0/+1
| | | | | | The mutex's fields were all zeros. That's OK on Linux, but not Windows. NOTE: This is a candidate for the 7.10 branch.
* st/mesa: fix incorrect version checking codeBrian Paul2011-03-071-2/+3
|
* mesa: remove stray _mesa_finish() call in _mesa_CopyPixels()Brian Paul2011-03-071-2/+0
| | | | Leftover debug code from 6364d75008b4fa580c1cb47c59ba1cf3e0caa6cd.
* i915: Only invert wpos when rendering to the system framebuffer.Henri Verbeet2011-03-071-7/+15
|
* i915: Derive the gl_fragment_program from i915_fragment_program.Henri Verbeet2011-03-071-6/+5
| | | | | | Instead of using the current gl_fragment_program. These aren't necessarily the same, for example when translate_program() is called by i915ValidateFragmentProgram().
* intel: check for miptree allocation failureChris Wilson2011-03-071-0/+2
| | | | Signed-off-by: Chris Wilson <[email protected]>
* intel: Add some defense against buffer allocation failure for subimage blitsChris Wilson2011-03-071-11/+11
| | | | Signed-off-by: Chris Wilson <[email protected]>
* intel: Add some defense against bo allocation failureChris Wilson2011-03-071-7/+11
| | | | Signed-off-by: Chris Wilson <[email protected]>
* glx/dri: add initial dri interface for GLX_EXT_framebuffer_sRGB.Dave Airlie2011-03-061-0/+3
| | | | This realigns the name of the glx bit to align with the core mesa names.
* gallium: split CAP_INSTANCE_DRAWING into INSTANCEID and INSTANCE_DIVISORMarek Olšák2011-03-051-1/+3
| | | | | | | | ARB_instanced_arrays is a subset of D3D9. ARB_draw_instanced is a subset of D3D10. The point of this change is to allow D3D9-level drivers to enable ARB_instanced_arrays without ARB_draw_instanced.
* i965: Apply a workaround for the Ironlake "vertex flashing".Eric Anholt2011-03-041-1/+8
| | | | | | | | | | | | | | This is an awful hack and will hurt performance on Ironlake, but we're at a loss as to what's going wrong otherwise. This is the only common variable we've found that avoids the problem on 4 applications (CelShading, gnome-shell, Pill Popper, and my GLSL demo), while other variables we've tried appear to only be confounding. Neither the specifications nor the hardware team have been able to provide any enlightenment, despite much searching. https://bugs.freedesktop.org/show_bug.cgi?id=29172 Tested by: Chris Lord <[email protected]> (Pill Popper) Tested by: Ryan Lortie <[email protected]> (gnome-shell)
* st/mesa: set PIPE_BIND_RENDER_TARGET for sRGB formats if UNORM is supportedMarek Olšák2011-03-041-2/+9
| | | | | | | | Because the format can be changed to UNORM in a surface. This fixes: state_tracker/st_atom_framebuffer.c:163:update_framebuffer_state: Assertion `framebuffer->cbufs[i]->texture->bind & (1 << 1)' failed.
* i965: Fix extending VB packetsChris Wilson2011-03-041-2/+2
| | | | | | | | Computation of the delta of this array from the last had a silly little bug and ignored any initial delta==0 causing grief in Nexuiz and friends. Signed-off-by: Chris Wilson <[email protected]>
* i965: Handle URB_FENCE erratum for BroadwaterChris Wilson2011-03-041-0/+8
| | | | | | | | | | There is a silicon bug which causes unpredictable behaviour if the URB_FENCE command should cross a cache-line boundary. Pad before the command to avoid such occurrences. As this command only applies to gen4/5, do the fixup unconditionally as the specs do not actually state for which chip it was fixed (and the cost is negligible)... Signed-off-by: Chris Wilson <[email protected]>