mesa.git
14 years agomesa: Update sconscript for new ARB/FP assembler.
José Fonseca [Sat, 29 Aug 2009 08:16:02 +0000 (09:16 +0100)]
mesa: Update sconscript for new ARB/FP assembler.

14 years agoutil: Add util_unsigned_logbase2.
José Fonseca [Sat, 29 Aug 2009 08:15:10 +0000 (09:15 +0100)]
util: Add util_unsigned_logbase2.

Cherry picked from Keith's commit f911c3b9897b90132c8621a72bfeb824eb3b01e5.

14 years agollvmpipe: Isolate sampling from TGSI translation.
José Fonseca [Tue, 25 Aug 2009 07:05:31 +0000 (08:05 +0100)]
llvmpipe: Isolate sampling from TGSI translation.

14 years agollvmpipe: Better structure dereference naming.
José Fonseca [Tue, 25 Aug 2009 05:40:22 +0000 (06:40 +0100)]
llvmpipe: Better structure dereference naming.

14 years agollvmpipe: Fix shader variant key construction.
José Fonseca [Mon, 24 Aug 2009 14:55:15 +0000 (15:55 +0100)]
llvmpipe: Fix shader variant key construction.

Fixes the blank screen on non-64bit mode.

14 years agollvmpipe: Fix build.
José Fonseca [Mon, 24 Aug 2009 13:56:51 +0000 (14:56 +0100)]
llvmpipe: Fix build.

14 years agollvmpipe: Merge all pixel format related files.
José Fonseca [Sun, 23 Aug 2009 13:25:31 +0000 (14:25 +0100)]
llvmpipe: Merge all pixel format related files.

14 years agollvmpipe: Factor out and optimize the input interpolation.
José Fonseca [Sun, 23 Aug 2009 11:28:34 +0000 (12:28 +0100)]
llvmpipe: Factor out and optimize the input interpolation.

Special attention is given to the interpolation of side by side quads.
Multiplications are made only for the first quad. Interpolation of
inputs for posterior quads are done exclusively with additions, and
perspective divide if necessary.

14 years agollvmpipe: Pre-declare fetch_texel.
José Fonseca [Sun, 23 Aug 2009 06:55:29 +0000 (07:55 +0100)]
llvmpipe: Pre-declare fetch_texel.

14 years agollvmpipe: Pass the alpha ref value and blend color in the jit context.
José Fonseca [Sun, 23 Aug 2009 06:38:41 +0000 (07:38 +0100)]
llvmpipe: Pass the alpha ref value and blend color in the jit context.

14 years agollvmpipe: Pass fragment context to generated function in a single structure.
José Fonseca [Sun, 23 Aug 2009 05:35:09 +0000 (06:35 +0100)]
llvmpipe: Pass fragment context to generated function in a single structure.

14 years agollvmpipe: Structure manipulation helpers.
José Fonseca [Sun, 23 Aug 2009 05:18:28 +0000 (06:18 +0100)]
llvmpipe: Structure manipulation helpers.

14 years agollvmpipe: Centralize the C <-> JIT interfaces in one place.
José Fonseca [Sun, 23 Aug 2009 04:52:20 +0000 (05:52 +0100)]
llvmpipe: Centralize the C <-> JIT interfaces in one place.

14 years agollvmpipe: Drop blend derived state.
José Fonseca [Sat, 22 Aug 2009 22:30:28 +0000 (23:30 +0100)]
llvmpipe: Drop blend derived state.

Already included in the fragment shader.

14 years agollvmpipe: keep texture stride 16byte aligned
Keith Whitwell [Sun, 23 Aug 2009 11:07:36 +0000 (12:07 +0100)]
llvmpipe: keep texture stride 16byte aligned

Fixes crash when resizing gears window.

14 years agollvmpipe: Squash the quad pipeline.
José Fonseca [Sat, 22 Aug 2009 22:01:58 +0000 (23:01 +0100)]
llvmpipe: Squash the quad pipeline.

It had been reduced to one fixed stage.

14 years agollvmpipe: s/uni/scalar/.
José Fonseca [Sat, 22 Aug 2009 21:30:03 +0000 (22:30 +0100)]
llvmpipe: s/uni/scalar/.

More obvious name.

14 years agollvmpipe: Add a bunch of comments.
José Fonseca [Sat, 22 Aug 2009 21:26:55 +0000 (22:26 +0100)]
llvmpipe: Add a bunch of comments.

Description/rationale/to-do items, while I still remember them...

14 years agollvmpipe: Split off vs stuff from lp_state_fs.c.
José Fonseca [Sat, 22 Aug 2009 18:07:56 +0000 (19:07 +0100)]
llvmpipe: Split off vs stuff from lp_state_fs.c.

lp_state_fs.c is already too big without it.

14 years agollvmpipe: Avoid duplicate clamping when converting between types.
José Fonseca [Sat, 22 Aug 2009 15:04:21 +0000 (16:04 +0100)]
llvmpipe: Avoid duplicate clamping when converting between types.

14 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.

14 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.

14 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.

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

14 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.

14 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.

14 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.

14 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.

14 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.

14 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.

14 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.

14 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.

14 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.

14 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.

14 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.

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

14 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.

14 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.

14 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.

14 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...

14 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.

14 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.

14 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

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

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

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

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

14 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.

14 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.

14 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.

14 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.

14 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.

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

14 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.

14 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.

14 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.

14 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.

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

14 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()

14 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.

14 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.

14 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.

14 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.

14 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.

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

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

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

14 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.

14 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.

14 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.

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

14 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].

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

14 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.

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

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

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

14 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.

14 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.

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

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

14 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.

14 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.

14 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.

14 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.

14 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.

14 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.

14 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.

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

14 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.

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

14 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.

14 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

14 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.

14 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.

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

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

14 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.

14 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.

14 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.