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.
Michal Krol [Wed, 6 Jan 2010 13:07:12 +0000 (14:07 +0100)]
util: Handle the remaining format cases in pipe_tile_raw_to_rgba().
Michal Krol [Wed, 6 Jan 2010 10:23:43 +0000 (11:23 +0100)]
Make sure we use only signed/unsigned ints with bitfields.
Seems to be the only way to stay fully portable.
Brian Paul [Wed, 6 Jan 2010 14:17:48 +0000 (07:17 -0700)]
i965g: fix invalid assertion in emit_xpd(), again
José Fonseca [Wed, 6 Jan 2010 13:52:22 +0000 (13:52 +0000)]
Merge remote branch 'origin/mesa_7_7_branch'
Conflicts:
configs/default
src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
src/mesa/main/version.h
José Fonseca [Sun, 3 Jan 2010 21:30:02 +0000 (21:30 +0000)]
glew: Update to version 1.5.2.
José Fonseca [Tue, 5 Jan 2010 20:41:29 +0000 (20:41 +0000)]
pipebuffer: Multi-threading fixes for fencing.
I had this patch on my hard drive for long time. It doesn't fully
address SVGA multi-threading issues, but causes no regressions, so decided
to commit while it still applies cleanly.
Attention: merging this into master will cause issues due to recent
changes in reference counting to fix strict aliasing rules violation.
Luca Barbieri [Wed, 6 Jan 2010 10:35:47 +0000 (10:35 +0000)]
gallium: remove PIPE_TEX_FILTER_ANISO
This patch removes PIPE_TEX_FILTER_ANISO.
Anisotropic filtering is enabled if and only if max_anisotropy > 1.0.
Values between 0.0 and 1.0, inclusive, of max_anisotropy are to be
considered equivalent, and meaning to turn off anisotropic filtering.
This approach has the small drawback of eliminating the possibility of
enabling anisotropic filter on either minification or magnification
separately, which Radeon hardware seems to support, is currently
support by Gallium but not exposed to OpenGL. If this is actually
useful it could be handled by splitting max_anisotropy in two values
and adding an appropriate OpenGL extension.
NOTE: some fiddling & reformatting by keithw to get this patch to
apply. Hopefully nothing broken in the process.
Brian Paul [Wed, 6 Jan 2010 04:25:56 +0000 (21:25 -0700)]
docs: added more GL3 items
Brian Paul [Wed, 6 Jan 2010 04:24:48 +0000 (21:24 -0700)]
mesa: added GL_MAJOR_VERSION and GL_MINOR_VERSION queries
New in GL 3.0.
Brian Paul [Wed, 6 Jan 2010 04:23:59 +0000 (21:23 -0700)]
mesa: call _mesa_compute_version() to set context's version info
Brian Paul [Wed, 6 Jan 2010 04:23:16 +0000 (21:23 -0700)]
mesa: added version.c to build