José Fonseca [Fri, 14 Aug 2009 11:02:38 +0000 (12:02 +0100)]
llvmpipe: Test only present functionality to allow regression testing.
José Fonseca [Fri, 14 Aug 2009 11:02:06 +0000 (12:02 +0100)]
llvmpipe: Clamp into range when writing integers.
José Fonseca [Fri, 14 Aug 2009 10:33:26 +0000 (11:33 +0100)]
llvmpipe: Compute interpolation coeffs directly into SoA layout.
José Fonseca [Fri, 14 Aug 2009 09:56:40 +0000 (10:56 +0100)]
llvmpipe: Pass the interpolation factors as scalars.
José Fonseca [Fri, 14 Aug 2009 09:48:06 +0000 (10:48 +0100)]
llvmpipe: Eliminate dependency on tgsi_exec_machine.
José Fonseca [Fri, 14 Aug 2009 09:27:32 +0000 (10:27 +0100)]
llvmpipe: Eliminate non-LLVM fs execution paths.
José Fonseca [Fri, 14 Aug 2009 09:03:46 +0000 (10:03 +0100)]
llvmpipe: Code generate interpolators.
José Fonseca [Fri, 14 Aug 2009 09:03:12 +0000 (10:03 +0100)]
llvmpipe: Factor out lp_build_select from lp_build_select_aos.
José Fonseca [Wed, 12 Aug 2009 11:42:06 +0000 (12:42 +0100)]
llvmpipe: Translate approximate log2/exp2.
José Fonseca [Wed, 12 Aug 2009 09:37:24 +0000 (10:37 +0100)]
llvmpipe: Handle a few more TGSI opcodes.
José Fonseca [Wed, 12 Aug 2009 09:35:50 +0000 (10:35 +0100)]
llvmpipe: Efficient implementations of pow/exp/log/exp2/log2
José Fonseca [Wed, 12 Aug 2009 01:36:35 +0000 (02:36 +0100)]
llvmpipe: Migrate more SSE2 codegen to LLVM IR.
José Fonseca [Wed, 12 Aug 2009 01:35:53 +0000 (02:35 +0100)]
llvmpipe: Don't assume/enforce fs values are in [0,1] range.
José Fonseca [Wed, 12 Aug 2009 01:34:55 +0000 (02:34 +0100)]
llvmpipe: Implement more arithmetic functions.
José Fonseca [Tue, 11 Aug 2009 12:30:23 +0000 (13:30 +0100)]
llvmpipe: Reuse coord/texel store.
José Fonseca [Tue, 11 Aug 2009 12:19:16 +0000 (13:19 +0100)]
llvmpipe: Replace lp_fs_llvm.c.
Based on lp_fs_exec.c/lp_fs_sse.c and tgsi_exec.c.
José Fonseca [Tue, 11 Aug 2009 12:17:24 +0000 (13:17 +0100)]
llvmpipe: TGSI -> LLVM SoA IR converstion.
Based on tgsi_sse2.c.
José Fonseca [Tue, 11 Aug 2009 12:10:15 +0000 (13:10 +0100)]
llvmpipe: Dump only the generated function.
José Fonseca [Tue, 11 Aug 2009 12:09:54 +0000 (13:09 +0100)]
llvmpipe: Scalar -> vector broadcasting.
José Fonseca [Tue, 11 Aug 2009 12:09:35 +0000 (13:09 +0100)]
llvmpipe: More arithmetic ops.
Mostly untested.
José Fonseca [Mon, 10 Aug 2009 22:22:40 +0000 (23:22 +0100)]
llvmpipe: More intrinsic helpers.
José Fonseca [Mon, 10 Aug 2009 15:12:51 +0000 (16:12 +0100)]
llvmpipe: Fix typo.
José Fonseca [Mon, 10 Aug 2009 15:12:41 +0000 (16:12 +0100)]
util: Fix SCons build.
José Fonseca [Mon, 10 Aug 2009 14:43:04 +0000 (15:43 +0100)]
llvmpipe: Document the typo in llvm-c/Core.h.
José Fonseca [Mon, 10 Aug 2009 14:23:35 +0000 (15:23 +0100)]
util: Auto-generate u_format_table.c from SConscript.
José Fonseca [Mon, 10 Aug 2009 11:35:16 +0000 (12:35 +0100)]
llvmpipe: Simple description/instructions.
José Fonseca [Mon, 10 Aug 2009 10:37:55 +0000 (11:37 +0100)]
llvmpipe: Add missing include.
José Fonseca [Mon, 10 Aug 2009 07:16:31 +0000 (08:16 +0100)]
llvmpipe: Tiles in rgba8 format.
José Fonseca [Sun, 9 Aug 2009 22:58:06 +0000 (23:58 +0100)]
llvmpipe: Store tile color in SoA.
José Fonseca [Sun, 9 Aug 2009 22:34:01 +0000 (23:34 +0100)]
llvmpipe: Code generate color masking.
José Fonseca [Sun, 9 Aug 2009 22:10:19 +0000 (23:10 +0100)]
llvmpipe: Use the generated SoA blending code.
José Fonseca [Sun, 9 Aug 2009 21:59:52 +0000 (22:59 +0100)]
llvmpipe: Handle disabled blending too.
José Fonseca [Sun, 9 Aug 2009 21:59:12 +0000 (22:59 +0100)]
xlib: Ensure one screen instance.
José Fonseca [Sun, 9 Aug 2009 16:22:01 +0000 (17:22 +0100)]
llvmpipe: Split the texture cache from the color/depth/stencil cache.
José Fonseca [Sun, 9 Aug 2009 16:15:17 +0000 (17:15 +0100)]
xlib: Complete llvmpipe integration.
José Fonseca [Sun, 9 Aug 2009 11:39:38 +0000 (12:39 +0100)]
llvmpipe: SoA blending.
Throughput seems to be 4x higher.
José Fonseca [Sun, 9 Aug 2009 11:32:37 +0000 (12:32 +0100)]
util: Fix blend factor dumping.
José Fonseca [Sat, 8 Aug 2009 22:15:05 +0000 (23:15 +0100)]
llvmpipe: Update blending test.
José Fonseca [Sat, 8 Aug 2009 22:10:59 +0000 (23:10 +0100)]
llvmpipe: Handle more conversions.
Not all successfully yet though..
José Fonseca [Sat, 8 Aug 2009 21:57:03 +0000 (22:57 +0100)]
llvmpipe: Use full set of sse4 min/max intrinsics.
José Fonseca [Sat, 8 Aug 2009 21:56:22 +0000 (22:56 +0100)]
llvmpipe: Fix one const generation for some signed integers.
José Fonseca [Sat, 8 Aug 2009 21:51:11 +0000 (22:51 +0100)]
llvmpipe: Allow floating types without sign.
With the meaning that all values are assumed to be positive.
José Fonseca [Sat, 8 Aug 2009 21:49:23 +0000 (22:49 +0100)]
llvmpipe: Centralize lp_build_context initialization.
José Fonseca [Sat, 8 Aug 2009 19:38:01 +0000 (20:38 +0100)]
llvmpipe: Normalize the cycles with the number of channel.
So that we have a comparable number for different formats.
José Fonseca [Fri, 7 Aug 2009 13:34:13 +0000 (14:34 +0100)]
llvmpipe: Handle ubyte -> float conversion too.
José Fonseca [Fri, 7 Aug 2009 13:33:07 +0000 (14:33 +0100)]
llvmpipe: Make lp_const_offset visible.
José Fonseca [Fri, 7 Aug 2009 13:20:57 +0000 (14:20 +0100)]
llvmpipe: Only get the preprocessor flags from llvm-config.
Otherwise we get -O2 optimization flag, preventing proper debugging.
José Fonseca [Fri, 7 Aug 2009 08:51:48 +0000 (09:51 +0100)]
llvmpipe: Bootstrap type conversions.
José Fonseca [Fri, 7 Aug 2009 08:51:04 +0000 (09:51 +0100)]
llvmpipe: Use same type for reference vectors.
José Fonseca [Fri, 7 Aug 2009 08:28:58 +0000 (09:28 +0100)]
llvmpipe: Fix floating point const scale factor.
José Fonseca [Fri, 7 Aug 2009 00:20:01 +0000 (01:20 +0100)]
llvmpipe: Factor out shared test code into a separate module.
José Fonseca [Fri, 7 Aug 2009 00:18:49 +0000 (01:18 +0100)]
llvmpipe: Cleanup constant helpers.
José Fonseca [Fri, 7 Aug 2009 00:16:59 +0000 (01:16 +0100)]
llvmpipe: Move intrinsic helpers to a separate module.
José Fonseca [Tue, 4 Aug 2009 12:39:28 +0000 (13:39 +0100)]
llvmpipe: Collect richer blend data.
José Fonseca [Tue, 4 Aug 2009 11:32:24 +0000 (12:32 +0100)]
llvmpipe: Some notes about PSHUF.
José Fonseca [Tue, 4 Aug 2009 11:09:52 +0000 (12:09 +0100)]
llvmpipe: Optimize blend swizzles by using bitmasks instead of shuffles for ubytes.
José Fonseca [Tue, 4 Aug 2009 10:52:54 +0000 (11:52 +0100)]
llvmpipe: Write data to a tsv file for posterior analysis.
José Fonseca [Tue, 4 Aug 2009 10:51:13 +0000 (11:51 +0100)]
llvmpipe: Move p_build_context to lp_bld_type.h
As it will be shared with more modules.
José Fonseca [Tue, 4 Aug 2009 10:50:13 +0000 (11:50 +0100)]
util: New file dedicated to dump state in human/machine readable format.
José Fonseca [Tue, 4 Aug 2009 01:10:35 +0000 (02:10 +0100)]
llvmpipe: Don't use llvm.readcyclecounter.
LLVM during optimization reorders the rdtsc instructions next to each
other, which makes it pretty useless.
José Fonseca [Mon, 3 Aug 2009 21:31:08 +0000 (22:31 +0100)]
llvmpipe: Separate constant building.
José Fonseca [Mon, 3 Aug 2009 21:24:01 +0000 (22:24 +0100)]
llvmpipe: Move type support functions into a separate file.
José Fonseca [Mon, 3 Aug 2009 18:35:28 +0000 (19:35 +0100)]
llvmpipe: Measure the number of cycles taken for blending.
José Fonseca [Mon, 3 Aug 2009 18:32:57 +0000 (19:32 +0100)]
llvmpipe: Minor comments / debug mnemonics.
José Fonseca [Mon, 3 Aug 2009 18:31:56 +0000 (19:31 +0100)]
llvmpipe: Optimize away min/max with equal operands.
José Fonseca [Mon, 3 Aug 2009 01:06:42 +0000 (02:06 +0100)]
llvmpipe: Improve generated 8bit blending code.
José Fonseca [Sun, 2 Aug 2009 23:01:27 +0000 (00:01 +0100)]
llvmpipe: Get blending of normalized 8bit unsigned integers working.
José Fonseca [Sun, 2 Aug 2009 16:54:53 +0000 (17:54 +0100)]
llvmpipe: Specialize arithmetic operations.
José Fonseca [Sun, 2 Aug 2009 12:52:40 +0000 (13:52 +0100)]
llvmpipe: Introduce a custom typing system.
Straightforward representation of floating-point/fixed-point/integer,
normalized/scaled, signed/unsigned SIMD vector types.
José Fonseca [Sun, 2 Aug 2009 12:48:16 +0000 (13:48 +0100)]
llvmpipe: Avoid C99-isms.
José Fonseca [Sun, 2 Aug 2009 08:59:12 +0000 (09:59 +0100)]
llvmpipe: Factor out intrisic calling code into a reusable function.
José Fonseca [Sat, 1 Aug 2009 17:35:04 +0000 (18:35 +0100)]
llvmpipe: Cleanup test programs.
José Fonseca [Sat, 1 Aug 2009 16:59:19 +0000 (17:59 +0100)]
llvmpipe: Blending.
The code
José Fonseca [Sat, 1 Aug 2009 16:27:05 +0000 (17:27 +0100)]
llvmpipe: Arithmetic helpers.
Keith Whitwell [Mon, 27 Jul 2009 11:11:16 +0000 (12:11 +0100)]
llvmpipe: fastpath for interpolated z16 less depthtesting
Because this is interpolated (ie. early) depth, we can build in an
assumption about the quads emitted by triangle setup, ie that they
are actually linear spans. Interpolate z over those spans in z16
format to save on math & conversion.
Keith Whitwell [Mon, 27 Jul 2009 10:23:51 +0000 (11:23 +0100)]
llvmpipe: cope with nr_cbufs == 0
Disable blend code when no color buffer
José Fonseca [Wed, 29 Jul 2009 07:29:13 +0000 (08:29 +0100)]
llvmpipe: Translate logicops.
José Fonseca [Wed, 29 Jul 2009 06:58:27 +0000 (07:58 +0100)]
llvmpipe: Separate pixel packing/unpacking from loading/storing.
José Fonseca [Tue, 28 Jul 2009 07:49:40 +0000 (08:49 +0100)]
xlib: Integrate with llvmpipe.
Actually, the makefile/sconscript changes were already commit by mistake.
José Fonseca [Tue, 28 Jul 2009 07:47:35 +0000 (08:47 +0100)]
llvmpipe: Adjust for pixel layout changes.
José Fonseca [Tue, 28 Jul 2009 07:47:13 +0000 (08:47 +0100)]
util: Make pixel format layout more meaningful.
Namelly, explicitly distinguish formats coded by arithmetic manipulation,
from formats layed out in array.
José Fonseca [Tue, 28 Jul 2009 07:42:27 +0000 (08:42 +0100)]
util: Don't commit u_format_table.c
At least not until stabilizes, to reduce noise.
José Fonseca [Tue, 28 Jul 2009 07:14:10 +0000 (08:14 +0100)]
llvmpipe: Fix typo in copyright.
José Fonseca [Mon, 27 Jul 2009 22:18:44 +0000 (23:18 +0100)]
llvmpipe: Add test cases for pixels.
Actually some of this test cases need more testing...
José Fonseca [Mon, 27 Jul 2009 22:16:32 +0000 (23:16 +0100)]
util: Fix r5g6b5 description.
José Fonseca [Mon, 27 Jul 2009 10:45:50 +0000 (11:45 +0100)]
llvmpipe: Update SConscript.
José Fonseca [Mon, 27 Jul 2009 10:45:36 +0000 (11:45 +0100)]
llvmpipe: Simple shell script to aid port softpipe changes to llvmpipe.
Keith Whitwell [Mon, 27 Jul 2009 07:17:45 +0000 (08:17 +0100)]
llvmpipe: move all depth/stencil/alpha pixel processing into one stage
Keith Whitwell [Sat, 25 Jul 2009 10:01:48 +0000 (11:01 +0100)]
llvmpipe: fix error in scissor state dependencies
Keith Whitwell [Sat, 25 Jul 2009 09:01:06 +0000 (10:01 +0100)]
llvmpipe: cleanup framebuffer state routine slightly
Keith Whitwell [Fri, 24 Jul 2009 19:19:18 +0000 (20:19 +0100)]
llvmpipe: move all color-combine code into lp_quad_blend.c
Consolidate the read-modify-write color combining code from
the blend, colormask and output stages.
Keith Whitwell [Fri, 24 Jul 2009 19:18:52 +0000 (20:18 +0100)]
llvmpipe: fix typo
Keith Whitwell [Fri, 24 Jul 2009 17:46:17 +0000 (18:46 +0100)]
llvmpipe: example fastpaths in blending
Keith Whitwell [Fri, 24 Jul 2009 17:17:05 +0000 (18:17 +0100)]
llvmpipe: actually pass >1 quad from triangle routine
First attempt
Keith Whitwell [Fri, 24 Jul 2009 15:49:35 +0000 (16:49 +0100)]
llvmpipe: expand quad pipeline to process >1 quad at a time
This is part one -- we still only pass a single quad down, but
the code can now cope with more. The quads must all be from the same
tile.
Keith Whitwell [Fri, 24 Jul 2009 15:12:48 +0000 (16:12 +0100)]
llvmpipe: rip out old mulithread support
Keith Whitwell [Thu, 23 Jul 2009 10:14:39 +0000 (11:14 +0100)]
llvmpipe: avoid flushing depth buffer cache on swapbuffers
There's no need to push out depth buffer contents on swapbuffers.
Note that this change doesn't throw away depth buffer changes, it simply
holds them in the cache over calls to swapbuffers. The hope is
that swapbuffers will be followed by a clear() which means in that case
we won't have to write the changes out.
Keith Whitwell [Wed, 22 Jul 2009 14:36:25 +0000 (15:36 +0100)]
llvmpipe: also shortcircuit non-texture tile lookups
Keith Whitwell [Wed, 22 Jul 2009 14:08:42 +0000 (15:08 +0100)]
llvmpipe: shortcircuit repeated lookups of the same tile
The lp_tile_cache is often called repeatedly to look up the same
tile. Add a cache (to the cache) of the single tile most recently
retreived and make a quick inline check to see if this matches the
subsequent request.
Add a tile_address bitfield struct to make this check easier.
Keith Whitwell [Fri, 17 Jul 2009 11:12:04 +0000 (12:12 +0100)]
llvmpipe: remove unused vars in lp_setup.c