summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* i965: Use the fixed function GLSL program instead of the ARB program.Eric Anholt2011-03-112-5/+5
| | | | | | This gets one more piece of the pipeline onto the new codegen backend. Once ARB_fragment_program can generate GLSL programs, we can nuke the old backend.
* mesa: Track a computed _CurrentFragmentProgram for current gl_shader_programEric Anholt2011-03-112-4/+10
| | | | | | | This is like how we track FragmentProgram._Current for the computed ARB fragment program for fixed function texenv, but this gives direct access to the gl_shader_program for drivers to codegen from, skipping ARB_fp.
* 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-112-0/+6
| | | | | | | 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-112-0/+15
| | | | | | | 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-1169-215/+169
| | | | | | | | | | 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-1150-283/+208
|
* gallium: cleanup fence_signalled and fence_finishMarek Olšák2011-03-1127-118/+81
| | | | So that they don't have the driver-specific param and return type.
* gallium: kill is_resource_referencedMarek Olšák2011-03-1144-462/+44
| | | | Only st/xorg used it and even incorrectly with regards to pipelined transfers.
* swrastg: Add __DRI_TEX_BUFFER supportAdam Jackson2011-03-111-0/+1
| | | | | | | Without this, EXT_texture_from_pixmap is trivially broken. With it, it's merely subtly broken. Signed-off-by: Adam Jackson <[email protected]>
* 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.
* vega: remove unused pipe varBrian Paul2011-03-111-1/+0
|
* svga: Propagate discard/unsynchronized flags to the host when doing texture ↵José Fonseca2011-03-113-12/+38
| | | | DMAs.
* util: Fix typo in u_upload_flush().José Fonseca2011-03-111-2/+2
| | | | upload->offset is how much we used. upload->size is the whole buffer size.
* r300g: fix alignement for NPOT values in hyperz setupNicolas Peninguy2011-03-111-3/+3
| | | | | | | With 3 pipes cards we need to align with NPOT values. This fixes: https://bugs.freedesktop.org/show_bug.cgi?id=32945 Signed-off-by: Nicolas Peninguy <[email protected]>
* draw: remove unnecessary flushMarek Olšák2011-03-111-7/+0
|
* st/vega: remove unnecessary flushesMarek Olšák2011-03-113-14/+0
| | | | I don't see a reason we need them.
* st/mesa: remove unnecessary flushesMarek Olšák2011-03-112-5/+0
| | | | | | | The framebuffer cache flush should be implicit when calling set_framebuffer_state. There is no need to flush the command stream either.
* Revert "gallium/svga: Only upload parts of vertexarrays that are actually used"Thomas Hellstrom2011-03-105-48/+3
| | | | | | | | This reverts commit 6d4e337f3890105c7d8a2f132412c137d2570d25. The commit is incorrect. I'll rework it. Revert for now. Signed-off-by: Thomas Hellstrom <[email protected]>
* i915g: implement surface clear functions using hw-clearDaniel Vetter2011-03-104-15/+103
| | | | | | Tested by temporarily using util_clear even when not using the blitter. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: make set_framebuffer_state more robustDaniel Vetter2011-03-101-1/+2
| | | | | | u_blitter is lazy and doesn't fully clear it's stack-allocated fb. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: implement hw clearDaniel Vetter2011-03-108-6/+131
| | | | | | | | | | | | | | | Benefits: - spares us a relocation. - needed for zone rendering (if that ever happens). - just awesome. v2: Rename the debug option. Completely disabling the blitter is required for Y tiling to work, so this option will cover other code paths in the future. v3: Implement suggestions by Jakob Bornecrantz. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: blitter handles overlapping blitsDaniel Vetter2011-03-101-1/+0
| | | | | | No need to assert. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: enable separate depth/stencil clearsDaniel Vetter2011-03-101-1/+1
| | | | Signed-off-by: Daniel Vetter <[email protected]>
* i915g: streamline derived state updates of the driver pipelineDaniel Vetter2011-03-103-4/+2
| | | | | | | | Flushing the batch/hw backend doesn't invalidate the derived state. So kill the unnecessary function calls and add an assert in emit_hardware_state for paranoia. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: don't validate a NULL vboDaniel Vetter2011-03-101-1/+1
| | | | | | | With the new clear code this is possible (if the app call glClear before drawing the first primitive). Signed-off-by: Daniel Vetter <[email protected]>
* gallium/util: new polygon stipple utility helperBrian Paul2011-03-104-0/+492
| | | | | | | The polygon stipple fallback does not have to be implemented in the draw module (it doesn't need window coords, etc). Drivers can use this utility and avoid sw vertex fallbacks if pstipple is enabled. Note: this is WIP and not used by any driver yet.
* glsl: silence warning in printf() with a castBrian Paul2011-03-101-1/+1
|
* glx: fix null pointer deref in __glXGenerateError()Brian Paul2011-03-101-5/+5
| | | | | | | | | | The gc var would be NULL if called from line 238. Instead, get the opcode from __glXSetupForCommand(dpy) as done in other places. And remove the unused gc parameter. Fixes a bug reported by "John Doe" on 3/9/2011. NOTE: This is a candidate for the 7.10 branch.
* gallium/svga: Only upload parts of vertexarrays that are actually usedThomas Hellstrom2011-03-105-3/+48
| | | | | | | Make sure we only upload parts of vertex arrays that are actually used by a draw command. Signed-off-by: Thomas Hellstrom <[email protected]>
* r600: don't close fd on failed loadDave Airlie2011-03-101-3/+0
| | | | | | | This fd gets passed in from outside, closing it causes the X.org server to crap out when the driver doesn't identify the chipset. Signed-off-by: Dave Airlie <[email protected]>
* 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)
* nv50: add back initialization of redefine_user_bufferChristoph Bumiller2011-03-091-0/+2
| | | | Got lost in f80c03e1875fe96ff2f4c022e3cb76357828140d.
* r600g: remove some now unneeded code from r600_bc_vtx_buildChristian König2011-03-091-25/+1
|
* r600g: R700+ can do more than 8 tex and vtx clause in one CF instChristian König2011-03-091-2/+20
| | | | Reviewed-by: Henri Verbeet <[email protected]>
* r600g: split R600 and R700 CF generation for VTX and TEXChristian König2011-03-093-4/+22
| | | | Reviewed-by: Henri Verbeet <[email protected]>
* svga: Add a new winsys entry point to query the hw version.José Fonseca2011-03-093-0/+11
|
* util: Use PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE in pipe_buffer_write.José Fonseca2011-03-091-1/+6
|
* util: add ensure_sanity checks, fix a bugKeith Whitwell2011-03-091-2/+56
| | | | | Add ensure_sanity checks. Fix a bug which caused us to misplace entries adding to a full cache.
* util: improve cache collision behaviourKeith Whitwell2011-03-091-18/+76
| | | | | | | | | | Add linear probing on collisions. Expand entry array by a fixed scale (currently 2) to help avoid collisions. Use a LRU approach to ensure that the number of entries stored in the cache doesn't exceed the requested size.
* util: Add remove to util_cacheAlex Corscadden2011-03-092-0/+26
| | | | | I need to be able to remove entries from util_cache caches. This change enables that functionality.