summaryrefslogtreecommitdiffstats
path: root/src/gallium
Commit message (Collapse)AuthorAgeFilesLines
* tgsi/ureg: bump the limit of immediatesMarek Olšák2011-05-301-1/+1
| | | | | | | | | | Lowered indirect addressing can create lots of immediates. Fixes piglit/glsl-fs-uniform-array-7 on r300g. NOTE: This is a candidate for the 7.10 branch. Reviewed-by: Brian Paul <[email protected]>
* trace: implement texture_barrierMarek Olšák2011-05-291-0/+16
|
* trace: implement render_conditionMarek Olšák2011-05-291-0/+20
|
* r300g: clear can be killed by render conditionMarek Olšák2011-05-293-7/+35
| | | | | Fixes piglit: - NV_conditional_render/clear
* r300g: fix occlusion queries when depth test is disabled or zbuffer is missingMarek Olšák2011-05-292-6/+27
| | | | | | | | | | | | | | | From now on, depth test is always enabled in hardware. If depth test is disabled in Gallium, the hardware Z function is set to ALWAYS. If there is no zbuffer set, the colorbuffer0 memory is set as a zbuffer to silence the CS checker. This fixes piglit: - occlusion-query-discard - NV_conditional_render/bitmap - NV_conditional_render/drawpixels - NV_conditional_render/vertex_array
* r300g: cleanup render_condition a bitMarek Olšák2011-05-291-5/+3
|
* r300g: remove fake occlusion queries (debug option)Marek Olšák2011-05-293-58/+7
|
* r300g: remove debug option DBG_FALLMarek Olšák2011-05-292-2/+1
|
* r300g: print some HyperZ debug infoMarek Olšák2011-05-292-0/+4
|
* nv50: fix emit_add_a16 to emit correct source regTrevor Davenport2011-05-271-2/+2
| | | | | | | | | | | emit_add_a16 was using the incorrect source. This caused adds in the form of: add u16 $a0 s32 $a1 u32 0x00000200 to have a source AREG of $a0 instead of $a1. Fixes World of Warcraft in OpenGL and D3D without GLSL.
* i915g: Bump texture sizesJakob Bornecrantz2011-05-251-2/+2
| | | | | | Spotted and tested by Christopher Egert. Signed-off-by: Jakob Bornecrantz <[email protected]>
* r600g: remove duplicate opcode in r600_opcodes.hAlex Deucher2011-05-251-1/+0
| | | | | | | | V_SQ_CF_WORD1_SQ_CF_INST_HALT is 0x1f on both evergreen and cayman. Reported-by: Gustaw Smolarczyk <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* r600g: fix eg/cayman scissor workaroundAlex Deucher2011-05-241-11/+13
| | | | Signed-off-by: Alex Deucher <[email protected]>
* r600g: add workaround for buggy hw scissor on eg/cayman.Dave Airlie2011-05-251-1/+14
| | | | | | This is ported from the same fix to the DDX. Signed-off-by: Dave Airlie <[email protected]>
* r600g: add initial cayman acceleration support.Dave Airlie2011-05-2512-204/+1442
| | | | | | | | | | | | | | | | 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: flush the DB dest base as well.Dave Airlie2011-05-251-1/+1
| | | | | | | | If we do this for CB bases then we should do it for DB bases. noticed while adding cayman support. Signed-off-by: Dave Airlie <[email protected]>
* wgl: Don't hold on to user supplied HDC.José Fonseca2011-05-243-23/+22
| | | | | | | | | | | Certain applications (e.g., Bernina My Label, and the Windows implementation of Processing language) destroy the device context used when creating the frame-buffer, causing presents to fail because we were still referring to the old device context internally. This change ensures we always use the same HDC passed to the ICD entry-points when available, or our own HDC when not available (necessary only when flushing on single buffered visuals).
* 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.
* st/egl: Add support for EGL_DRM_BUFFER_USE_CURSOR_MESABenjamin Franzke2011-05-201-1/+7
|
* st/dri: Support dri2 useflags in dri2_create_imageBenjamin Franzke2011-05-201-0/+9
|
* st/egl/wayland: Deal with wayland visual changesBenjamin Franzke2011-05-201-17/+21
| | | | | | | Since wayland 4bde293ff8109d55eeaee8732f5a6ee0c8cd4bd9 we cant lookup visuals, as we dont receive the visual token events. The format for pixmap-images thus has to default to argb for now.
* gallivm: Fix for dynamically linked LLVM 2.8 library.José Fonseca2011-05-201-2/+12
| | | | | | | | | This prevents the error prog: for the -disable-mmx option: may only occur zero or one times! when creating a new context after XCloseDisplay with DRI drivers linked with a shared LLVM 2.8 library.
* st/glx: define/set new ST_CONTEXT_FLAG_bitsBrian Paul2011-05-192-11/+25
|
* st/glx: pass major, minor, context flags, etc to XMesaCreateContext()Brian Paul2011-05-193-3/+9
|
* st/glx: implement glXCreateContextAttribsARB()Brian Paul2011-05-191-0/+95
|
* st/glx: pass version, context flags, etc to create_context()Brian Paul2011-05-191-4/+9
|
* st/glx: refactor create-context functionsBrian Paul2011-05-191-61/+40
|
* 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.
* gallivm: Tell LLVM to not assume a 16-byte aligned stack on x86.José Fonseca2011-05-181-0/+13
| | | | Fixes fdo 36738.
* r600g: bump domain selection up one layer.Dave Airlie2011-05-183-6/+24
| | | | | | | this is taken from a patch from Mathias Froehlich, just going to stage it in a few pieces. Signed-off-by: Dave Airlie <[email protected]>
* u_vbuf_mgr: fix max_index computation when src_offset is abused as buffer_offsetMarek Olšák2011-05-171-1/+6
|
* 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]>
* 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
* 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-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
|
* 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: 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]>
* 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]>