summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/llvmpipe
Commit message (Collapse)AuthorAgeFilesLines
* llvmpipe: Silent warnings about undeclared llvmpipe_check_render_cond.José Fonseca2011-11-142-0/+2
|
* llvmpipe: Remove unused variables.José Fonseca2011-11-141-2/+0
| | | | Reviewed-by: Brian Paul <[email protected]>
* llvmpipe: Make more resilient to out-of-memory situations.José Fonseca2011-11-145-24/+68
| | | | | | Most of the code was alright, but we were missing a few paths. Reviewed-by: Brian Paul <[email protected]>
* llvmpipe: fix unswizzle of packed float types.Dave Airlie2011-11-141-2/+2
| | | | | | | | | | I messed up adding the ubyte->float conversion. This fixes getteximage-formats https://bugs.freedesktop.org/show_bug.cgi?id=42837 Signed-off-by: Dave Airlie <[email protected]>
* llvmpipe/u_format: add support for EXT_texture_shared_exponent + ↵Dave Airlie2011-11-102-3/+37
| | | | | | | | | | | EXT_packed_float These two are fairly unique types so add specific cases for decoding them. Passes piglit fbo-clear-format and fbo-generatemipmap-format tests for these two extensions. Signed-off-by: Dave Airlie <[email protected]>
* llvmpipe: add NV_conditional_render support.Dave Airlie2011-11-107-0/+43
| | | | | | | | This ports the softpipe NV_conditional_render support to llvmpipe. This passes the nv_conditional_render-* piglit tests. Signed-off-by: Dave Airlie <[email protected]>
* llvmpipe: enable RGTC after u_format fix.Dave Airlie2011-11-061-5/+0
| | | | | | The two piglit tests pass + render correctly. Signed-off-by: Dave Airlie <[email protected]>
* llvmpipe: Re-advertise support for stencil formats...José Fonseca2011-11-011-5/+6
| | | | | | "no fetch_rgba_float for uint formats" => "llvmpipe does not support uint formats" "stencil == uint" => "llvmpipe does not support stencil"
* llvmpipe: Use -1 instead of ~0 for "no slot".José Fonseca2011-11-013-15/+21
| | | | | | As the value of unsigned ~0 depends on the bit-width. Fixes fdo 42411.
* llvmpipe: fix a crash in non-SSE pathChia-I Wu2011-10-301-1/+1
| | | | It is a typo went unnoticed.
* llvmpipe: llvmpipe doesn't support pure integers yet.Dave Airlie2011-10-262-0/+8
| | | | | | Should fix: https://bugs.freedesktop.org/show_bug.cgi?id=42240 Signed-off-by: Dave Airlie <[email protected]>
* llvmpipe: point out that there's two stencil writemasksBrian Paul2011-10-231-3/+4
| | | | | | | In lp_build_stencil_op() the incoming 'stencil' var is a 2-element array. There's a front-face writemask and a back-face writemask but we're ignoring the later. This patch doesn't fix anything but at least points out the problem.
* llvmpipe: compare front_facing to NULL to improve readabilityBrian Paul2011-10-231-2/+2
| | | | | Compare 'front_facing' to NULL to make it more obvious that front_facing is a pointer and not a simple boolean value.
* llvmpipe: Use lp_build_ifloor_fract for exp2 calculation.José Fonseca2011-10-161-0/+10
| | | | | | | Instead of separate ifloor / fract calls. No change for SSE4.1 code, but less FP<->SI conversions on non SSE4.1 systems.
* gallium: rename ZS stencil type to UINT (v2)Dave Airlie2011-10-111-2/+2
| | | | | | | | | | these are never USCALED, always UINT in reality. taken from some work by Christoph Bumiller v2: fixup formatting of table + tabs Signed-off-by: Dave Airlie <[email protected]>
* llvmpipe: don't support rendering to sRGB surfacesBrian Paul2011-10-111-1/+2
| | | | Fixes https://bugs.freedesktop.org/show_bug.cgi?id=34199
* gallium: add initial pure integer support (v2)Dave Airlie2011-10-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This add support for unsigned/signed integer types via adding a 'pure' bit in the format description table. It adds 4 new u_format get/put hooks, for get/put uint and get/put sint so that accessors can get native access to the integer bits. This is used to avoid precision loss via float converting paths. It doesn't add any float fetchers for these types at the moment, GL doesn't require float fetching from these types and I expect we'll introduce a lot of hidden bugs if we start allowing such conversions without an API mandating it. It adds all formats from EXT_texture_integer and EXT_texture_rg. 0 regressions on llvmpipe here with this. (there is some more follow on code in my gallium-int-work branch, bringing softpipe and mesa to a pretty integer clean state) v2: fixup python generator to get signed->unsigned and unsigned->signed fetches working. Signed-off-by: Dave Airlie <[email protected]>
* llvmpipe: Fix the 4 planes (lines) case properly.José Fonseca2011-10-052-16/+33
| | | | | | | | The previous change was not effective for lines, because there is no 4 planes 4x4 block rasterization path: it is handled by the 16x16 block case too, and the 16x16 block was not being budged as it should. This fixes assertion failures on line rasterization.
* llvmpipe: Ensure the 16x16 special rasterization path does not touch outside ↵José Fonseca2011-10-054-5/+31
| | | | | | | | | | | | | | the tile. llvmpipe has a few special rasterization paths for triangles contained in 16x16 blocks, but it allows the 16x16 block to be aligned only to a 4x4 grid. Some 16x16 blocks could actually intersect the tile if the triangle is 16 pixels in one dimension but 4 in the other, causing a buffer overflow. The fix consists of budging the 16x16 blocks back inside the tile.
* gallium: add and use PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERSMarek Olšák2011-09-301-12/+13
| | | | | | | | | This removes: - PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS - PIPE_CAP_MAX_VERTEX_TEXTURE_UNITS in favor of the that new per-shader cap. Reviewed-by: Brian Paul <[email protected]>
* gallium: remove PIPE_CAP_TEXTURE_MIRROR_REPEATMarek Olšák2011-09-301-2/+0
| | | | | | | | | | All drivers support it (well, except Cell). The boolean option is going away from core Mesa too. This is a follow-up to Ian Romanick's patch "mesa: Remove ARB_texture_mirrored_repeat extension enable flag". Reviewed-by: Brian Paul <[email protected]>
* llvmpipe: Convert some of the null checks back to asserts.José Fonseca2011-09-291-26/+12
| | | | | | This turns some of the null check warnings in commit 023ca40d80670ac0eee8c755ca5f54b1e7c2712e back to asserts, as the underlying cause of fdo bug 40591 should be fixed now.
* llvmpipe: Also reset the state in lp_scene_bin_resetJosé Fonseca2011-09-291-0/+1
| | | | Prevents segfaults when a opaque tile is found without state change.
* llvmpipe: Prevent segfault during fs variant cache shrinking.José Fonseca2011-09-291-4/+15
|
* gallium: move border color to be a color unionDave Airlie2011-09-271-1/+1
| | | | | | | | | | EXT_texture_integer also specifies border color should be a color union, the values are used according to the texture sampler format. (update docs) Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* llvmpipe: Always use memory allocation macros.José Fonseca2011-09-251-2/+3
|
* util: add u_bit_scan helperKeith Whitwell2011-09-221-7/+0
|
* llvmpipe: silence a pointer type warningBrian Paul2011-09-201-1/+1
|
* Update llvmpipe's gitignoreNicholas Miell2011-09-191-0/+1
| | | | Signed-off-by: Brian Paul <[email protected]>
* gallium: move clear paths from rgba to a pointer to a color union (v2)Dave Airlie2011-09-182-3/+4
| | | | | | | | | | | | | | | This moves the gallium interface for clears from using a pointer to 4 floats to a pointer to a union of float/unsigned/int values. Notes: 1. the value is opaque. 2. only when the value is used should it be interpretered according to the surface format it is going to be used with. 3. float clears on integer buffers and vice-versa are undefined. v2: fixed up vega and graw, dropped hunks that shouldn't have been in patch. Signed-off-by: Dave Airlie <[email protected]>
* llvmpipe: Remove dead lp_tile_shuffle_mask.py script.José Fonseca2011-09-141-32/+0
| | | | | Broken, and we now shuffle tiles with pack/unpack instructions, instead of shuffle masks.
* llvmpipe: add some null pointer checksBrian Paul2011-09-092-1/+35
| | | | | | | | | It's not clear if these are acceptable cases so issue a one-time warning in debug builds when we hit them. Fixes segfault in piglit fbo-mipmap-copypix test. Reviewed-by: José Fonseca <[email protected]>
* llvmpipe: add more restrict keywordsBrian Paul2011-08-241-4/+4
| | | | | | | | Put restrict in the function definitions to silence MSVC warnings about incompatible assignments in "func = lp_tile_foobar;" when func was declared with restrict keywords but the rhs function wasn't. Reviewed-by: Jose Fonseca <[email protected]>
* llvmpipe: Don't build lp_test_arit on MSVC.José Fonseca2011-08-181-1/+1
| | | | | Several issues due to expf/logf/etc either not being declared, or being defined as a macro.
* llvmpipe: snprintf->util_snprintf.José Fonseca2011-08-181-1/+2
| | | | For MSVC.
* llvmpipe: Add u_math.h include.José Fonseca2011-08-181-0/+1
| | | | Necessary on platforms with incomplete math.h
* llvmpipe: Unit tests for arithmetic functions.José Fonseca2011-07-223-2/+298
| | | | | | Conflicts: src/gallium/drivers/llvmpipe/SConscript
* llvmpipe: include LLVM version number in name stringBrian Paul2011-07-191-1/+3
|
* llvmpipe: fix build with LLVM 3.0svnTobias Droste2011-07-191-4/+15
| | | | | | | | | LLVM 3.0svn introduced a new type system. It defines a new way to create named structs and removes the (now not needed) LLVMInvalidateStructLayout function. See revision 134829 of LLVM. Signed-off-by: Tobias Droste <[email protected]> Signed-off-by: Brian Paul <[email protected]>
* scons: make embedding orthogonal to the platformJosé Fonseca2011-06-172-2/+2
| | | | To enable embedding in platforms other than linux.
* llvmpipe: SSE2 fastpaths for b8g8r8x8 {un,}swizzleAdam Jackson2011-06-141-2/+66
| | | | | | | | Copy-and-paste from the bgra cases. The C paths attempt to avoid copying the 'x' channel, but it's harmless, you might as well. Good for about 5% in glxgears (740 to 780 fps). Signed-off-by: Adam Jackson <[email protected]>
* llvmpipe: use $(CXX) instead of g++ for linking.Stéphane Marchesin2011-06-061-1/+1
| | | | This allows setting the path to the C++ compiler.
* 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-121-1/+1
| | | | | | | util_logbase2 is exactly the same function. Signed-off-by: Matt Turner <[email protected]> Signed-off-by: Brian Paul <[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]>
* gallium: add fallback for copying buffers to all driversMarek Olšák2011-04-211-0/+7
| | | | | | Just to keep drivers working. Reviewed-by: Jakob Bornecrantz <[email protected]>
* llvmpipe: Take the sampler view's first_level into account when sampling.Fabian Bieler2011-04-085-3/+13
|
* docs: replace llvmpipe/README with docs/llvmpipe.htmlBrian Paul2011-04-071-138/+0
|
* llvmpipe: document issue with LLVM 2.8 and earlier with AVXBrian Paul2011-04-071-0/+4
|