Nicolai Hähnle [Sun, 30 Aug 2009 10:49:53 +0000 (12:49 +0200)]
r300: Move Mesa -> RC program conversion to classic Mesa driver
This really doesn't belong into the compiler itself, since the compiler
should eventually be independent of Mesa's program representation.
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
Marc Dietrich [Sun, 30 Aug 2009 15:24:27 +0000 (09:24 -0600)]
cell: fix compilation
Brian Paul [Sun, 30 Aug 2009 15:21:20 +0000 (09:21 -0600)]
swrast: minor code consolidation
Brian Paul [Sun, 30 Aug 2009 15:15:24 +0000 (09:15 -0600)]
mesa: consolidate texture-related code in meta.c
Also, allow using texture rectangles, NPOT textures or regular POT textures
(preferred in that order).
Brian Paul [Fri, 28 Aug 2009 14:55:20 +0000 (08:55 -0600)]
progs/util: minor updates to glutskel.c
Brian Paul [Thu, 27 Aug 2009 20:34:21 +0000 (14:34 -0600)]
intel: use more efficient loop over buffers
Brian Paul [Thu, 27 Aug 2009 20:47:24 +0000 (14:47 -0600)]
mesa: avoid redundant viewport changes in meta code
José Fonseca [Sun, 30 Aug 2009 11:36:03 +0000 (12:36 +0100)]
llvmpipe: Texture cache in 4 ubytes instead of 4 floats.
This is more a short term experiment than a long term commitment, as we'll
need to support higher precision textures too, as this will all be
be replaced by runtime generated code.
With this change most Mesa demos fps increased around 10%. Not a huge
improvement, but not a negligible one either.
José Fonseca [Sun, 30 Aug 2009 11:10:24 +0000 (12:10 +0100)]
llvmpipe: Use util_format_read_4f to read texture tiles.
José Fonseca [Sun, 30 Aug 2009 11:03:49 +0000 (12:03 +0100)]
llvmpipe: Texture cache is read-only. No need to flush.
José Fonseca [Sun, 30 Aug 2009 11:02:36 +0000 (12:02 +0100)]
util: Auto generate pixel format accessor functions from
This has several advantages over the u_
- not hand written
- no intermediate memcpy of raw pixels
- supports 4 ubytes in addition to floats
- no need to pass a pipe_transfer
It also has (hopefully temporary) limitations:
- no support for YUV
- no support for SRGB
José Fonseca [Sat, 29 Aug 2009 19:34:01 +0000 (20:34 +0100)]
llvmpipe: Eliminate internal pipe_buffer_map/unmap usage.
José Fonseca [Sat, 29 Aug 2009 19:33:28 +0000 (20:33 +0100)]
xlib: Implement lp_winsys::destroy.
Michel Dänzer [Sun, 30 Aug 2009 11:06:18 +0000 (13:06 +0200)]
Merge branch 'mesa_7_5_branch'
Conflicts:
src/glx/x11/glxcmds.c
Michel Dänzer [Sun, 30 Aug 2009 10:43:37 +0000 (12:43 +0200)]
glx/x11: Fix glXCreateGLXPixmap for direct rendering.
Fixes progs/xdemos/glxpixmap modified to use direct rendering.
Eric Anholt [Sat, 29 Aug 2009 20:23:58 +0000 (13:23 -0700)]
i965: Fix segfault with ARB_oq CheckQuery when results are already fetched.
Eric Anholt [Sat, 29 Aug 2009 20:21:07 +0000 (13:21 -0700)]
i965: Support PROGRAM_ENV_PARAMs in brw_vs_emit.c
José Fonseca [Sat, 29 Aug 2009 19:07:53 +0000 (20:07 +0100)]
llvmpipe: List lp_buffer.c in the Makefile.
José Fonseca [Sat, 29 Aug 2009 19:02:47 +0000 (20:02 +0100)]
xlib: Implement llvmpipe lp_winsys interface.
José Fonseca [Sat, 29 Aug 2009 19:02:25 +0000 (20:02 +0100)]
llvmpipe: Define an winsys for LLVM. Drop pipe_winsys
lp_winsys will eventually be unified with softpipe's eventually, but we
are free to move quicker since we don't have the myriad of users yet.
Will provide a pipe_winsys adaptor from Keith's softpipe-private-winsys
soon.
Pauli Nieminen [Sat, 29 Aug 2009 18:04:40 +0000 (21:04 +0300)]
r300: Disable threshold register for KMS.
Kernel side doesn't have required register in safe list so can't send it kernel.
Pauli Nieminen [Sat, 29 Aug 2009 18:00:21 +0000 (21:00 +0300)]
r300: Swtcl prediction was still missing scissors.
All that state stuff should really be in state atoms :/
Pauli Nieminen [Sat, 29 Aug 2009 15:38:30 +0000 (18:38 +0300)]
r300: Add missing pre_emit_count to swtcl state size prediction.
Christoph Bumiller [Sat, 29 Aug 2009 15:22:12 +0000 (17:22 +0200)]
nv50: set provoking vertex state
José Fonseca [Sat, 29 Aug 2009 08:18:19 +0000 (09:18 +0100)]
xlib: Update llvmpipe integration for changes in
José Fonseca [Sat, 29 Aug 2009 08:17:51 +0000 (09:17 +0100)]
llvmpipe: Update for changes in master.
José Fonseca [Sat, 29 Aug 2009 08:16:02 +0000 (09:16 +0100)]
mesa: Update sconscript for new ARB/FP assembler.
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.
José Fonseca [Tue, 25 Aug 2009 07:05:31 +0000 (08:05 +0100)]
llvmpipe: Isolate sampling from TGSI translation.
José Fonseca [Tue, 25 Aug 2009 05:40:22 +0000 (06:40 +0100)]
llvmpipe: Better structure dereference naming.
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.
José Fonseca [Mon, 24 Aug 2009 13:56:51 +0000 (14:56 +0100)]
llvmpipe: Fix build.
José Fonseca [Sun, 23 Aug 2009 13:25:31 +0000 (14:25 +0100)]
llvmpipe: Merge all pixel format related files.
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.
José Fonseca [Sun, 23 Aug 2009 06:55:29 +0000 (07:55 +0100)]
llvmpipe: Pre-declare fetch_texel.
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.
José Fonseca [Sun, 23 Aug 2009 05:35:09 +0000 (06:35 +0100)]
llvmpipe: Pass fragment context to generated function in a single structure.
José Fonseca [Sun, 23 Aug 2009 05:18:28 +0000 (06:18 +0100)]
llvmpipe: Structure manipulation helpers.
José Fonseca [Sun, 23 Aug 2009 04:52:20 +0000 (05:52 +0100)]
llvmpipe: Centralize the C <-> JIT interfaces in one place.
José Fonseca [Sat, 22 Aug 2009 22:30:28 +0000 (23:30 +0100)]
llvmpipe: Drop blend derived state.
Already included in the fragment shader.
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.
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.
José Fonseca [Sat, 22 Aug 2009 21:30:03 +0000 (22:30 +0100)]
llvmpipe: s/uni/scalar/.
More obvious name.
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...
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.
José Fonseca [Sat, 22 Aug 2009 15:04:21 +0000 (16:04 +0100)]
llvmpipe: Avoid duplicate clamping when converting between types.
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.
José Fonseca [Sat, 22 Aug 2009 11:37:12 +0000 (12:37 +0100)]
llvmpipe: Get conversions working correctly for all integer types.
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.
José Fonseca [Fri, 21 Aug 2009 12:49:10 +0000 (13:49 +0100)]
llvmpipe: Early depth testing.
José Fonseca [Fri, 21 Aug 2009 12:42:19 +0000 (13:42 +0100)]
llvmpipe: Disassemble beyond referred code beyond the RET instruction.
José Fonseca [Fri, 21 Aug 2009 09:57:48 +0000 (10:57 +0100)]
llvmpipe: Split control flow function declarations and notes.
José Fonseca [Fri, 21 Aug 2009 09:27:46 +0000 (10:27 +0100)]
llvmpipe: Back port recent softpipe-opt improvements from Keith.
José Fonseca [Fri, 21 Aug 2009 08:51:44 +0000 (09:51 +0100)]
llvmpipe: Don't limit the number of tiles in the cache.
José Fonseca [Fri, 21 Aug 2009 08:00:47 +0000 (09:00 +0100)]
llvmpipe: Clean dead tile cache code.
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.
José Fonseca [Fri, 21 Aug 2009 07:19:00 +0000 (08:19 +0100)]
llvmpipe: Start hiding llvmpipe_cached_tile.
José Fonseca [Fri, 21 Aug 2009 06:58:56 +0000 (07:58 +0100)]
llvmpipe: Drop depth/stencil support from tile cache.
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.
José Fonseca [Fri, 21 Aug 2009 06:45:32 +0000 (07:45 +0100)]
llvmpipe: Update texture block from format.
José Fonseca [Fri, 21 Aug 2009 06:43:49 +0000 (07:43 +0100)]
llvmpipe: Depth test to LLVM IR translation.
José Fonseca [Fri, 21 Aug 2009 06:42:29 +0000 (07:42 +0100)]
llvmpipe: Centralize mask update logic.
José Fonseca [Fri, 21 Aug 2009 06:35:49 +0000 (07:35 +0100)]
llvmpipe: Clamped float to unsigned norm via mantissa manipulation.
José Fonseca [Fri, 21 Aug 2009 06:34:15 +0000 (07:34 +0100)]
llvmpipe: Several fixes of the conversion test.
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.
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...
José Fonseca [Wed, 19 Aug 2009 19:42:50 +0000 (20:42 +0100)]
llvmpipe: Code generate alpha testing and append to generated fragment shader.
José Fonseca [Wed, 19 Aug 2009 19:39:51 +0000 (20:39 +0100)]
util: Dump PIPE_FUNC_x value names.
Brian Paul [Wed, 19 Aug 2009 19:23:02 +0000 (13:23 -0600)]
llvmpipe: use the udis86 lib to print the x86 assembly code
Brian Paul [Wed, 19 Aug 2009 19:14:59 +0000 (13:14 -0600)]
llvmpipe: frag shader comments
Brian Paul [Wed, 19 Aug 2009 19:14:40 +0000 (13:14 -0600)]
llvmpipe: blend comments
Brian Paul [Wed, 19 Aug 2009 19:14:15 +0000 (13:14 -0600)]
llvmpipe: comments about blend generator
Brian Paul [Wed, 19 Aug 2009 19:13:49 +0000 (13:13 -0600)]
llvmpipe: basic comments
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.
José Fonseca [Wed, 19 Aug 2009 17:47:12 +0000 (18:47 +0100)]
llvmpipe: Refer my udis86 branch which decodes more opcodes.
José Fonseca [Wed, 19 Aug 2009 16:58:04 +0000 (17:58 +0100)]
llvmpipe: Code generate the position interpolation.
José Fonseca [Wed, 19 Aug 2009 16:57:07 +0000 (17:57 +0100)]
llvmpipe: Simpler variant of lp_build_broadcast_scalar.
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.
José Fonseca [Wed, 19 Aug 2009 08:34:53 +0000 (09:34 +0100)]
llvmpipe: Implement saturation.
José Fonseca [Wed, 19 Aug 2009 08:24:20 +0000 (09:24 +0100)]
llvmpipe: Put color/depth directly into the quad structure.
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.
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.
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.
Brian Paul [Tue, 18 Aug 2009 21:18:50 +0000 (15:18 -0600)]
llvmpipe: updated Makefile C_SOURCES
Brian Paul [Tue, 18 Aug 2009 21:18:33 +0000 (15:18 -0600)]
llvmpipe: add missing break in xlib _init()
José Fonseca [Tue, 18 Aug 2009 20:08:38 +0000 (21:08 +0100)]
llvmpipe: Allow to build without udis86.
José Fonseca [Tue, 18 Aug 2009 19:58:30 +0000 (20:58 +0100)]
llvmpipe: Drop the FETCH/STORE macros.
José Fonseca [Tue, 18 Aug 2009 19:23:35 +0000 (20:23 +0100)]
llvmpipe: Debug helper function to name llvm intermediate values.
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.
José Fonseca [Tue, 18 Aug 2009 18:20:48 +0000 (19:20 +0100)]
llvmpipe: Document that llvm 2.5 is expected.
José Fonseca [Tue, 18 Aug 2009 16:36:13 +0000 (17:36 +0100)]
llvmpipe: Briefly describe current status.
José Fonseca [Tue, 18 Aug 2009 13:18:54 +0000 (14:18 +0100)]
llvmpipe: Blend in place.
José Fonseca [Tue, 18 Aug 2009 12:30:04 +0000 (13:30 +0100)]
llvmpipe: Code generate logic ops.
José Fonseca [Tue, 18 Aug 2009 11:57:16 +0000 (12:57 +0100)]
llvmpipe: Rasterize the quads according to what the blend function expects.
José Fonseca [Tue, 18 Aug 2009 10:41:01 +0000 (11:41 +0100)]
llvmpipe: Tile in SoA format identical to the blender function output.
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.
José Fonseca [Mon, 17 Aug 2009 07:10:38 +0000 (08:10 +0100)]
llvmpipe: Implement LIT.
José Fonseca [Mon, 17 Aug 2009 06:57:28 +0000 (07:57 +0100)]
llvmpipe: Move lp_build_select to lp_bld_logic.[ch].
José Fonseca [Mon, 17 Aug 2009 06:51:54 +0000 (07:51 +0100)]
llvmpipe: Implement comparison opcodes.
José Fonseca [Mon, 17 Aug 2009 06:51:16 +0000 (07:51 +0100)]
llvmpipe: Fix translation of KIL with repeated swizzles.