summaryrefslogtreecommitdiffstats
path: root/src/gallium
Commit message (Collapse)AuthorAgeFilesLines
* gallium/radeon: add an env variable to force a level of aniso filteringMarek Olšák2016-04-135-9/+31
| | | | Reviewed-by: Nicolai Hähnle <[email protected]>
* llvmpipe: Test rounding of x.5.Jose Fonseca2016-04-131-1/+2
| | | | | | | Leverage nearbyintif function, which should be available on all C99 implementations. Trivial.
* gallivm: use llvm.nearbyint instead of llvm.round.Roland Scheidegger2016-04-131-98/+1
| | | | | | | | | | | | | | | | We used to use sse roundps intrinsic directly, but switched to use the llvm intrinsics for rounding with e4f01da15d8c6ce3e8c77ff3ff3d2ce2574a3f7b. However, llvm semantics follows standard math lib round function which is specced to do roundNearestAwayFromZero but we really want roundNearestEven (moreoever, using round generates atrocious code since the cpu can't do it directly and it results in scalar calls to libm __roundf). So, use llvm.nearbyint instead, which does exactly the right thing, and even has the advantage of being available with llvm 3.3 too. (I've verified it actually generates a roundps instruction with llvm 3.3.) This fixes https://bugs.freedesktop.org/show_bug.cgi?id=94909 Reviewed-by: Jose Fonseca <[email protected]>
* nv50/ra: `isinf()` is in namespace `std` since C++11.Pierre Moreau2016-04-131-0/+4
| | | | | | | | | | This fixes a compile error while building Nouveau with C++11 enabled (and glibc >= 2.23). This happens if SWR is enabled, as it forces C++11. Signed-off-by: Pierre Moreau <[email protected]> Signed-off-by: Jose Fonseca <[email protected]> https://bugs.freedesktop.org/show_bug.cgi?id=94907
* scons: Allow building with Address Sanitizer.Jose Fonseca2016-04-131-4/+8
| | | | | | | | | | | | | | | | | | | | | | | libasan is never linked to shared objects (which doesn't go well with -z,defs). It must either be linked to the main executable, or (more practically for OpenGL drivers) be pre-loaded via LD_PRELOAD. Otherwise works. I didn't find anything with llvmpipe. I suspect the fact that the JIT compiled code isn't instrumented means there are lots of errors it can't catch. But for non-JIT drivers, the Address/Leak Sanitizers seem like a faster alternative to Valgrind. Usage (Ubuntu 15.10): scons asan=1 libgl-xlib export LD_LIBRARY_PATH=$PWD/build/linux-x86_64-debug/gallium/targets/libgl-xlib LD_PRELOAD=libasan.so.2 any-opengl-application Acked-by: Roland Scheidegger <[email protected]>
* softpipe: Free tgsi.image elements on context destruction.Jose Fonseca2016-04-131-0/+2
| | | | | | | | Courtesy of address sanitizer. [airlied: free buffers as well] Reviewed-by: Roland Scheidegger <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* softpipe: Enable ARB_framebuffer_no_attachmentsEdward O'Callaghan2016-04-131-1/+2
| | | | | Signed-off-by: Edward O'Callaghan <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* vc4: Work around hardware limits on the number of verts in a single draw.Eric Anholt2016-04-121-18/+92
| | | | | Fixes rendering failures in glmark2's refract and bump:render-mode=high-poly demos, and partially in its terrain demo.
* softpipe: avoid buffer overflowThomas Hindoe Paaboel Andersen2016-04-132-8/+8
| | | | Signed-off-by: Dave Airlie <[email protected]>
* tgsi: fix buffer overflowThomas Hindoe Paaboel Andersen2016-04-131-1/+1
| | | | | | | Increase r to four channels as rgba is written to it Reviewed-by: Edward O'Callaghan <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* swr: handle pci cap requestsTim Rowley2016-04-121-0/+4
| | | | Reviewed-by: George Kyriazis <[email protected]>
* swr: support samplers in vertex shadersTim Rowley2016-04-126-105/+228
| | | | Reviewed-by: George Kyriazis <[email protected]>
* radeonsi: enable GLSL 4.20 and therefore OpenGL 4.2Nicolai Hähnle2016-04-121-1/+2
| | | | | | | This is the last necessary bit for OpenGL 4.2 support. All driver-specific functionality has already been implemented as part of extensions. Reviewed-by: Edward O'Callaghan <[email protected]>
* va: check null context in vlVaDestroyContextIurie Salomov2016-04-131-0/+4
| | | | | Signed-off-by: Iurie Salomov <[email protected]> Reviewed-by: Julien Isorce <[email protected]>
* radeonsi: fix a critical SI hang since PIPELINESTAT_START/STOP was addedMarek Olšák2016-04-132-9/+2
| | | | | For some reason unknown to me, SI hangs if the event is written after CONTEXT_CONTROL.
* radeonsi: fix bounds check in si_create_vertex_elementsNicolai Hähnle2016-04-121-1/+1
| | | | | | | | | This was triggered by dEQP-GLES3.functional.vertex_array_objects.all_attributes Cc: "11.1 11.2" <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: enable shader buffer pipe capsNicolai Hähnle2016-04-121-2/+2
| | | | | Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Edward O'Callaghan <[email protected]>
* radeonsi: add shader buffer support to TGSI_OPCODE_RESQNicolai Hähnle2016-04-121-6/+11
| | | | | Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Edward O'Callaghan <[email protected]>
* radeonsi: add shader buffer support to TGSI_OPCODE_STORENicolai Hähnle2016-04-121-18/+111
| | | | | Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Edward O'Callaghan <[email protected]>
* radeonsi: add shader buffer support to TGSI_OPCODE_LOADNicolai Hähnle2016-04-121-19/+70
| | | | | Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Edward O'Callaghan <[email protected]>
* radeonsi: add shader buffer support to TGSI_OPCODE_ATOM*Nicolai Hähnle2016-04-121-15/+46
| | | | | Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Edward O'Callaghan <[email protected]>
* radeonsi: add offset parameter to buffer_append_argsNicolai Hähnle2016-04-121-5/+10
| | | | | Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Edward O'Callaghan <[email protected]>
* radeonsi: adjust buffer_append_args to take a 128 bit resourceNicolai Hähnle2016-04-121-7/+23
| | | | | | | Move the buffer resource extraction code out into its own function. Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Edward O'Callaghan <[email protected]>
* radeonsi: preload shader buffers in shadersNicolai Hähnle2016-04-121-0/+17
| | | | | Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Edward O'Callaghan <[email protected]>
* radeonsi: implement set_shader_buffersNicolai Hähnle2016-04-125-58/+125
| | | | | Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Edward O'Callaghan <[email protected]>
* radeonsi: move resetting of constant buffers into a separate functionNicolai Hähnle2016-04-121-15/+26
| | | | | | | This will be re-used for shader buffers. Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Edward O'Callaghan <[email protected]>
* radeonsi: Mark ARB_robust_buffer_access_behavior as supported.Bas Nieuwenhuizen2016-04-121-1/+1
| | | | | Signed-off-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* gallium: Add capability for ARB_robust_buffer_access_behavior.Bas Nieuwenhuizen2016-04-1217-0/+21
| | | | | | Signed-off-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* swr: [rasterizer core] warning cleanupTim Rowley2016-04-122-5/+4
| | | | Acked-by: Brian Paul <[email protected]>
* swr: [rasterizer] Put in rudimentary garbage collection for the global arena ↵Tim Rowley2016-04-123-61/+187
| | | | | | | | | | | allocator - Check for unused blocks every few frames or every 64K draws - Delete data unused since the last check if total unused data is > 20MB Doesn't seem to cause a perf degridation Acked-by: Brian Paul <[email protected]>
* swr: [rasterizer core] Put DRAW_CONTEXT on a dietTim Rowley2016-04-127-49/+43
| | | | | | No need for 256 pointers per DC. Acked-by: Brian Paul <[email protected]>
* swr: [rasterizer core] Add experimental support for hyper-threaded front-endTim Rowley2016-04-125-56/+139
| | | | Acked-by: Brian Paul <[email protected]>
* swr: [rasterizer] Avoid segv in thread creation on machines with ↵Tim Rowley2016-04-121-0/+4
| | | | | | non-consecutive NUMA topology. Acked-by: Brian Paul <[email protected]>
* swr: [rasterizer core] Replace all naked OSALIGN macro uses with OSALIGNSIMD ↵Tim Rowley2016-04-124-14/+14
| | | | | | | | / OSALIGNLINE Future proofing Acked-by: Brian Paul <[email protected]>
* swr: [rasterizer] Ensure correct alignment of stack variables used as vectorsTim Rowley2016-04-122-3/+4
| | | | Acked-by: Brian Paul <[email protected]>
* swr: [rasterizer core] Quantize depth to depth buffer precision prior to ↵Tim Rowley2016-04-125-13/+81
| | | | | | | | depth test/write. Fixes z-fighting issues. Acked-by: Brian Paul <[email protected]>
* swr: [rasterizer common] win32 build fixupsTim Rowley2016-04-121-6/+0
| | | | Acked-by: Brian Paul <[email protected]>
* swr: [rasterizer core] Affinitize thread scratch space to numa node of workerTim Rowley2016-04-123-4/+16
| | | | Acked-by: Brian Paul <[email protected]>
* swr: [rasterizer] Misc fixes identified by static code analysisTim Rowley2016-04-124-6/+21
| | | | | | No perf loss detected Acked-by: Brian Paul <[email protected]>
* gallium: Use STATIC_ASSERT whenever possible.Jose Fonseca2016-04-123-3/+3
| | | | | Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* softpipe: Use STATIC_ASSERT whenever possible.Jose Fonseca2016-04-121-2/+2
| | | | | Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* svga: Use STATIC_ASSERT whenever possible.Jose Fonseca2016-04-123-7/+7
| | | | | Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* r600g: use common scissor and viewport codeMarek Olšák2016-04-126-209/+34
| | | | | | | | It's the same as radeonsi. This adds guard band support to r600g. Reviewed-by: Edward O'Callaghan <[email protected]> Reviewed-by: Grigori Goronzy <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: add R600/Evergreen/Cayman support to common viewport codeMarek Olšák2016-04-123-17/+50
| | | | | | Reviewed-by: Edward O'Callaghan <[email protected]> Reviewed-by: Grigori Goronzy <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi: move scissor and viewport states into gallium/radeonMarek Olšák2016-04-1212-319/+388
| | | | | | Reviewed-by: Edward O'Callaghan <[email protected]> Reviewed-by: Grigori Goronzy <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi: use guard band clippingMarek Olšák2016-04-121-4/+69
| | | | | | | | | | | | Guard band clipping speeds up rasterization for primitives that are partially off-screen. This change in particular results in small framerate improvements in a wide range of games. Started by Grigori Goronzy <[email protected]>. Reviewed-by: Edward O'Callaghan <[email protected]> Reviewed-by: Grigori Goronzy <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi: compute scissor from viewport in set_viewport_statesMarek Olšák2016-04-122-30/+48
| | | | | | | | | and clamp it right before emitting. This is a prerequisite for computing the guard band. Reviewed-by: Edward O'Callaghan <[email protected]> Reviewed-by: Grigori Goronzy <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* gallium/radeon: set GTT WC on tiled texturesMarek Olšák2016-04-121-1/+2
| | | | | | | | Just for consistency. This should have no effect, because OpenGL textures always go to VRAM. Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Edward O'Callaghan <[email protected]>
* gallium/radeon: relax requirements on VRAM placements on APUsMarek Olšák2016-04-124-0/+37
| | | | | | | This makes Tonga with vramlimit=128 2x faster in Heaven. Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Edward O'Callaghan <[email protected]>
* winsys/amdgpu: remove hack for low VRAM configurationMarek Olšák2016-04-121-10/+0
| | | | | | | A better solution will be used. Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Edward O'Callaghan <[email protected]>