Brian Paul [Wed, 13 Jan 2010 20:54:46 +0000 (13:54 -0700)]
llvmpipe: add scene texture referencing code
Brian Paul [Wed, 13 Jan 2010 20:43:58 +0000 (13:43 -0700)]
llvmpipe: added scene functions for texture reference counting
When a texture is used in the scene we add it to a list of texture
references. The lp_scene_is_textured_referenced() function tells
us if a texture is referenced by the scene.
Brian Paul [Wed, 13 Jan 2010 17:58:36 +0000 (10:58 -0700)]
llvmpipe: comments
Brian Paul [Wed, 13 Jan 2010 17:58:13 +0000 (10:58 -0700)]
llvmpipe: comments
Brian Paul [Wed, 13 Jan 2010 17:57:44 +0000 (10:57 -0700)]
llvmpipe: added llvmpipe_texture_const()
Brian Paul [Wed, 13 Jan 2010 17:22:02 +0000 (10:22 -0700)]
llvmpipe: minor comment upgrades
José Fonseca [Wed, 13 Jan 2010 22:07:24 +0000 (22:07 +0000)]
llvmpipe: Opaque shader implies complete colormask too.
José Fonseca [Wed, 13 Jan 2010 21:51:47 +0000 (21:51 +0000)]
llvmpipe: Reset the bin when shading a whole tile with an opaque shader.
Keith Whitwell [Wed, 13 Jan 2010 20:14:04 +0000 (20:14 +0000)]
llvmpipe: add bin debugger
Adjust definition of empty_bin according to what's actually in empty
bins. We often have a state packet before/after load commands.
Still need to do something about the fence packets.
Keith Whitwell [Wed, 13 Jan 2010 16:52:17 +0000 (16:52 +0000)]
llvmpipe: implement lp_rast_load_zstencil
Load zbuffer contents for binned scenes that don't start with a clear
and which have a bound zbuffer.
Brian Paul [Wed, 13 Jan 2010 16:32:10 +0000 (09:32 -0700)]
llvmpipe: added debug warning
Brian Paul [Wed, 13 Jan 2010 16:31:36 +0000 (09:31 -0700)]
llvmpipe: comments and LLVMValueRef naming
Brian Paul [Wed, 13 Jan 2010 16:29:43 +0000 (09:29 -0700)]
llvmpipe: tweak subpixel_snap() arithmetic
This adjustment fixes some rasterization differences between llvmpipe
and softpipe (and other renderers).
Keith Whitwell [Wed, 13 Jan 2010 16:29:39 +0000 (16:29 +0000)]
llvmpipe: improve empty-bin test further
Remove unused param, add comments. Thanks to Brian for review.
Keith Whitwell [Wed, 13 Jan 2010 15:49:24 +0000 (15:49 +0000)]
llvmpipe: improve empty-bin test
We emit at most two clear packets (color and z respectively).
Keith Whitwell [Wed, 13 Jan 2010 14:41:02 +0000 (14:41 +0000)]
llvmpipe: quick hack to short-circuit empty bins
Brian Paul [Wed, 13 Jan 2010 00:12:49 +0000 (17:12 -0700)]
llvmpipe: fix indentation, comment typo
Brian Paul [Wed, 13 Jan 2010 00:12:07 +0000 (17:12 -0700)]
llvmpipe: debug checks: make sure scene is empty at key points
Brian Paul [Wed, 13 Jan 2010 00:11:40 +0000 (17:11 -0700)]
llvmpipe: assert that we're putting data into a valid bin
Brian Paul [Wed, 13 Jan 2010 00:08:07 +0000 (17:08 -0700)]
llvmpipe: clamp maxx,maxy to framebuffer size (in terms of tiles)
In some corner cases the right-most / bottom-most vertex can be
right on the edge of the framebuffer. Because the maxx, maxy vals
are computed with a series of float/int, pixel/tile transformations
we can end up with maxx >= scene->x_tiles or maxy >= scene->y_tiles.
This leads to putting data into bins that never get processed, or
reset. This becomes stale data that can lead to segfaults.
Clamping fixes this.
Brian Paul [Wed, 13 Jan 2010 00:06:19 +0000 (17:06 -0700)]
llvmpipe: added lp_scene_is_empty()
Brian Paul [Tue, 12 Jan 2010 20:01:32 +0000 (13:01 -0700)]
llvmpipe: silence unused var warnings
Brian Paul [Tue, 12 Jan 2010 17:11:36 +0000 (10:11 -0700)]
llvmpipe: remove unused #define
Brian Paul [Mon, 11 Jan 2010 22:30:54 +0000 (15:30 -0700)]
llvmpipe: disable the all in/out test code for now
It's still faster not to try to special case the "all pixels are
known to be inside the triangle" case.
Brian Paul [Mon, 11 Jan 2010 22:30:17 +0000 (15:30 -0700)]
llvmpipe: move, update comments
Brian Paul [Mon, 11 Jan 2010 20:16:00 +0000 (13:16 -0700)]
llvmpipe: refactor generate_fragment() code
This will make it easier to generate multiple versions of the fragment
code per variant.
Brian Paul [Mon, 11 Jan 2010 19:59:36 +0000 (12:59 -0700)]
llvmpipe: do the all-in test on the scalar c0 instead of vector c0
This still isn't faster, but committing it for posterity.
Keith Whitwell [Mon, 11 Jan 2010 12:06:51 +0000 (12:06 +0000)]
llvmpipe: force constant interpolation of flatshade colors
Nice speedup for gears.
Keith Whitwell [Mon, 11 Jan 2010 12:02:53 +0000 (12:02 +0000)]
st/mesa: early exit on error path
Can't rely on asserts having any effect on flowcontrol for release
builds.
Keith Whitwell [Fri, 8 Jan 2010 13:55:32 +0000 (13:55 +0000)]
llvmpipe: remove opencoded constant
Keith Whitwell [Wed, 6 Jan 2010 18:41:42 +0000 (18:41 +0000)]
llvmpipe: remove scissor cliprect derived state
Was previously calculating the intersection of the scissor rectangle
and the framebuffer dimensions. Rendering is already restricted to
framebuffer dimensions by other means, so scissor testing (when
implemented) can just use the scissor state directly.
Keith Whitwell [Sun, 10 Jan 2010 17:22:09 +0000 (17:22 +0000)]
llvmpipe: initial mrt support
Non-mrt apps work, and the code looks correct, but not many mrt test apps
handy atm...
Brian Paul [Fri, 8 Jan 2010 21:49:34 +0000 (14:49 -0700)]
llvmpipe: optimize case when all four pixels are inside the triangle
When the incoming c0,c1,c2 values are equal to INT_MIN it means that
all pixels are inside the triangle. Thus we can skip the detailed
pixel inside/outside triangle tests. Use the new lp_build_if()/endif()
functions to generate the branching code.
The code is disabled ATM however because it's actually a little slower
than the original code. A little more tuning may fix that though...
Brian Paul [Fri, 8 Jan 2010 19:47:30 +0000 (12:47 -0700)]
llvmpipe: fix more if/else/endif design bugs
Brian Paul [Fri, 8 Jan 2010 18:32:36 +0000 (11:32 -0700)]
llvmpipe: move some fields to the private lp_build_flow_if struct
Brian Paul [Fri, 8 Jan 2010 18:20:38 +0000 (11:20 -0700)]
llvmpipe: free the phi array
Brian Paul [Fri, 8 Jan 2010 18:01:00 +0000 (11:01 -0700)]
llvmpipe: checkpoint if/else/endif contructs work
The LLVM IR looks correct now. Basic blocks are where they're supposed
to be and the Phi functions have the right (var,block) information.
José Fonseca [Fri, 8 Jan 2010 15:42:57 +0000 (15:42 +0000)]
Merge remote branch 'origin/master' into lp-binning
Conflicts:
src/gallium/auxiliary/util/u_surface.c
src/gallium/drivers/llvmpipe/Makefile
src/gallium/drivers/llvmpipe/SConscript
src/gallium/drivers/llvmpipe/lp_bld_arit.c
src/gallium/drivers/llvmpipe/lp_bld_flow.c
src/gallium/drivers/llvmpipe/lp_bld_interp.c
src/gallium/drivers/llvmpipe/lp_clear.c
src/gallium/drivers/llvmpipe/lp_context.c
src/gallium/drivers/llvmpipe/lp_context.h
src/gallium/drivers/llvmpipe/lp_draw_arrays.c
src/gallium/drivers/llvmpipe/lp_jit.c
src/gallium/drivers/llvmpipe/lp_jit.h
src/gallium/drivers/llvmpipe/lp_prim_vbuf.c
src/gallium/drivers/llvmpipe/lp_setup.c
src/gallium/drivers/llvmpipe/lp_setup_point.c
src/gallium/drivers/llvmpipe/lp_state.h
src/gallium/drivers/llvmpipe/lp_state_blend.c
src/gallium/drivers/llvmpipe/lp_state_derived.c
src/gallium/drivers/llvmpipe/lp_state_fs.c
src/gallium/drivers/llvmpipe/lp_state_sampler.c
src/gallium/drivers/llvmpipe/lp_state_surface.c
src/gallium/drivers/llvmpipe/lp_tex_cache.c
src/gallium/drivers/llvmpipe/lp_tex_cache.h
src/gallium/drivers/llvmpipe/lp_tex_sample.h
src/gallium/drivers/llvmpipe/lp_tile_cache.c
José Fonseca [Fri, 18 Dec 2009 22:40:33 +0000 (22:40 +0000)]
scons: Set the default windows platform to be windows userspace.
I thought I had done this ages ago.
Dan Nicholson [Fri, 8 Jan 2010 01:11:37 +0000 (17:11 -0800)]
mklib: Extract archives into temporary directories
When static libraries are created from other archives, objects are
extracted and then deleted when the static library is done. This can
race when there are multiple static libraries being created from the
same archives as with libmesa.a and libmesagallium.a.
Should fix this issue with parallel jobs:
make[5]: *** No rule to make target
> `../../../../../../src/mesa/libmesagallium.a', needed by
> `radeon_dri.so'. Stop
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reported-and-Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
Michal Krol [Fri, 8 Jan 2010 11:02:41 +0000 (12:02 +0100)]
tgsi: Cleanup dot-product opcodes in interpreter.
Francisco Jerez [Fri, 8 Jan 2010 03:42:28 +0000 (04:42 +0100)]
nv20: Fix build for the latest nouveau_class.h changes.
José Fonseca [Fri, 8 Jan 2010 01:25:27 +0000 (01:25 +0000)]
scons: Don't build xlib when dri is enabled.
Hopefully adddresses fdo 25828.
José Fonseca [Fri, 8 Jan 2010 01:15:17 +0000 (01:15 +0000)]
lvmpipe: Initialize all coordinates.
Fixes assertion failure with fp-incomplete-tex (fdo 24298).
José Fonseca [Fri, 8 Jan 2010 00:50:09 +0000 (00:50 +0000)]
scons: Output a meaningful message when xlib libGL.so can't be built.
José Fonseca [Fri, 8 Jan 2010 00:33:58 +0000 (00:33 +0000)]
scons: Use static glew library on Unices to avoid binary compatability issues
Fixes bug 25926.
Keith Whitwell [Thu, 26 Nov 2009 23:56:48 +0000 (23:56 +0000)]
st/xorg: remove unused xorg_exa_get_pixmap_handle function
Christoph Bumiller [Thu, 7 Jan 2010 20:17:13 +0000 (21:17 +0100)]
nv50: preallocate TEMPs written first time in a subroutine
Otherwise we risk overwriting them with temporary GPRs if
they're not used immediately after the CALL.
Christoph Bumiller [Thu, 7 Jan 2010 17:23:04 +0000 (18:23 +0100)]
nv50: handle TGSI_OPCODE_SAD,UADD
Christoph Bumiller [Thu, 7 Jan 2010 16:59:58 +0000 (17:59 +0100)]
nv50: handle TGSI_OPCODE_IMAX,IMIN,UMAX,UMIN
Christoph Bumiller [Thu, 7 Jan 2010 18:48:50 +0000 (19:48 +0100)]
nv50: handle integer SET operations
Christoph Bumiller [Thu, 7 Jan 2010 16:48:41 +0000 (17:48 +0100)]
nv50: handle TGSI_OPCODE_SHL,ISHR,USHR
Christoph Bumiller [Thu, 7 Jan 2010 18:45:44 +0000 (19:45 +0100)]
nv50: handle TGSI_OPCODE_F2I,F2U,I2F,U2F plus src mods
Eric Anholt [Tue, 5 Jan 2010 20:01:13 +0000 (12:01 -0800)]
intel: Remove leftover symlinks from DRI1 removal.
Brian Paul [Thu, 7 Jan 2010 18:18:04 +0000 (11:18 -0700)]
tgsi: add assertion to verify legal register file
This assertion fails with piglit glsl-vs-mov-after-deref test
because we're double freeing the memory. It seems there's some
confusion between what's placed in the hash table and what isn't.
Brian Paul [Thu, 7 Jan 2010 17:57:33 +0000 (10:57 -0700)]
tgsi: fix incorrectly placed braces, add more braces to be clear
Brian Paul [Thu, 7 Jan 2010 17:54:56 +0000 (10:54 -0700)]
tgsi: move register checking code before check_register_usage()
check_register_usage() frees the scan_register *reg data so we were
reading from freed memory. This fixes a valgrind error found with
piglit's glsl-vs-mov-after-deref test.
Brian Paul [Thu, 7 Jan 2010 16:43:08 +0000 (09:43 -0700)]
swrast: fix color masking for glAccum(GL_RETURN)
Should fix fdo bug 25837.
Brian Paul [Thu, 7 Jan 2010 16:40:08 +0000 (09:40 -0700)]
i810: use ColorMask[0]
Brian Paul [Thu, 7 Jan 2010 16:10:53 +0000 (09:10 -0700)]
progs/fp: increase buffer size to read larger shaders
Brian Paul [Thu, 7 Jan 2010 15:49:33 +0000 (08:49 -0700)]
gallium/util: remove useless assertions
Brian Paul [Thu, 7 Jan 2010 15:49:05 +0000 (08:49 -0700)]
gallium/util: update comment: s/src_pitch/src_stride
Brian Paul [Thu, 7 Jan 2010 15:48:25 +0000 (08:48 -0700)]
gallium/util: make src_y unsigned like the other x/y params
José Fonseca [Thu, 7 Jan 2010 16:16:45 +0000 (16:16 +0000)]
llvmpipe: Remove TGSI sampler pointers from JIT context too.
José Fonseca [Thu, 7 Jan 2010 15:59:41 +0000 (15:59 +0000)]
llvmpipe: Remove more loose ends of TGSI exec sampling.
Kristian Høgsberg [Thu, 7 Jan 2010 15:29:29 +0000 (10:29 -0500)]
configure: Fix matching for dri driver to actually work
The shell case statement obviously only evaluates the first matching
block. Thanks to Julien Cristau for spotting the bug.
Brian Paul [Thu, 7 Jan 2010 15:42:43 +0000 (08:42 -0700)]
makefile: added src/glsl/Makefile.template to tarball list
Keith Whitwell [Thu, 7 Jan 2010 11:19:38 +0000 (11:19 +0000)]
i965g: updates for draw retval
José Fonseca [Thu, 7 Jan 2010 15:34:52 +0000 (15:34 +0000)]
llvmpipe: Axe texture sampling code inherited from softpipe.
Was used only as a reference, since texture sampling is now code generated.
Already axed in the lp-binning branch too.
This fixes the llvmpipe build after recent sampling changes.
Michal Krol [Thu, 7 Jan 2010 12:48:41 +0000 (13:48 +0100)]
gallium: Fix texture sampling with explicit LOD in softpipe.
Michal Krol [Thu, 7 Jan 2010 11:48:10 +0000 (12:48 +0100)]
gallium: Pass per-element (not per-quad) LOD bias values down to texture sampler.
Michal Krol [Thu, 7 Jan 2010 10:10:24 +0000 (11:10 +0100)]
tgsi: Cleanup exec_tex().
Michal Krol [Wed, 6 Jan 2010 17:36:45 +0000 (18:36 +0100)]
svga: Fix fs key size computation and key comparison.
This also allows us to have texture_target
back as a bitfield and save us a few bytes.
Brian Paul [Thu, 7 Jan 2010 00:53:12 +0000 (17:53 -0700)]
llvmpipe: checkpoint commit of new if/else/endif flow control
Totally untested at this point. More work to do.
Brian Paul [Wed, 6 Jan 2010 21:11:54 +0000 (14:11 -0700)]
llvmpipe: more comments in flow builder code
Marek Olšák [Sat, 19 Dec 2009 22:55:34 +0000 (23:55 +0100)]
r300g: add back-face color VS outputs
Required for two-sided lighting. BTW we are approaching softpipe-level
quality. ;)
Marek Olšák [Fri, 25 Dec 2009 16:09:21 +0000 (17:09 +0100)]
r300g: fix SWTCL stream locations of texture coordinates
It might have caused hardlocks when TCL was bypassed, not sure.
Marek Olšák [Thu, 24 Dec 2009 13:23:57 +0000 (14:23 +0100)]
r300g: if no DS buffer is set, disable reading from and writing to it
It fixes another "Bad CS" issue.
Marek Olšák [Thu, 24 Dec 2009 15:05:44 +0000 (16:05 +0100)]
r300g: disable the rasterization of WPOS if it's unused by the FS
Marek Olšák [Thu, 24 Dec 2009 02:10:33 +0000 (03:10 +0100)]
r300g: add WPOS
Marek Olšák [Thu, 24 Dec 2009 12:31:27 +0000 (13:31 +0100)]
r300/compiler: add full viewport transformation support in WPOS codegen
Marek Olšák [Mon, 21 Dec 2009 01:10:34 +0000 (02:10 +0100)]
r300g: consolidate params
Marek Olšák [Thu, 24 Dec 2009 16:40:53 +0000 (17:40 +0100)]
r300g: fix outputting depth in the FS
Marek Olšák [Mon, 21 Dec 2009 00:38:45 +0000 (01:38 +0100)]
r300g: optimize blending by conditionally disabling reads from the colorbuffer
Marek Olšák [Sun, 20 Dec 2009 17:19:03 +0000 (18:19 +0100)]
r300g: optimize blending by discarding pixels that don't change the colorbuffer
Let's get some performance out of the blender.
Marek Olšák [Sun, 20 Dec 2009 03:28:30 +0000 (04:28 +0100)]
r300g: fix blending when SRC_ALPHA_SATURATE is used
Marek Olšák [Wed, 23 Dec 2009 08:59:30 +0000 (09:59 +0100)]
util/blitter: allow NULL CSOs to be saved
Keith Whitwell [Wed, 6 Jan 2010 18:05:08 +0000 (18:05 +0000)]
softpipe: fix draw return value
Brian Paul [Wed, 6 Jan 2010 17:36:51 +0000 (10:36 -0700)]
r300g: add missing is_anistropic param
Brian Paul [Mon, 4 Jan 2010 22:22:58 +0000 (15:22 -0700)]
llvmpipe: flow-control comments
Keith Whitwell [Wed, 6 Jan 2010 17:13:37 +0000 (17:13 +0000)]
llvmpipe: fix double free
Keith Whitwell [Wed, 6 Jan 2010 17:13:28 +0000 (17:13 +0000)]
llvmpipe: rename some functions
Keith Whitwell [Wed, 6 Jan 2010 17:00:26 +0000 (17:00 +0000)]
llvmpipe: remove dead code
Keith Whitwell [Wed, 6 Jan 2010 16:56:28 +0000 (16:56 +0000)]
llvmpipe: restrict header visibility
Brian Paul [Wed, 6 Jan 2010 16:54:34 +0000 (09:54 -0700)]
svga: make texture_target a ubyte, not a bitfield
gcc won't let us take the address of a bitfield in the svga_fs_key_size()
function.
Keith Whitwell [Wed, 6 Jan 2010 16:44:43 +0000 (16:44 +0000)]
llvmpipe: merge setup and draw vbuf submodules
The setup tiling engine is now plugged directly into the draw module
as a rendering backend.
Removed a couple of layering violations such that the setup code no
longer reaches out into the surrounding llvmpipe state or context.
Brian Paul [Wed, 6 Jan 2010 16:42:53 +0000 (09:42 -0700)]
gallium/docs: finish up description of pipe_rasterizer_state fields
Brian Paul [Wed, 6 Jan 2010 15:13:56 +0000 (08:13 -0700)]
configs: set INTEL_LIBS, INTEL_CFLAGS, etc
Michal Krol [Wed, 6 Jan 2010 15:07:49 +0000 (16:07 +0100)]
util: Fix format descriptor table entries.
Michal Krol [Wed, 6 Jan 2010 13:12:10 +0000 (14:12 +0100)]
pipe_sampler_state::compare_mode is not a boolean enable flag.
It's a 1-bit enum.