mesa.git
15 years agollvmpipe: prefix point/line/tri_setup() functions with llvmpipe_
Brian Paul [Tue, 18 Aug 2009 22:55:24 +0000 (16:55 -0600)]
llvmpipe: prefix point/line/tri_setup() functions with llvmpipe_

Avoid symbol collisions with softpipe.

15 years agollvmpipe: repurpose linux-llvm config to build the llvmpipe driver
Brian Paul [Tue, 18 Aug 2009 22:28:23 +0000 (16:28 -0600)]
llvmpipe: repurpose linux-llvm config to build the llvmpipe driver

The gallivm module is no longer built.  If/when gallivm is resuscitated we
can revisit this.

15 years agollvmpipe: updated Makefile C_SOURCES
Brian Paul [Tue, 18 Aug 2009 21:18:50 +0000 (15:18 -0600)]
llvmpipe: updated Makefile C_SOURCES

15 years agollvmpipe: add missing break in xlib _init()
Brian Paul [Tue, 18 Aug 2009 21:18:33 +0000 (15:18 -0600)]
llvmpipe: add missing break in xlib _init()

15 years agollvmpipe: Allow to build without udis86.
José Fonseca [Tue, 18 Aug 2009 20:08:38 +0000 (21:08 +0100)]
llvmpipe: Allow to build without udis86.

15 years agollvmpipe: Drop the FETCH/STORE macros.
José Fonseca [Tue, 18 Aug 2009 19:58:30 +0000 (20:58 +0100)]
llvmpipe: Drop the FETCH/STORE macros.

15 years agollvmpipe: Debug helper function to name llvm intermediate values.
José Fonseca [Tue, 18 Aug 2009 19:23:35 +0000 (20:23 +0100)]
llvmpipe: Debug helper function to name llvm intermediate values.

15 years agollvmpipe: use align_malloc for all structs containing ALIGN16 members
Keith Whitwell [Tue, 18 Aug 2009 19:25:37 +0000 (20:25 +0100)]
llvmpipe: use align_malloc for all structs containing ALIGN16 members

Unless the struct is allocated aligned, aligning the members isn't very
helpful.

15 years agollvmpipe: Document that llvm 2.5 is expected.
José Fonseca [Tue, 18 Aug 2009 18:20:48 +0000 (19:20 +0100)]
llvmpipe: Document that llvm 2.5 is expected.

15 years agollvmpipe: Briefly describe current status.
José Fonseca [Tue, 18 Aug 2009 16:36:13 +0000 (17:36 +0100)]
llvmpipe: Briefly describe current status.

15 years agollvmpipe: Blend in place.
José Fonseca [Tue, 18 Aug 2009 13:18:54 +0000 (14:18 +0100)]
llvmpipe: Blend in place.

15 years agollvmpipe: Code generate logic ops.
José Fonseca [Tue, 18 Aug 2009 12:30:04 +0000 (13:30 +0100)]
llvmpipe: Code generate logic ops.

15 years agollvmpipe: Rasterize the quads according to what the blend function expects.
José Fonseca [Tue, 18 Aug 2009 11:57:16 +0000 (12:57 +0100)]
llvmpipe: Rasterize the quads according to what the blend function expects.

15 years agollvmpipe: Tile in SoA format identical to the blender function output.
José Fonseca [Tue, 18 Aug 2009 10:41:01 +0000 (11:41 +0100)]
llvmpipe: Tile in SoA format identical to the blender function output.

15 years agollvmpipe: Allow to dump the disassembly byte code.
José Fonseca [Tue, 18 Aug 2009 09:28:37 +0000 (10:28 +0100)]
llvmpipe: Allow to dump the disassembly byte code.

Useful as dis86 doesn't disassemble some SSE4 opcodes yet.

15 years agollvmpipe: Implement LIT.
José Fonseca [Mon, 17 Aug 2009 07:10:38 +0000 (08:10 +0100)]
llvmpipe: Implement LIT.

15 years agollvmpipe: Move lp_build_select to lp_bld_logic.[ch].
José Fonseca [Mon, 17 Aug 2009 06:57:28 +0000 (07:57 +0100)]
llvmpipe: Move lp_build_select to lp_bld_logic.[ch].

15 years agollvmpipe: Implement comparison opcodes.
José Fonseca [Mon, 17 Aug 2009 06:51:54 +0000 (07:51 +0100)]
llvmpipe: Implement comparison opcodes.

15 years agollvmpipe: Fix translation of KIL with repeated swizzles.
José Fonseca [Mon, 17 Aug 2009 06:51:16 +0000 (07:51 +0100)]
llvmpipe: Fix translation of KIL with repeated swizzles.

15 years agollvmpipe: Handle floating point selection.
José Fonseca [Mon, 17 Aug 2009 06:50:45 +0000 (07:50 +0100)]
llvmpipe: Handle floating point selection.

15 years agollvmpipe: Silence compiler warnings.
José Fonseca [Sun, 16 Aug 2009 20:07:15 +0000 (21:07 +0100)]
llvmpipe: Silence compiler warnings.

15 years agollvmpipe: Implement KIL.
José Fonseca [Sun, 16 Aug 2009 20:01:57 +0000 (21:01 +0100)]
llvmpipe: Implement KIL.

15 years agollvmpipe: More verbose error message when failed to translate opcodes.
José Fonseca [Sun, 16 Aug 2009 20:01:12 +0000 (21:01 +0100)]
llvmpipe: More verbose error message when failed to translate opcodes.

15 years agollvmpipe: Detect typos in LLVM intrinsics early.
José Fonseca [Sun, 16 Aug 2009 20:00:16 +0000 (21:00 +0100)]
llvmpipe: Detect typos in LLVM intrinsics early.

15 years agollvmpipe: Comparisons translation.
José Fonseca [Sun, 16 Aug 2009 19:59:38 +0000 (20:59 +0100)]
llvmpipe: Comparisons translation.

15 years agollvmpipe: Disassemble generated x86 code.
José Fonseca [Sun, 16 Aug 2009 10:50:17 +0000 (11:50 +0100)]
llvmpipe: Disassemble generated x86 code.

15 years agollvmpipe: Shader function arguments don't alias.
José Fonseca [Sun, 16 Aug 2009 09:02:17 +0000 (10:02 +0100)]
llvmpipe: Shader function arguments don't alias.

15 years agollvmpipe: Test only present functionality to allow regression testing.
José Fonseca [Fri, 14 Aug 2009 11:02:38 +0000 (12:02 +0100)]
llvmpipe: Test only present functionality to allow regression testing.

15 years agollvmpipe: Clamp into range when writing integers.
José Fonseca [Fri, 14 Aug 2009 11:02:06 +0000 (12:02 +0100)]
llvmpipe: Clamp into range when writing integers.

15 years agollvmpipe: Compute interpolation coeffs directly into SoA layout.
José Fonseca [Fri, 14 Aug 2009 10:33:26 +0000 (11:33 +0100)]
llvmpipe: Compute interpolation coeffs directly into SoA layout.

15 years agollvmpipe: Pass the interpolation factors as scalars.
José Fonseca [Fri, 14 Aug 2009 09:56:40 +0000 (10:56 +0100)]
llvmpipe: Pass the interpolation factors as scalars.

15 years agollvmpipe: Eliminate dependency on tgsi_exec_machine.
José Fonseca [Fri, 14 Aug 2009 09:48:06 +0000 (10:48 +0100)]
llvmpipe: Eliminate dependency on tgsi_exec_machine.

15 years agollvmpipe: Eliminate non-LLVM fs execution paths.
José Fonseca [Fri, 14 Aug 2009 09:27:32 +0000 (10:27 +0100)]
llvmpipe: Eliminate non-LLVM fs execution paths.

15 years agollvmpipe: Code generate interpolators.
José Fonseca [Fri, 14 Aug 2009 09:03:46 +0000 (10:03 +0100)]
llvmpipe: Code generate interpolators.

15 years agollvmpipe: Factor out lp_build_select from lp_build_select_aos.
José Fonseca [Fri, 14 Aug 2009 09:03:12 +0000 (10:03 +0100)]
llvmpipe: Factor out lp_build_select from lp_build_select_aos.

15 years agollvmpipe: Translate approximate log2/exp2.
José Fonseca [Wed, 12 Aug 2009 11:42:06 +0000 (12:42 +0100)]
llvmpipe: Translate approximate log2/exp2.

15 years agollvmpipe: Handle a few more TGSI opcodes.
José Fonseca [Wed, 12 Aug 2009 09:37:24 +0000 (10:37 +0100)]
llvmpipe: Handle a few more TGSI opcodes.

15 years agollvmpipe: Efficient implementations of pow/exp/log/exp2/log2
José Fonseca [Wed, 12 Aug 2009 09:35:50 +0000 (10:35 +0100)]
llvmpipe: Efficient implementations of pow/exp/log/exp2/log2

15 years agollvmpipe: Migrate more SSE2 codegen to LLVM IR.
José Fonseca [Wed, 12 Aug 2009 01:36:35 +0000 (02:36 +0100)]
llvmpipe: Migrate more SSE2 codegen to LLVM IR.

15 years agollvmpipe: Don't assume/enforce fs values are in [0,1] range.
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.

15 years agollvmpipe: Implement more arithmetic functions.
José Fonseca [Wed, 12 Aug 2009 01:34:55 +0000 (02:34 +0100)]
llvmpipe: Implement more arithmetic functions.

15 years agollvmpipe: Reuse coord/texel store.
José Fonseca [Tue, 11 Aug 2009 12:30:23 +0000 (13:30 +0100)]
llvmpipe: Reuse coord/texel store.

15 years agollvmpipe: Replace lp_fs_llvm.c.
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.

15 years agollvmpipe: TGSI -> LLVM SoA IR converstion.
José Fonseca [Tue, 11 Aug 2009 12:17:24 +0000 (13:17 +0100)]
llvmpipe: TGSI -> LLVM SoA IR converstion.

Based on tgsi_sse2.c.

15 years agollvmpipe: Dump only the generated function.
José Fonseca [Tue, 11 Aug 2009 12:10:15 +0000 (13:10 +0100)]
llvmpipe: Dump only the generated function.

15 years agollvmpipe: Scalar -> vector broadcasting.
José Fonseca [Tue, 11 Aug 2009 12:09:54 +0000 (13:09 +0100)]
llvmpipe: Scalar -> vector broadcasting.

15 years agollvmpipe: More arithmetic ops.
José Fonseca [Tue, 11 Aug 2009 12:09:35 +0000 (13:09 +0100)]
llvmpipe: More arithmetic ops.

Mostly untested.

15 years agollvmpipe: More intrinsic helpers.
José Fonseca [Mon, 10 Aug 2009 22:22:40 +0000 (23:22 +0100)]
llvmpipe: More intrinsic helpers.

15 years agollvmpipe: Fix typo.
José Fonseca [Mon, 10 Aug 2009 15:12:51 +0000 (16:12 +0100)]
llvmpipe: Fix typo.

15 years agoutil: Fix SCons build.
José Fonseca [Mon, 10 Aug 2009 15:12:41 +0000 (16:12 +0100)]
util: Fix SCons build.

15 years agollvmpipe: Document the typo in llvm-c/Core.h.
José Fonseca [Mon, 10 Aug 2009 14:43:04 +0000 (15:43 +0100)]
llvmpipe: Document the typo in llvm-c/Core.h.

15 years agoutil: Auto-generate u_format_table.c from SConscript.
José Fonseca [Mon, 10 Aug 2009 14:23:35 +0000 (15:23 +0100)]
util: Auto-generate u_format_table.c from SConscript.

15 years agollvmpipe: Simple description/instructions.
José Fonseca [Mon, 10 Aug 2009 11:35:16 +0000 (12:35 +0100)]
llvmpipe: Simple description/instructions.

15 years agollvmpipe: Add missing include.
José Fonseca [Mon, 10 Aug 2009 10:37:55 +0000 (11:37 +0100)]
llvmpipe: Add missing include.

15 years agollvmpipe: Tiles in rgba8 format.
José Fonseca [Mon, 10 Aug 2009 07:16:31 +0000 (08:16 +0100)]
llvmpipe: Tiles in rgba8 format.

15 years agollvmpipe: Store tile color in SoA.
José Fonseca [Sun, 9 Aug 2009 22:58:06 +0000 (23:58 +0100)]
llvmpipe: Store tile color in SoA.

15 years agollvmpipe: Code generate color masking.
José Fonseca [Sun, 9 Aug 2009 22:34:01 +0000 (23:34 +0100)]
llvmpipe: Code generate color masking.

15 years agollvmpipe: Use the generated SoA blending code.
José Fonseca [Sun, 9 Aug 2009 22:10:19 +0000 (23:10 +0100)]
llvmpipe: Use the generated SoA blending code.

15 years agollvmpipe: Handle disabled blending too.
José Fonseca [Sun, 9 Aug 2009 21:59:52 +0000 (22:59 +0100)]
llvmpipe: Handle disabled blending too.

15 years agoxlib: Ensure one screen instance.
José Fonseca [Sun, 9 Aug 2009 21:59:12 +0000 (22:59 +0100)]
xlib: Ensure one screen instance.

15 years agollvmpipe: Split the texture cache from the color/depth/stencil cache.
José Fonseca [Sun, 9 Aug 2009 16:22:01 +0000 (17:22 +0100)]
llvmpipe: Split the texture cache from the color/depth/stencil cache.

15 years agoxlib: Complete llvmpipe integration.
José Fonseca [Sun, 9 Aug 2009 16:15:17 +0000 (17:15 +0100)]
xlib: Complete llvmpipe integration.

15 years agollvmpipe: SoA blending.
José Fonseca [Sun, 9 Aug 2009 11:39:38 +0000 (12:39 +0100)]
llvmpipe: SoA blending.

Throughput seems to be 4x higher.

15 years agoutil: Fix blend factor dumping.
José Fonseca [Sun, 9 Aug 2009 11:32:37 +0000 (12:32 +0100)]
util: Fix blend factor dumping.

15 years agollvmpipe: Update blending test.
José Fonseca [Sat, 8 Aug 2009 22:15:05 +0000 (23:15 +0100)]
llvmpipe: Update blending test.

15 years agollvmpipe: Handle more conversions.
José Fonseca [Sat, 8 Aug 2009 22:10:59 +0000 (23:10 +0100)]
llvmpipe: Handle more conversions.

Not all successfully yet though..

15 years agollvmpipe: Use full set of sse4 min/max intrinsics.
José Fonseca [Sat, 8 Aug 2009 21:57:03 +0000 (22:57 +0100)]
llvmpipe: Use full set of sse4 min/max intrinsics.

15 years agollvmpipe: Fix one const generation for some signed integers.
José Fonseca [Sat, 8 Aug 2009 21:56:22 +0000 (22:56 +0100)]
llvmpipe: Fix one const generation for some signed integers.

15 years agollvmpipe: Allow floating types without sign.
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.

15 years agollvmpipe: Centralize lp_build_context initialization.
José Fonseca [Sat, 8 Aug 2009 21:49:23 +0000 (22:49 +0100)]
llvmpipe: Centralize lp_build_context initialization.

15 years agollvmpipe: Normalize the cycles with the number of channel.
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.

15 years agollvmpipe: Handle ubyte -> float conversion too.
José Fonseca [Fri, 7 Aug 2009 13:34:13 +0000 (14:34 +0100)]
llvmpipe: Handle ubyte -> float conversion too.

15 years agollvmpipe: Make lp_const_offset visible.
José Fonseca [Fri, 7 Aug 2009 13:33:07 +0000 (14:33 +0100)]
llvmpipe: Make lp_const_offset visible.

15 years agollvmpipe: Only get the preprocessor flags from llvm-config.
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.

15 years agollvmpipe: Bootstrap type conversions.
José Fonseca [Fri, 7 Aug 2009 08:51:48 +0000 (09:51 +0100)]
llvmpipe: Bootstrap type conversions.

15 years agollvmpipe: Use same type for reference vectors.
José Fonseca [Fri, 7 Aug 2009 08:51:04 +0000 (09:51 +0100)]
llvmpipe: Use same type for reference vectors.

15 years agollvmpipe: Fix floating point const scale factor.
José Fonseca [Fri, 7 Aug 2009 08:28:58 +0000 (09:28 +0100)]
llvmpipe: Fix floating point const scale factor.

15 years agollvmpipe: Factor out shared test code into a separate module.
José Fonseca [Fri, 7 Aug 2009 00:20:01 +0000 (01:20 +0100)]
llvmpipe: Factor out shared test code into a separate module.

15 years agollvmpipe: Cleanup constant helpers.
José Fonseca [Fri, 7 Aug 2009 00:18:49 +0000 (01:18 +0100)]
llvmpipe: Cleanup constant helpers.

15 years agollvmpipe: Move intrinsic helpers to a separate module.
José Fonseca [Fri, 7 Aug 2009 00:16:59 +0000 (01:16 +0100)]
llvmpipe: Move intrinsic helpers to a separate module.

15 years agollvmpipe: Collect richer blend data.
José Fonseca [Tue, 4 Aug 2009 12:39:28 +0000 (13:39 +0100)]
llvmpipe: Collect richer blend data.

15 years agollvmpipe: Some notes about PSHUF.
José Fonseca [Tue, 4 Aug 2009 11:32:24 +0000 (12:32 +0100)]
llvmpipe: Some notes about PSHUF.

15 years agollvmpipe: Optimize blend swizzles by using bitmasks instead of shuffles for ubytes.
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.

15 years agollvmpipe: Write data to a tsv file for posterior analysis.
José Fonseca [Tue, 4 Aug 2009 10:52:54 +0000 (11:52 +0100)]
llvmpipe: Write data to a tsv file for posterior analysis.

15 years agollvmpipe: Move p_build_context to lp_bld_type.h
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.

15 years agoutil: New file dedicated to dump state in human/machine readable format.
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.

15 years agollvmpipe: Don't use llvm.readcyclecounter.
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.

15 years agollvmpipe: Separate constant building.
José Fonseca [Mon, 3 Aug 2009 21:31:08 +0000 (22:31 +0100)]
llvmpipe: Separate constant building.

15 years agollvmpipe: Move type support functions into a separate file.
José Fonseca [Mon, 3 Aug 2009 21:24:01 +0000 (22:24 +0100)]
llvmpipe: Move type support functions into a separate file.

15 years agollvmpipe: Measure the number of cycles taken for blending.
José Fonseca [Mon, 3 Aug 2009 18:35:28 +0000 (19:35 +0100)]
llvmpipe: Measure the number of cycles taken for blending.

15 years agollvmpipe: Minor comments / debug mnemonics.
José Fonseca [Mon, 3 Aug 2009 18:32:57 +0000 (19:32 +0100)]
llvmpipe: Minor comments / debug mnemonics.

15 years agollvmpipe: Optimize away min/max with equal operands.
José Fonseca [Mon, 3 Aug 2009 18:31:56 +0000 (19:31 +0100)]
llvmpipe: Optimize away min/max with equal operands.

15 years agollvmpipe: Improve generated 8bit blending code.
José Fonseca [Mon, 3 Aug 2009 01:06:42 +0000 (02:06 +0100)]
llvmpipe: Improve generated 8bit blending code.

15 years agollvmpipe: Get blending of normalized 8bit unsigned integers working.
José Fonseca [Sun, 2 Aug 2009 23:01:27 +0000 (00:01 +0100)]
llvmpipe: Get blending of normalized 8bit unsigned integers working.

15 years agollvmpipe: Specialize arithmetic operations.
José Fonseca [Sun, 2 Aug 2009 16:54:53 +0000 (17:54 +0100)]
llvmpipe: Specialize arithmetic operations.

15 years agollvmpipe: Introduce a custom typing system.
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.

15 years agollvmpipe: Avoid C99-isms.
José Fonseca [Sun, 2 Aug 2009 12:48:16 +0000 (13:48 +0100)]
llvmpipe: Avoid C99-isms.

15 years agollvmpipe: Factor out intrisic calling code into a reusable function.
José Fonseca [Sun, 2 Aug 2009 08:59:12 +0000 (09:59 +0100)]
llvmpipe: Factor out intrisic calling code into a reusable function.

15 years agollvmpipe: Cleanup test programs.
José Fonseca [Sat, 1 Aug 2009 17:35:04 +0000 (18:35 +0100)]
llvmpipe: Cleanup test programs.

15 years agollvmpipe: Blending.
José Fonseca [Sat, 1 Aug 2009 16:59:19 +0000 (17:59 +0100)]
llvmpipe: Blending.

The code