mesa.git
15 years agollvmpipe: Generate the fragment pipeline into a single function.
José Fonseca [Sat, 22 Aug 2009 11:39:44 +0000 (12:39 +0100)]
llvmpipe: Generate the fragment pipeline into a single function.

Still hackish. Will document and optimize later.

15 years agollvmpipe: Get conversions working correctly for all integer types.
José Fonseca [Sat, 22 Aug 2009 11:37:12 +0000 (12:37 +0100)]
llvmpipe: Get conversions working correctly for all integer types.

15 years agollvmpipe: Delete the quad polygon stipple stage.
José Fonseca [Fri, 21 Aug 2009 18:11:50 +0000 (19:11 +0100)]
llvmpipe: Delete the quad polygon stipple stage.

Not used now -- stipple done by the draw module. May code generate later.

15 years agollvmpipe: Early depth testing.
José Fonseca [Fri, 21 Aug 2009 12:49:10 +0000 (13:49 +0100)]
llvmpipe: Early depth testing.

15 years agollvmpipe: Disassemble beyond referred code beyond the RET instruction.
José Fonseca [Fri, 21 Aug 2009 12:42:19 +0000 (13:42 +0100)]
llvmpipe: Disassemble beyond referred code beyond the RET instruction.

15 years agollvmpipe: Split control flow function declarations and notes.
José Fonseca [Fri, 21 Aug 2009 09:57:48 +0000 (10:57 +0100)]
llvmpipe: Split control flow function declarations and notes.

15 years agollvmpipe: Back port recent softpipe-opt improvements from Keith.
José Fonseca [Fri, 21 Aug 2009 09:27:46 +0000 (10:27 +0100)]
llvmpipe: Back port recent softpipe-opt improvements from Keith.

15 years agollvmpipe: Don't limit the number of tiles in the cache.
José Fonseca [Fri, 21 Aug 2009 08:51:44 +0000 (09:51 +0100)]
llvmpipe: Don't limit the number of tiles in the cache.

15 years agollvmpipe: Clean dead tile cache code.
José Fonseca [Fri, 21 Aug 2009 08:00:47 +0000 (09:00 +0100)]
llvmpipe: Clean dead tile cache code.

15 years agollvmpipe: Simplify tile clears. Use pipe_fill_rect instead of scratch tile.
José Fonseca [Fri, 21 Aug 2009 07:55:50 +0000 (08:55 +0100)]
llvmpipe: Simplify tile clears. Use pipe_fill_rect instead of scratch tile.

15 years agollvmpipe: Start hiding llvmpipe_cached_tile.
José Fonseca [Fri, 21 Aug 2009 07:19:00 +0000 (08:19 +0100)]
llvmpipe: Start hiding llvmpipe_cached_tile.

15 years agollvmpipe: Drop depth/stencil support from tile cache.
José Fonseca [Fri, 21 Aug 2009 06:58:56 +0000 (07:58 +0100)]
llvmpipe: Drop depth/stencil support from tile cache.

15 years agollvmpipe: Code generate the depth test, and include in the shader.
José Fonseca [Fri, 21 Aug 2009 06:48:04 +0000 (07:48 +0100)]
llvmpipe: Code generate the depth test, and include in the shader.

Only 32bit depth/stencil surfaces supported for now. Stencil ops not
implemented yet.

15 years agollvmpipe: Update texture block from format.
José Fonseca [Fri, 21 Aug 2009 06:45:32 +0000 (07:45 +0100)]
llvmpipe: Update texture block from format.

15 years agollvmpipe: Depth test to LLVM IR translation.
José Fonseca [Fri, 21 Aug 2009 06:43:49 +0000 (07:43 +0100)]
llvmpipe: Depth test to LLVM IR translation.

15 years agollvmpipe: Centralize mask update logic.
José Fonseca [Fri, 21 Aug 2009 06:42:29 +0000 (07:42 +0100)]
llvmpipe: Centralize mask update logic.

15 years agollvmpipe: Clamped float to unsigned norm via mantissa manipulation.
José Fonseca [Fri, 21 Aug 2009 06:35:49 +0000 (07:35 +0100)]
llvmpipe: Clamped float to unsigned norm via mantissa manipulation.

15 years agollvmpipe: Several fixes of the conversion test.
José Fonseca [Fri, 21 Aug 2009 06:34:15 +0000 (07:34 +0100)]
llvmpipe: Several fixes of the conversion test.

15 years agollvmpipe: Generate instrinsics for integer comparisons.
José Fonseca [Thu, 20 Aug 2009 19:17:55 +0000 (20:17 +0100)]
llvmpipe: Generate instrinsics for integer comparisons.

It is a little messy, given the available instrucions form SIMD
integer comparisons is rather limited.

15 years agollvmpipe: Mention the ability to get microbenchmarks from the unit tests.
José Fonseca [Thu, 20 Aug 2009 09:21:49 +0000 (10:21 +0100)]
llvmpipe: Mention the ability to get microbenchmarks from the unit tests.

Even better would be to have a -h/--help option to the tests...

15 years agollvmpipe: Code generate alpha testing and append to generated fragment shader.
José Fonseca [Wed, 19 Aug 2009 19:42:50 +0000 (20:42 +0100)]
llvmpipe: Code generate alpha testing and append to generated fragment shader.

15 years agoutil: Dump PIPE_FUNC_x value names.
José Fonseca [Wed, 19 Aug 2009 19:39:51 +0000 (20:39 +0100)]
util: Dump PIPE_FUNC_x value names.

15 years agollvmpipe: use the udis86 lib to print the x86 assembly code
Brian Paul [Wed, 19 Aug 2009 19:23:02 +0000 (13:23 -0600)]
llvmpipe: use the udis86 lib to print the x86 assembly code

15 years agollvmpipe: frag shader comments
Brian Paul [Wed, 19 Aug 2009 19:14:59 +0000 (13:14 -0600)]
llvmpipe: frag shader comments

15 years agollvmpipe: blend comments
Brian Paul [Wed, 19 Aug 2009 19:14:40 +0000 (13:14 -0600)]
llvmpipe: blend comments

15 years agollvmpipe: comments about blend generator
Brian Paul [Wed, 19 Aug 2009 19:14:15 +0000 (13:14 -0600)]
llvmpipe: comments about blend generator

15 years agollvmpipe: basic comments
Brian Paul [Wed, 19 Aug 2009 19:13:49 +0000 (13:13 -0600)]
llvmpipe: basic comments

15 years agollvmpipe: Hack to force the line/point rasterization also fit the blend function...
José Fonseca [Wed, 19 Aug 2009 17:47:58 +0000 (18:47 +0100)]
llvmpipe: Hack to force the line/point rasterization also fit the blend function expectations.

15 years agollvmpipe: Refer my udis86 branch which decodes more opcodes.
José Fonseca [Wed, 19 Aug 2009 17:47:12 +0000 (18:47 +0100)]
llvmpipe: Refer my udis86 branch which decodes more opcodes.

15 years agollvmpipe: Code generate the position interpolation.
José Fonseca [Wed, 19 Aug 2009 16:58:04 +0000 (17:58 +0100)]
llvmpipe: Code generate the position interpolation.

15 years agollvmpipe: Simpler variant of lp_build_broadcast_scalar.
José Fonseca [Wed, 19 Aug 2009 16:57:07 +0000 (17:57 +0100)]
llvmpipe: Simpler variant of lp_build_broadcast_scalar.

15 years agollvmpipe: Put the position coefficients together with the inputs.
José Fonseca [Wed, 19 Aug 2009 14:32:45 +0000 (15:32 +0100)]
llvmpipe: Put the position coefficients together with the inputs.

The automatic search'n'replace leaves lp_setup.c a bit ugly, but this code
will be eventually code generated as well.

15 years agollvmpipe: Implement saturation.
José Fonseca [Wed, 19 Aug 2009 08:34:53 +0000 (09:34 +0100)]
llvmpipe: Implement saturation.

15 years agollvmpipe: Put color/depth directly into the quad structure.
José Fonseca [Wed, 19 Aug 2009 08:24:20 +0000 (09:24 +0100)]
llvmpipe: Put color/depth directly into the quad structure.

15 years agollvmpipe: re-enable other gallium drivers
Brian Paul [Tue, 18 Aug 2009 22:58:12 +0000 (16:58 -0600)]
llvmpipe: re-enable other gallium drivers

No more symbol collisions between drivers, AFAICT.

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.