summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
Commit message (Collapse)AuthorAgeFilesLines
* r600g: add initial cayman acceleration support.Dave Airlie2011-05-259-200/+1018
| | | | | | | | | | | | | | | | Cayman is the RadeonHD 69xx series of GPUs. This adds support for 3D acceleration to the r600g driver. Major changes: Some context registers moved around - mainly MSAA and clipping/guardband related. GPR allocation is all dynamic no vertex cache - all unified in texture cache. 5-wide to 4-wide shader engines (no scalar or trans slot) - some changes to how instructions are placed into slots - removal of END_OF_PROGRAM bit in favour of END flow control clause - no vertex fetch clause - TC accepts vertex or texture Signed-off-by: Dave Airlie <[email protected]>
* r600g: don't lookup a vs semantic for position/face.Dave Airlie2011-05-251-0/+4
| | | | | | | These don't need one, and I was seeing 0xff being returned and set in the GPU registers with some tests. Signed-off-by: Dave Airlie <[email protected]>
* r600g: fix "Fixed-Point Data Conversions"Christian König2011-05-212-2/+2
| | | | | | According to OpenGL 3.1 chapter 2.1.5 the representation without zero should only be used for vertex attribute values, but not for textures or frame-buffers.
* nv50: add support for user clip planesMaxim Levitsky2011-05-194-1/+40
| | | | | | | | | | | | | | | Clip distance is calculated each time vertex position is written which is suboptiomal is some cases but very safe. User clip planes are an obsolete feature anyway. Every time number of clip planes increases, the vertex program is recompiled. That ensures no overhead in normal case (no user clip planes) and reasonable overhead otherwise. Fixes 3D windows in compiz, and reflection effect in neverball. Also fixes compiz expo plugin when windows were dragged and each window shown 3 times.
* r300g: HiZ fixesMarek Olšák2011-05-151-24/+24
| | | | | | | Nothing special, just changing conditions for when HiZ can be enabled and when HiZ memory becomes invalid. I was thinking about it again and realized it had not been quite right.
* r300g: don't set other HyperZ states if depth and stencil tests are disabledMarek Olšák2011-05-151-14/+27
| | | | Such as HiZ.
* r300g: dynamically ask for and release Hyper-Z accessMarek Olšák2011-05-157-68/+126
| | | | | We ask for Hyper-Z access when clearing a zbuffer. We release it if no zbuffer clear has been done for 2 seconds.
* r300g: fix conversion from int to booleanMarek Olšák2011-05-151-2/+2
|
* nvc0: prevent overlap between load address and destination regsChristoph Bumiller2011-05-131-15/+29
| | | | | | | | For example, an indirect load like "ld b128 $r0q c0[$r0]" seems to overwrite the address register before finishing the load, but only if there are a lot of threads running. Visible as displaced geoemtry in Unigine Heaven.
* util_logbase2 takes and returns unsigned, not intMatt Turner2011-05-121-2/+2
| | | | | Signed-off-by: Matt Turner <[email protected]> Signed-off-by: Brian Paul <[email protected]>
* Remove redundant util_unsigned_logbase2Matt Turner2011-05-123-4/+4
| | | | | | | util_logbase2 is exactly the same function. Signed-off-by: Matt Turner <[email protected]> Signed-off-by: Brian Paul <[email protected]>
* nvfx: fill some PIPE_CAPsFrancesco Marella2011-05-131-0/+6
| | | | Signed-off-by: Francesco Marella <[email protected]>
* i915g: Fix typos in print messages.Vinson Lee2011-05-121-3/+3
|
* r600g: reduce memory usage from range/block hash table.Dave Airlie2011-05-131-5/+1
| | | | | | | | | | | | | | | | | | This table covered a large range unnecessarily, reduce the address range covered, use the fact that the bottom two bits aren't significant, and remove unused fields from the range struct. It also drops the hash_size/shift in context in favour of a define, which should make doing the math a bit less CPU intensive. valgrind glxinfo Before: ==320== in use at exit: 419,754 bytes in 706 blocks ==320== total heap usage: 3,691 allocs, 2,985 frees, 7,272,467 bytes allocated After: ==967== in use at exit: 419,754 bytes in 706 blocks ==967== total heap usage: 3,552 allocs, 2,846 frees, 3,550,131 bytes allocated Signed-off-by: Dave Airlie <[email protected]>
* nv50: fix mistake in pipe caps for pre-NVA0 cardsMaxim Levitsky2011-05-101-0/+1
| | | | Introduced by 531b12af35a832bcd8928a4919d76f8e9405cde0.
* nv50/nvc0: make transfers aware of PIPE_TRANSFER_MAP_DIRECTLYMarcin Slusarz2011-05-092-0/+6
| | | | | | | | | | If state tracker asked us to map resource directly and we can't do it (because of tiling), return NULL instead of doing full transfer - state tracker should handle it and fallback to some other method or repeat transfer without PIPE_TRANSFER_MAP_DIRECTLY. It greatly improves performance of xorg state tracker on nv50+, because its fallback (DFS/UTS) is much faster than full transfer.
* r300g: unreference a zbuffer surface after decompressionMarek Olšák2011-05-091-0/+2
|
* r300g: remove redundant state variable hyperz_lockedMarek Olšák2011-05-095-14/+12
|
* r600g: anisotropic filtering support for evergreen hwJerome Glisse2011-05-095-23/+31
| | | | Signed-off-by: Jerome Glisse <[email protected]>
* r600g: add support for anisotropic filteringCarl-Philip Haensch2011-05-092-3/+26
|
* cell: fix unbalanced parenthesisNicolas Kaiser2011-05-081-1/+1
| | | | | Signed-off-by: Nicolas Kaiser <[email protected]> Signed-off-by: Brian Paul <[email protected]>
* r300g: handle seamless_cube_map capsMarek Olšák2011-05-071-0/+2
|
* nv50,nvc0: activate seamless cube map filteringChristoph Bumiller2011-05-063-1/+44
|
* r600g: implement seamless_cube_map for evergreenMarek Olšák2011-05-063-0/+15
| | | | The r600/r700 support will follow soon.
* gallium/xorg st/nv50: add PIPE_BIND_CURSORMarcin Slusarz2011-05-061-1/+9
| | | | | We need to distinguish surfaces for mouse cursors from scanouts, because nv50 hardware display engine ignores tiling flags.
* r600g: add back SOURCE_FORMAT setting that get accidently droppedAlex Deucher2011-05-051-0/+1
| | | | | | Spotted by Henri Verbeet Signed-off-by: Alex Deucher <[email protected]>
* r600g: fix up the rules for enabling SOURCE_FORMAT(EXPORT_NORM)Alex Deucher2011-05-052-10/+41
| | | | | | | | | | | | | | | | | | Setting SOURCE_FORMAT to EXPORT_NORM is an optimization. Leaving SOURCE_FORMAT at 0 will work in all cases, but is less efficient. The conditions for the setting the EXPORT_NORM optimization are as follows: R600/RV6xx: BLEND_CLAMP is enabled BLEND_FLOAT32 is disabled 11-bit or smaller UNORM/SNORM/SRGB R7xx/evergreen: 11-bit or smaller UNORM/SNORM/SRGB 16-bit or smaller FLOAT Signed-off-by: Alex Deucher <[email protected]>
* r600g: fix cache flushes on r6xxAlex Deucher2011-05-061-0/+1
| | | | | | | | | | | | | | | r6xx asics have some problems with the surface sync logic for the CB and DB. It's recommended to use the event write interface for flushing the DB/CB caches rather than the sync packets. A single event write flush flushes all dst caches, so we only need one for all CBs and DB. Should fix: https://bugs.freedesktop.org/show_bug.cgi?id=35312 Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* r600g: Match alpha ref precision to color format precision.Henri Verbeet2011-05-054-21/+64
| | | | | | This fixes piglit fbo-alphatest-formats on Evergreen. Signed-off-by: Henri Verbeet <[email protected]>
* r600g: reorder capsMarek Olšák2011-05-031-17/+10
|
* r600g: set correct PIPE_CAP_MAX_COMBINED_SAMPLERSMarek Olšák2011-05-031-3/+2
|
* nv50,nvc0: advertise GL_FIXED vertex buffers as supportedChristoph Bumiller2011-05-032-0/+36
| | | | | We'll handle them like f64 vertex buffers, by falling back to copying vertex data to the command buffer through translate.
* r600g: document some new evergreen formatsMarek Olšák2011-05-021-0/+3
|
* r600g: remove some more FIXME commentsMarek Olšák2011-05-022-2/+0
|
* r600g: remove some FIXME commentsMarek Olšák2011-05-022-2/+0
| | | | All texture LOD tests pass.
* Revert "r600g: truncate point sampled texture coordinates"Marek Olšák2011-05-022-14/+1
| | | | | | | This reverts commit 1dc204d145dc8c0b19473a7814c201a8954b6274. MC_COORD_TRUNCATE is for MPEG and produces quite an interesting behavior on regular textures. Anyway that commit broke filtering in demos/cubemap.
* r600g: remove set-but-unused variableMarek Olšák2011-05-011-4/+0
|
* r600g: remove FIXME commentMarek Olšák2011-05-011-3/+0
| | | | DONTBLOCK is correctly handled in r600_bo_map.
* i915g: enable X-tiling for s3tc texturesDaniel Vetter2011-04-301-2/+1
| | | | | Tested-by: Christopher Egert <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
* r300/compiler: Rewrite register allocatorTom Stellard2011-04-301-0/+1
| | | | | | | The new allocator uses ra and does swizzle packing. Also, a data structure (struct rc_variable) and associated functions have been added for generating UD and DU chains.
* r600g: print opcodes names instead of numbersMarek Olšák2011-04-291-1/+3
|
* r600g: implement EXT_packed_floatMarek Olšák2011-04-293-0/+10
|
* r600g: trivially implement EXT_texture_shared_exponentMarek Olšák2011-04-291-0/+5
| | | | Nothing else needed.
* i915g: Enable S3TC texture supportChristopher Egert2011-04-292-6/+11
| | | | | | | Reviewed-by: Jakob Bornecrantz <[email protected]> Reviewed-by: Daniel Vetter <[email protected]> Signed-off-by: Christopher Egert <[email protected]> Signed-off-by: Jakob Bornecrantz <[email protected]>
* llvmpipe: move active_query assignmentBrian Paul2011-04-281-2/+2
| | | | Fixes piglit regression.
* llvmpipe: move active_query assignment in lp_setup_begin_query()Brian Paul2011-04-281-2/+2
| | | | | | | | | | If we run out of bin memory and do an early return from lp_setup_begin_query() we'd omit setting the setup->active_query pointer. Then, when lp_setup_end_query() was later called, the assertion for setup->active_query == pq would fail. Moving the assigment in lp_setup_begin_query() avoids that. Reviewed-by: Jose Fonseca <[email protected]>
* svga: emit user-defined clip plane stateBrian Paul2011-04-273-11/+26
| | | | User-defined clip planes were a swtnl fallback before.
* gallium/nouveau: fix printf warningsMarek Olšák2011-04-272-2/+2
|
* svga: fix warning: ‘uc.ui’ may be used uninitialized in this functionMarek Olšák2011-04-271-1/+1
| | | | | This is safe because it's initialized if buffers & PIPE_CLEAR_COLOR and probably doesn't have any effect otherwise.
* r600g: Unify comment style somewhat.Henri Verbeet2011-04-257-48/+53
| | | | Signed-off-by: Henri Verbeet <[email protected]>