summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* st/mesa: overhaul vertex/fragment sampler and sampler views.Dave Airlie2011-05-164-154/+225
| | | | | | | | | | | | | | | | | | | This fixes piglits fragment-and-vertex-texturing test on llvmpipe for me. I've no idea if someone had another plan for this that is smarter than what I've done here, but what I've basically done is split fragment and vertex sampler and sampler_view setup function, factor out the common chunks of both. side-cleanups: drop st->state.sampler_list - unused don't update border color if we have no border color. should fix https://bugs.freedesktop.org/show_bug.cgi?id=35849 Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* gallium: block signals for new thread when spawning threadsDave Airlie2011-05-161-1/+8
| | | | | | | | | | | | | I'm hard pressed to think of any reason a gallium thread would want to receive a signal, especially considering its probably loaded as a library and you don't want the threads interfering with the main threads signal handling. This solves a problem loading llvmpipe into the X server for AIGLX, where the X server relies on the SIGIO signal going to the main thread, but once llvmpipe loads the SIGIO can end up in any of its threads. Signed-off-by: Dave Airlie <[email protected]>
* r600g: reduce flushes so only when texture and CB overlap.Dave Airlie2011-05-152-8/+17
| | | | | | | We only need to do this when the texture and CB are using the same memory area. Signed-off-by: Dave Airlie <[email protected]>
* r300/compiler: Use ALU Result for IF conditionalsTom Stellard2011-05-146-20/+212
| | | | This saves one instruction per IF.
* 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-1510-95/+225
| | | | | 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
|
* u_vbuf_mgr: fix max_index computation once againMarek Olšák2011-05-141-15/+47
| | | | | | | | | | | | See how I compute and use the 'unused' variable in the code. It's crucial for getting max_index right. Fixed with the help of apitrace. (bisecting the problematic draw call manually was not fun though) This should fix: https://bugs.freedesktop.org/show_bug.cgi?id=36268 https://bugs.freedesktop.org/show_bug.cgi?id=36609
* st/mesa: set correct baseInternalFormat for _mesa_texstore in DrawPixelsMarek Olšák2011-05-141-3/+4
| | | | | | | | | GL_RGBA was always used for baseInternalFormat regardless of the chosen texture internal format. https://bugs.freedesktop.org/show_bug.cgi?id=37154 Reviewed-by: Brian Paul <[email protected]>
* i965: Use BRW_DATAPORT_READ_TARGET_DATA_CACHE instead of 0.Kenneth Graunke2011-05-131-3/+3
| | | | | | | | Using the #define'd constant is better than 0 with a comment. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* i965: Rename dp_render_target struct to gen6_dp.Kenneth Graunke2011-05-133-31/+31
| | | | | | | | | This is actually just the message descriptor for Gen6+ dataport access; it has nothing to do with the render cache. Access to the sampler cache and constant cache also would use this struct; rename for clarity. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965: Attempt to un-muddle Gen6 data port message target defines.Kenneth Graunke2011-05-132-6/+9
| | | | | | | | | | | | | | | | These are documented on page 245 of IHD_OS_Vol4_Part2.pdf (the public Sandybridge documentation/SEND instruction description). Somebody had the bright idea to reuse gen4/5 defines labelled READ/WRITE which just happened to be the same values as Render Cache/Sampler Cache. It turns out that this field has nothing to do with READ/WRITE on Sandybridge, but rather represents which data port to direct it to. This was especially confusing in brw_set_dp_read_message, which used "BRW_MESSAGE_TARGET_DATAPORT_WRITE." In a read function. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* 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.
* st/mesa: expose ARB_shader_texture_lod if SM3 is supportedMarek Olšák2011-05-131-0/+4
| | | | Reviewed-by: Brian Paul <[email protected]>
* 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-125-17/+5
| | | | | | | util_logbase2 is exactly the same function. Signed-off-by: Matt Turner <[email protected]> Signed-off-by: Brian Paul <[email protected]>
* u_math.h: Remove redundant mingw32 ffs definitionMatt Turner2011-05-121-4/+0
| | | | | Signed-off-by: Matt Turner <[email protected]> Signed-off-by: Brian Paul <[email protected]>
* st/egl: Implement EGL_WL_bind_wayland_display for x11,drm,waylandBenjamin Franzke2011-05-1315-0/+495
|
* egl_dri2: Discard similar configsBenjamin Franzke2011-05-131-4/+2
|
* egl_dri2: Make it possible to not compile in the X11 platformKristian Høgsberg2011-05-134-7/+28
|
* nvfx: fill some PIPE_CAPsFrancesco Marella2011-05-131-0/+6
| | | | Signed-off-by: Francesco Marella <[email protected]>
* i965: Fix incorrectly named data port define.Kenneth Graunke2011-05-131-1/+1
| | | | | | | According to my documentation this is actually "Media Block Write" on Gen4-5; there has never been a "DWord Block Write." Signed-off-by: Kenneth Graunke <[email protected]>
* i965: Fix typo in Gen6 "DWord Scattered Write" message define.Kenneth Graunke2011-05-131-1/+1
| | | | | | It's DWORD, not DWORLD. Signed-off-by: Kenneth Graunke <[email protected]>
* i915g: Fix typos in print messages.Vinson Lee2011-05-121-3/+3
|
* r600g: don't unmap if we haven't mappedDave Airlie2011-05-131-2/+4
| | | | | | should fix https://bugs.freedesktop.org/show_bug.cgi?id=37157 Signed-off-by: Dave Airlie <[email protected]>
* mesa: EXT_texture_sRGB_decode little fixupMarek Olšák2011-05-132-1/+2
| | | | It doesn't fix bug 37150 though.
* r600g: use a local var to store pointer to which register we are working onDave Airlie2011-05-131-7/+8
| | | | | | this just makes the code a little bit cleaner. Signed-off-by: Dave Airlie <[email protected]>
* r600g: make range/block act more like a page tableDave Airlie2011-05-133-50/+45
| | | | | | | | | | | | | | | | only allocate the blocks ptr in the range if we ever have one, otherwise don't bother wasting the memory. valgrind glxinfo before: ==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 after: ==5227== in use at exit: 419,754 bytes in 706 blocks ==5227== total heap usage: 3,452 allocs, 2,746 frees, 3,140,531 bytes allocate Signed-off-by: Dave Airlie <[email protected]>
* r600g: reduce r600_reg footprintDave Airlie2011-05-133-788/+785
| | | | | | | | This drops 6k of the text segment, a minor drop in the ocean, however it also makes the code a lot cleaner and removes a lot of duplicated information, hopefully making it more maintainable. Signed-off-by: Dave Airlie <[email protected]>
* r600g: reduce memory usage from range/block hash table.Dave Airlie2011-05-134-28/+39
| | | | | | | | | | | | | | | | | | 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]>
* r600g: delay mapping until first map request. (v2)Dave Airlie2011-05-132-6/+4
| | | | | | | | | | | | | | Currently r600g always maps every bo, this is quite pointless as it wastes VM and on 32-bit with wine running VM space is quite useful. So with this patch we don't create the mappings until first use, without tiling enabled this probably won't make a major difference on its own, but with tiled staged uploads it should avoid keeping maps for most of the textures unnecessarily. v2: add bo data ptr check Signed-off-by: Dave Airlie <[email protected]>
* egl/dri2: Avoid unused static functions.José Fonseca2011-05-121-1/+1
|
* egl/dri2: Prevent uninitialized variable dereference.José Fonseca2011-05-121-2/+5
|
* egl/dri2: Fix const pointer duplication, prevent unitialized variable ↵José Fonseca2011-05-121-5/+7
| | | | | | dereference. Based on zhigang gong <[email protected]>'s patch.
* egl: Fix int <-> ptr casts.José Fonseca2011-05-124-5/+5
| | | | Based on zhigang gong <[email protected]>'s patch.
* mesa: Fix GetVertexAttrib* inside display lists.José Fonseca2011-05-121-3/+3
| | | | | | | | | GetVertexAttrib*{,ARB} is no longer aliased to the NV calls. This fixes tracing yofrankie with apitrace, given it requires accurate results from GetVertexAttribiv*. NOTE: This is a candidate for the stable branches.
* r300/compiler: Fix bug in rc_get_variables()Tom Stellard2011-05-111-7/+11
| | | | | | Variables that share readers were not always being linked together. https://bugs.freedesktop.org/show_bug.cgi?id=36939
* r300/compiler: Limit instructions to 3 source selectsTom Stellard2011-05-114-39/+104
| | | | | | | | | Some presubtract conversions were generating more than 3 source selects. https://bugs.freedesktop.org/show_bug.cgi?id=36527 Note: This is a candidate for the 7.10 branch.
* r300/compiler: Add simple unit test frameworkTom Stellard2011-05-117-0/+579
| | | | Plus three tests for rc_inst_can_use_presub()
* r600g: fix flushes on rs780/rs880Alex Deucher2011-05-111-1/+3
| | | | | | | | | They need the same hack as rv670. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=35312 Signed-off-by: Alex Deucher <[email protected]>
* mesa: Don't append fog code for programs that don't output color.José Fonseca2011-05-111-0/+6
| | | | | | | | | Fixes fdo 36919. NOTE: This is a candidate for the stable branches. It should be cherry-picked to the sames branches that 3aa21f93dc1329c6f956277f2746c2a0bdae5446 was.
* svga/drm: Implement svga_winsys_screen::get_hw_version.José Fonseca2011-05-101-0/+14
|
* st/wgl: Remove buggy assertion.José Fonseca2011-05-101-2/+0
| | | | | The assertion is wrong, now that state tracker can cope with a window with zero width or height.
* nv50: fix mistake in pipe caps for pre-NVA0 cardsMaxim Levitsky2011-05-101-0/+1
| | | | Introduced by 531b12af35a832bcd8928a4919d76f8e9405cde0.
* ir_to_mesa: Emit TXD instruction.Kenneth Graunke2011-05-091-2/+11
| | | | | | | Mesa already supports this because of NV_fragment_program. Signed-off-by: Kenneth Graunke <[email protected]> Tested-by: Marek Olšák <[email protected]>
* glsl: Add compiler support for ARB_shader_texture_lod.Kenneth Graunke2011-05-096-0/+188
| | | | | Signed-off-by: Kenneth Graunke <[email protected]> Tested-by: Marek Olšák <[email protected]>
* mesa: Add ARB_shader_texture_lod to the extension list; off by default.Kenneth Graunke2011-05-092-1/+2
| | | | Signed-off-by: Kenneth Graunke <[email protected]>
* 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.
* r300/compiler: align memory allocations to 8-bytesMatt Turner2011-05-091-1/+1
| | | | | | | | | Eliminates unaligned accesses on strict architectures. Spotted by Jay Estabrook. Signed-off-by: Matt Turner <[email protected]> NOTE: This is a candidate for the 7.10 branch.