summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri
AgeCommit message (Collapse)Author
2010-07-03r300/compiler: Fix loop unrollingTom Stellard
2010-07-03r300/compiler: Use hardware flow control instructions for loops on r500.Tom Stellard
2010-07-03r300/compiler: Don't continue copy propagation inside loops.Tom Stellard
2010-07-03r300/compiler: Print debug info for flow control instructions.Tom Stellard
2010-07-03r300/compiler: Enable hardware IF statements for r500 cards.Tom Stellard
2010-07-03r300/compiler: In the peephole optimizer, ELSE should mark the end of aTom Stellard
block.
2010-07-03r300/compiler: Correctly calculate the max number of iterations for loops.Tom Stellard
2010-07-03r300/compiler: Handle loops in deadcode analysis.Tom Stellard
This also allows us to split the loop emulation into two phases. A tranformation phase which either unrolls loops or prepares them to be emulated, and the emulation phase which unrolls remaining loops until the instruction limit is reached. The second phase is completed after the deadcode analysis in order to get a more accurate count of the number of instructions in the body of loops.
2010-06-23Merge branch 'shader-file-reorg'Brian Paul
1. Move all GL entrypoint functions and files into src/mesa/main/ This includes the ARB vp/vp, NV vp/fp, ATI fragshader and GLSL bits that were in src/mesa/shader/ 2. Move src/mesa/shader/slang/ to src/mesa/slang/ to reduce the tree depth 3. Rename src/mesa/shader/ to src/mesa/program/ since all the remaining files are concerned with GPU programs. 4. Misc code refactoring. In particular, I got rid of most of the GLSL-related ctx->Driver hook functions. None of the drivers used them. Conflicts: src/mesa/drivers/dri/i965/brw_context.c
2010-06-23r300/compiler: allow 1024 instructions in r5xx vertex shadersMarek Olšák
2010-06-23r300/compiler: allow 32 temporaries in vertex shadersMarek Olšák
2010-06-23r300/compiler: emulate loops in vertex shadersMarek Olšák
It is not perfect, but it is the best we got.
2010-06-19Revert "Fix image_matches_texture_obj() MaxLevel check"Will Dyson
This reverts commit a9ee95651131e27d5acf3d10909b5b7e5c8d3e92. It was based on a failure to understand how ther driver allocates memory, and causes a regression with Celestia. Set MaxLevel to dstLevel before allocating new mipmap level. The radeon driver will fail to allocate space for a new level that is outside of BaseLevel..MaxLevel. Set MaxLevel before allocating. Signed-off-by: Maciej Cencora <m.cencora@gmail.com>
2010-06-18intel: Finalize the miptree before mapping it for fallbacks.Eric Anholt
Fixes segfault in mipmap_view.c demo. Bug #27212.
2010-06-18i965: Fix the name of aa_coverage_slope in the improved AA line params.Eric Anholt
2010-06-16intel: Remove unnecessary headers.Vinson Lee
2010-06-16r600: GL_COORD_REPLACE state is only relevant when point sprites are enabled.Henri Verbeet
2010-06-16r600: fix warningsMarc
2010-06-14i965: Remove unnecessary header.Vinson Lee
2010-06-14i965: Fix surface state dumping with INTEL_DEBUG=batch.Eric Anholt
I broke this with the state streaming changes.
2010-06-14i965: correct the gen6 line stipple enable define.Zhenyu Wang
2010-06-14intel: Remove long-dead comment about releasing texture heaps.Eric Anholt
BOs are stored in the bufmgr, which is freed as part of the screen structure.
2010-06-12i965: Fix gen6 front cull mode.Eric Anholt
2010-06-12i965: Use the new message header format for FF_SYNC on gen6.Zhenyu Wang
2010-06-12i965: Add support for math instructions in the gen6 WM.Zhenyu Wang
2010-06-12i965: Set the correct WM GRF start reg on gen6.Zhenyu Wang
2010-06-12i965: Update gen6 paths for the streaming rework.Eric Anholt
2010-06-12i965: Stream out CC unit state.Eric Anholt
before: [ # ] backend test min(s) median(s) stddev. count [ 0] gl firefox-talos-gfx 31.791 32.287 1.11% 6/6 after: [ 0] gl firefox-talos-gfx 31.198 31.675 0.96% 6/6
2010-06-12r300/compiler: fix scons buildJoakim Sindholt
2010-06-12i965: Remove unnecessary header.Vinson Lee
2010-06-11r300/compiler: Handle more complex conditionals in loops.Tom Stellard
2010-06-11r300/compiler: Fix warning.Tom Stellard
2010-06-11r300/compiler: Handle SGT and SLE at the beginning of loops.Tom Stellard
2010-06-11r300/compiler: Verify assumptions about opcode types.Tom Stellard
2010-06-11r300/compiler: Unroll loops that decrement the counter.Tom Stellard
e.g. for(i=10; i>0; i--)
2010-06-11r300/compiler: Unroll loops that have a constant number of iterations.Tom Stellard
This only works with for loops that increment the counter. e.g. for(i=0; i<10; i++)
2010-06-11r300/compiler: Implement simple loop emulationTom Stellard
The loop emulation unrolls loops as may times as possbile while still keeping the shader program below the maximum instruction limit. At this point, there are no checks for constant conditionals. This is only enabled for fragment shaders.
2010-06-11i965: Remove the surface key used to generate constant surfaces.Eric Anholt
We had to fill out all that junk when using the cache, but no more.
2010-06-11i965: Warning fixes from the i965-streaming merge.Eric Anholt
2010-06-11i965: Use the state base address to avoid relocations.Eric Anholt
This makes the binding table code simpler, and is required for gen6, which requires binding table addresses to be under 64k offset from the surface state base addr. No significant change in performance on firefox-talos-gfx.
2010-06-11i965: GC the last two arguments to brw_cache_data.Eric Anholt
Now that the binding table is streamed indirect state, they were always NULL/0.
2010-06-11i965: Remove brw_state_cache_bo_delete now that it's unused again.Eric Anholt
2010-06-11i965: Remove caching of surface state objects.Eric Anholt
It turns out that computing a 56 byte key to look up a 20-byte object out of a hash table was some sort of a bad idea. Whoops. before: [ # ] backend test min(s) median(s) stddev. count [ 0] gl firefox-talos-gfx 37.799 38.203 0.39% 6/6 after: [ 0] gl firefox-talos-gfx 34.761 34.784 0.17% 5/6
2010-06-11i965: Convert the binding table to streamed indirect state.Eric Anholt
This slightly reduces reduces cairo-gl firefox-talos-gfx runtime on my Ironlake: before: [ # ] backend test min(s) median(s) stddev. count [ 0] gl firefox-talos-gfx 38.236 38.383 0.43% 5/6 after: [ 0] gl firefox-talos-gfx 37.799 38.203 0.39% 6/6 It turns out the cost of caching these objects and looking them up in the cache again is greater than the cost of just computing the object again, particularly when the overhead of having a separate BO to pin is removed. (Those that are paying close attention will note that this is a reversal of the path I was moving the driver in a couple of years ago. The major thing that has changed is that back then all state was recomputed when we wrapped the streaming state buffer, including recompiling our precious programs. Now, we're uncaching just the objects that are cheap to compute, and retaining caching of expensive objects)
2010-06-11i965: Split constant buffer setup from its surface state/binding state.Eric Anholt
This was bothering me when redoing the binding tables.
2010-06-11i965: Add support for streaming indirect state rather than caching objects.Eric Anholt
2010-06-11i965: Set the CC VP state immediately on state change.Eric Anholt
The cache lookup of these two little floats was .12% of total CPU time on firefox-talos-gfx because we did it any time commonly-changed state changed. On the other hand, updating the CC VP bo immediately whenver CC VP state changes is a .07% overhead due to putting a driver hoook in glEnable().
2010-06-11i965: Update old comment about state cache sizing.Eric Anholt
2010-06-11i965: Move no_batch_wrap assertion out across the area we're trying to verify.Eric Anholt
It's more likely that we wrap badly in state setup than in the little primitive packet.
2010-06-10i965: remove UseProgram driver callbackBrian Paul
It just duplicated the default/core Mesa behaviour.