Brian Paul [Wed, 9 Dec 2009 19:28:54 +0000 (12:28 -0700)]
llvmpipe: use new lp_setup_get_current_bins() function
This stub function will interface to the queue system...
Brian Paul [Wed, 9 Dec 2009 19:22:12 +0000 (12:22 -0700)]
llvmpipe: more bin functions for create/destroy/queries
José Fonseca [Tue, 8 Dec 2009 08:02:49 +0000 (08:02 +0000)]
llvmpipe: Use number of CPUs as default number of threads.
Also bump MAX_THREADS to 8.
Brian Paul [Tue, 8 Dec 2009 01:18:37 +0000 (18:18 -0700)]
llvmpipe: remove some left-over debug code
Brian Paul [Tue, 8 Dec 2009 01:01:12 +0000 (18:01 -0700)]
llvmpipe: implement threaded rasterization
The LP_NUM_THREADS env var controls how many threads are created.
The default (and max) is 4, for now.
If LP_NUM_THREADS = 0, threading is not used.
Brian Paul [Tue, 8 Dec 2009 00:58:46 +0000 (17:58 -0700)]
gallium: added pipe_semaphore and related code
Brian Paul [Tue, 8 Dec 2009 00:02:17 +0000 (17:02 -0700)]
llvmpipe: repartition lp_rasterizer state for threading
Some of the state is per-thread. Put that state in new lp_rasterizer_task
struct.
Brian Paul [Mon, 7 Dec 2009 22:31:50 +0000 (15:31 -0700)]
llvmpipe: use bin iteration functions when rasterizing bins
Brian Paul [Tue, 8 Dec 2009 01:04:31 +0000 (18:04 -0700)]
llvmpipe: introduce mutex and bin iteration functions
Brian Paul [Fri, 4 Dec 2009 22:59:25 +0000 (15:59 -0700)]
llvmpipe: still more bin code reorganization
Move tiles_x,y fields from setup state into bin state.
Move more bin-adding commands into lp_bin.[ch].
Brian Paul [Fri, 4 Dec 2009 22:46:37 +0000 (15:46 -0700)]
llvmpipe: remove dead code left over from a previous commit
Brian Paul [Fri, 4 Dec 2009 22:31:09 +0000 (15:31 -0700)]
llvmpipe: reorganization of binning data structions and funtions
New lp_bins struct contains all bin information.
More move bin-related code into lp_bin.[ch]
Use new/updated bin-access functions to hide implementation details.
The result is more/cleaner separation between the setup and rast components.
This will make double-buffering of the bins easier, etc.
Brian Paul [Fri, 4 Dec 2009 21:47:40 +0000 (14:47 -0700)]
llvmpipe: move lp_rasterize_bin() into lp_rast.c
First step of moving bin rasterization/execution code out of lp_setup.c
Brian Paul [Fri, 4 Dec 2009 21:22:08 +0000 (14:22 -0700)]
llvmpipe: simplify framebuffer state code
Brian Paul [Fri, 4 Dec 2009 21:11:25 +0000 (14:11 -0700)]
llvmpipe: use LP_DBG() macro everywhere
Brian Paul [Fri, 4 Dec 2009 20:53:28 +0000 (13:53 -0700)]
llvmpipe: fix-up polygon culling/winding
Brian Paul [Fri, 4 Dec 2009 20:01:03 +0000 (13:01 -0700)]
llvmpipe: add missing sources to Makefile
Brian Paul [Fri, 4 Dec 2009 19:59:34 +0000 (12:59 -0700)]
llvmpipe: comments and minor clean-ups
Brian Paul [Fri, 4 Dec 2009 19:54:37 +0000 (12:54 -0700)]
llvmpipe: move bin-related structures and functions into new lp_bin.[ch]
And put lp_ prefixes on some functions.
Brian Paul [Fri, 4 Dec 2009 18:58:24 +0000 (11:58 -0700)]
llvmpipe: remove lp_rast_triangle::oneoverarea field
Makes lp_rast_triangle a little smaller (now 280 bytes on a 32-bit system).
Brian Paul [Fri, 4 Dec 2009 18:50:40 +0000 (11:50 -0700)]
llvmpipe: bin state-change commands
Previously, each triangle had a pointer to the state to use for shading.
Now we insert state-change commands into the bins. When we execute one
of those commands we just update a 'current state' pointer and use that
pointer when calling the jit shader.
When inserting state-change commands into a bin we check if the previous
command was also a state-change command and simply replace it. This
avoids accumulating useless/redundant state-change commands.
Brian Paul [Fri, 4 Dec 2009 17:41:38 +0000 (10:41 -0700)]
llvmpipe: struct cmd_bin
Just introducing a new structure to represent a per-tile bin.
Brian Paul [Fri, 4 Dec 2009 16:19:09 +0000 (09:19 -0700)]
llvmpipe: fix typo, whitespace
Brian Paul [Fri, 4 Dec 2009 16:14:40 +0000 (09:14 -0700)]
llvmpipe: dynamic allocation of triangle a0/dadx/dady arrays
Much less memory per triangle now.
Brian Paul [Fri, 4 Dec 2009 00:28:48 +0000 (17:28 -0700)]
llvmpipe: comments regarding lp_rast_triangle
Brian Paul [Fri, 4 Dec 2009 00:28:02 +0000 (17:28 -0700)]
llvmpipe: comment about blend color
Brian Paul [Fri, 4 Dec 2009 00:27:37 +0000 (17:27 -0700)]
llvmpipe: comments
Brian Paul [Fri, 4 Dec 2009 00:27:10 +0000 (17:27 -0700)]
llvmpipe: new comment in do_triangle_ccw()
Brian Paul [Fri, 4 Dec 2009 00:00:22 +0000 (17:00 -0700)]
llvmpipe: fix incorrect array indexing when saving blend color
Brian Paul [Thu, 3 Dec 2009 23:23:52 +0000 (16:23 -0700)]
llvmpipe: comments, clean-ups in lp_rast_priv.h
Brian Paul [Thu, 3 Dec 2009 23:05:12 +0000 (16:05 -0700)]
llvmpipe: checkpoint some initial state binning code
Brian Paul [Thu, 3 Dec 2009 21:57:44 +0000 (14:57 -0700)]
llvmpipe: comments and a stub for lp_rast_set_state()
Brian Paul [Thu, 3 Dec 2009 21:57:13 +0000 (14:57 -0700)]
llvmpipe: comments
Brian Paul [Thu, 3 Dec 2009 21:25:46 +0000 (14:25 -0700)]
llvmpipe: set LP_SETUP_NEW_FS in lp_setup_set_fs()
Fixes progs/trivial/tri-blend.c, but I think we're just getting
lucky in this case.
Brian Paul [Thu, 3 Dec 2009 21:25:08 +0000 (14:25 -0700)]
llvmpipe: more debug info
Brian Paul [Thu, 3 Dec 2009 21:13:22 +0000 (14:13 -0700)]
llvmpipe: fix blend debug strings
Brian Paul [Thu, 3 Dec 2009 18:43:19 +0000 (11:43 -0700)]
progs/trivial: readback and print Z value in tri-z-eq.c
Brian Paul [Thu, 3 Dec 2009 18:41:45 +0000 (11:41 -0700)]
llvmpipe: quick & dirty implementation of lp_rast_store_zstencil()
This allows us to do a glReadPixels(GL_DEPTH_COMPONENT) to see what's
in the depth buffer to help debugging.
Brian Paul [Thu, 3 Dec 2009 18:40:49 +0000 (11:40 -0700)]
llvmpipe: additional comment about float->uint conversion
Brian Paul [Thu, 3 Dec 2009 18:39:40 +0000 (11:39 -0700)]
llvmpipe: comments
Brian Paul [Wed, 2 Dec 2009 22:13:45 +0000 (15:13 -0700)]
llvmpipe: execute shaders on 4x4 blocks instead of 8x2
This matches the convention used by the recursive rasterizer.
Also fixed assorted typos, comments, etc.
Now tri-z.c, gears.c, etc look basically right but there's still some
cracks in triangle rasterization.
Brian Paul [Wed, 2 Dec 2009 21:55:48 +0000 (14:55 -0700)]
llvmpipe: whitespace for readability
Brian Paul [Tue, 1 Dec 2009 23:24:57 +0000 (16:24 -0700)]
llvmpipe: added assertions
And remove unused BLOCKSIZE.
Brian Paul [Tue, 1 Dec 2009 23:24:16 +0000 (16:24 -0700)]
llvmpipe: simplify mask computation
Make this a little easier to understand.
Brian Paul [Tue, 1 Dec 2009 22:51:07 +0000 (15:51 -0700)]
llvmpipe: replace shifts with multiplies to be clearer
The compiler will still do the multiplies with shifts.
It's just a bit easier to follow the logic with multiplies.
Brian Paul [Tue, 1 Dec 2009 23:00:04 +0000 (16:00 -0700)]
llvmpipe: make nr_blocks unsigned
Brian Paul [Tue, 1 Dec 2009 22:43:01 +0000 (15:43 -0700)]
llvmpipe: comments, reformatting and assertions in tri rast code
Brian Paul [Mon, 30 Nov 2009 22:31:30 +0000 (15:31 -0700)]
progs/trivial: added two simple texture tests
One draws a series of quads with different textures.
The other draws with one texture which is changed with glTexSubImage2D().
Brian Paul [Mon, 30 Nov 2009 21:02:01 +0000 (14:02 -0700)]
llvmpipe: add a bunch of comments
Brian Paul [Mon, 30 Nov 2009 21:01:31 +0000 (14:01 -0700)]
llvmpipe: minor refactoring of bin rasterization code
Brian Paul [Mon, 30 Nov 2009 17:43:23 +0000 (10:43 -0700)]
llvmpipe: update C_SOURCES
Keith Whitwell [Thu, 22 Oct 2009 16:21:37 +0000 (17:21 +0100)]
llvmpipe: fix the worst of the depth regressions since switch to 4x4
Keith Whitwell [Wed, 21 Oct 2009 14:21:11 +0000 (15:21 +0100)]
llvmpipe: remove one of two definitions of TILESIZE
Keith Whitwell [Wed, 21 Oct 2009 13:35:54 +0000 (14:35 +0100)]
llvmpipe: remove dead code
Keith Whitwell [Tue, 20 Oct 2009 09:11:52 +0000 (10:11 +0100)]
llvmpipe: minor opts to setup_tri
Keith Whitwell [Tue, 20 Oct 2009 08:44:23 +0000 (09:44 +0100)]
llvmpipe: move block list into rast struct
Keith Whitwell [Tue, 20 Oct 2009 07:56:58 +0000 (08:56 +0100)]
llvmpipe: build list of 4x4 blocks to be shaded
Keith Whitwell [Tue, 20 Oct 2009 02:38:07 +0000 (03:38 +0100)]
llvmpipe: recursive rasterization within a tile
Keith Whitwell [Tue, 20 Oct 2009 02:17:17 +0000 (03:17 +0100)]
llvmpipe: pass mask as a linear encoding of the 4x4 block
Keith Whitwell [Tue, 20 Oct 2009 01:46:00 +0000 (02:46 +0100)]
llvmpipe: precalculate some offsets
Keith Whitwell [Mon, 19 Oct 2009 16:10:48 +0000 (17:10 +0100)]
llvmpipe: remove a leftover 8x2 usage
Keith Whitwell [Mon, 19 Oct 2009 15:41:27 +0000 (16:41 +0100)]
llvmpipe: calculate masks in format desired by shader
Also remove branches calculating masks for quads.
Keith Whitwell [Mon, 19 Oct 2009 13:55:05 +0000 (14:55 +0100)]
llvmpipe: pre-multiply some constants by fixed_one
José Fonseca [Mon, 19 Oct 2009 13:02:01 +0000 (14:02 +0100)]
llvmpipe: Reshape the shader input from 8x2 to 4x4.
Incorrect rendering until the interpolation code generation is updated.
Keith Whitwell [Mon, 19 Oct 2009 11:24:18 +0000 (12:24 +0100)]
llvmpipe: fixed-point rasterization
José Fonseca [Mon, 19 Oct 2009 12:14:33 +0000 (13:14 +0100)]
llvmpipe: Reset the pointer to stored jit context.
José Fonseca [Mon, 19 Oct 2009 10:53:22 +0000 (11:53 +0100)]
llvmpipe: Allocate the blend color from the data store, and ensure it's aligned.
Keith Whitwell [Mon, 19 Oct 2009 10:29:05 +0000 (11:29 +0100)]
llvmpipe: correctly scale top/left fill adjustments
Was overdoing it previously.
Keith Whitwell [Mon, 19 Oct 2009 10:23:43 +0000 (11:23 +0100)]
llvmpipe: fix typo correcting for fill convention
Adjustments for top-left fill convention were being lost.
José Fonseca [Sun, 18 Oct 2009 10:57:43 +0000 (11:57 +0100)]
llvmpipe: Maintain a copy of the shader constants to prevent clobbering.
José Fonseca [Sat, 10 Oct 2009 17:44:46 +0000 (18:44 +0100)]
llvmpipe: Only invoke the shader if necessary.
José Fonseca [Fri, 9 Oct 2009 18:17:30 +0000 (19:17 +0100)]
llvmpipe: Additional checks for binner block lists.
José Fonseca [Fri, 9 Oct 2009 18:16:36 +0000 (19:16 +0100)]
llvmpipe: Use framebuffer coords consistently.
José Fonseca [Fri, 9 Oct 2009 16:14:11 +0000 (17:14 +0100)]
llvmpipe: Fix type in tri bounding box check.
Keith Whitwell [Fri, 9 Oct 2009 15:59:24 +0000 (16:59 +0100)]
llvmpipe: fill in tri min/max values
José Fonseca [Fri, 9 Oct 2009 15:50:32 +0000 (16:50 +0100)]
llvmpipe: Remove partial tile override.
José Fonseca [Fri, 9 Oct 2009 15:21:25 +0000 (16:21 +0100)]
llvmpipe: Undo debug override.
Keith Whitwell [Fri, 9 Oct 2009 15:19:00 +0000 (16:19 +0100)]
llvmpipe: properly clip tile writes
José Fonseca [Fri, 9 Oct 2009 15:18:19 +0000 (16:18 +0100)]
llvmpipe: Pass framebuffer coords to shader.
José Fonseca [Fri, 9 Oct 2009 15:18:03 +0000 (16:18 +0100)]
llvmpipe: Tell setup shader inputs.
Keith Whitwell [Fri, 9 Oct 2009 15:05:26 +0000 (16:05 +0100)]
llvmpipe: correct binning maths for iterating over whole tiles
José Fonseca [Fri, 9 Oct 2009 14:52:18 +0000 (15:52 +0100)]
llvmpipe: Get jit_context/jit_function across the rasterizer.
Keith Whitwell [Fri, 9 Oct 2009 14:29:10 +0000 (15:29 +0100)]
llvmpipe: set block count/used values back to zero on reset
Keith Whitwell [Fri, 9 Oct 2009 14:10:15 +0000 (15:10 +0100)]
llvmpipe: just bin whole tiles for now
Keith Whitwell [Fri, 9 Oct 2009 14:07:18 +0000 (15:07 +0100)]
llvmpipe: always call begin_binning on transition to active state
Keith Whitwell [Fri, 9 Oct 2009 13:59:35 +0000 (14:59 +0100)]
llvmpipe: add LP_DEBUG env var
Keith Whitwell [Fri, 9 Oct 2009 13:36:41 +0000 (14:36 +0100)]
llvmpipe: initialize setup data store
Keith Whitwell [Fri, 9 Oct 2009 13:33:57 +0000 (14:33 +0100)]
llvmpipe: initialize setup line/tri/point funcs
José Fonseca [Fri, 9 Oct 2009 13:30:25 +0000 (14:30 +0100)]
llvmpipe: Put jit_context in store.
Keith Whitwell [Fri, 9 Oct 2009 13:29:25 +0000 (14:29 +0100)]
llvmpipe: trivial/clear works
Keith Whitwell [Fri, 9 Oct 2009 13:07:25 +0000 (14:07 +0100)]
llvmpipe: more debug
José Fonseca [Fri, 9 Oct 2009 13:03:11 +0000 (14:03 +0100)]
llvmpipe: Replace util_pack_color with straight float_to_ubyte.
Keith Whitwell [Fri, 9 Oct 2009 13:02:39 +0000 (14:02 +0100)]
llvmpipe: debug, crash fixes
Keith Whitwell [Fri, 9 Oct 2009 12:55:04 +0000 (13:55 +0100)]
llvmpipe: fix crash on init
Keith Whitwell [Fri, 9 Oct 2009 12:53:14 +0000 (13:53 +0100)]
llvmpipe: fix a couple of warnings
José Fonseca [Fri, 9 Oct 2009 12:44:24 +0000 (13:44 +0100)]
llvmpipe: Add stub lp_setup_is_texture_referenced.
José Fonseca [Fri, 9 Oct 2009 12:41:33 +0000 (13:41 +0100)]
llvmpipe: Pass state to setup.
José Fonseca [Fri, 9 Oct 2009 12:22:42 +0000 (13:22 +0100)]
util: Force ESI register for cpuid's ebx result.
Fixes a segfault and better code. Unfortunately using an arbitrary
register ("=r") causes the gcc to abort when the code is optimized saying
it can't satisfy the constraint. Setting seems to do the trick.
José Fonseca [Fri, 9 Oct 2009 10:29:33 +0000 (11:29 +0100)]
llvmpipe: Eliminate constant mapping/unmapping.
Keith Whitwell [Fri, 9 Oct 2009 11:26:49 +0000 (12:26 +0100)]
llvmpipe: remove dead code