Brian Paul
4439aab7b7
llvmpipe: comments and LLVMValueRef naming
2010-01-13 09:32:21 -07:00
Brian Paul
212f3a6cb3
llvmpipe: tweak subpixel_snap() arithmetic
...
This adjustment fixes some rasterization differences between llvmpipe
and softpipe (and other renderers).
2010-01-13 09:32:21 -07:00
Keith Whitwell
db83ad4b43
llvmpipe: improve empty-bin test further
...
Remove unused param, add comments. Thanks to Brian for review.
2010-01-13 16:29:39 +00:00
Keith Whitwell
f4b29e6ad3
llvmpipe: improve empty-bin test
...
We emit at most two clear packets (color and z respectively).
2010-01-13 15:49:24 +00:00
Keith Whitwell
da45f49cc6
llvmpipe: quick hack to short-circuit empty bins
2010-01-13 15:18:32 +00:00
Brian Paul
7e4c75c040
llvmpipe: fix indentation, comment typo
2010-01-12 17:12:49 -07:00
Brian Paul
ec9cfac768
llvmpipe: debug checks: make sure scene is empty at key points
2010-01-12 17:12:07 -07:00
Brian Paul
c560b97b17
llvmpipe: assert that we're putting data into a valid bin
2010-01-12 17:11:40 -07:00
Brian Paul
214ffad015
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.
2010-01-12 17:08:07 -07:00
Brian Paul
de10168a46
llvmpipe: added lp_scene_is_empty()
2010-01-12 17:06:19 -07:00
Brian Paul
4061ca02dd
llvmpipe: silence unused var warnings
2010-01-12 13:01:32 -07:00
Brian Paul
a32e9b2a2d
llvmpipe: remove unused #define
2010-01-12 10:11:36 -07:00
Brian Paul
5cf4630969
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.
2010-01-11 15:30:56 -07:00
Brian Paul
9a10d14a44
llvmpipe: move, update comments
2010-01-11 15:30:17 -07:00
Brian Paul
3b5d849268
llvmpipe: refactor generate_fragment() code
...
This will make it easier to generate multiple versions of the fragment
code per variant.
2010-01-11 13:16:02 -07:00
Brian Paul
46b5bd6cad
llvmpipe: do the all-in test on the scalar c0 instead of vector c0
...
This still isn't faster, but committing it for posterity.
2010-01-11 12:59:39 -07:00
Keith Whitwell
86f450060d
llvmpipe: force constant interpolation of flatshade colors
...
Nice speedup for gears.
2010-01-11 12:12:59 +00:00
Keith Whitwell
ad74ea2869
st/mesa: early exit on error path
...
Can't rely on asserts having any effect on flowcontrol for release
builds.
2010-01-11 12:02:53 +00:00
Keith Whitwell
094525fb23
llvmpipe: remove opencoded constant
2010-01-11 11:06:15 +00:00
Keith Whitwell
16c1ad54bc
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.
2010-01-11 11:06:15 +00:00
Keith Whitwell
c1a0441602
llvmpipe: initial mrt support
...
Non-mrt apps work, and the code looks correct, but not many mrt test apps
handy atm...
2010-01-10 17:22:09 +00:00
Brian Paul
f4321fbd96
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...
2010-01-08 14:49:34 -07:00
Brian Paul
5208af7853
llvmpipe: fix more if/else/endif design bugs
2010-01-08 12:47:30 -07:00
Brian Paul
855d7f51e4
llvmpipe: move some fields to the private lp_build_flow_if struct
2010-01-08 11:32:36 -07:00
Brian Paul
af31e65b55
llvmpipe: free the phi array
2010-01-08 11:20:38 -07:00
Brian Paul
70b8d59792
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.
2010-01-08 11:06:16 -07:00
José Fonseca
080c40ab32
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
2010-01-08 15:42:57 +00:00
José Fonseca
9cdf6f025b
scons: Set the default windows platform to be windows userspace.
...
I thought I had done this ages ago.
2010-01-08 14:31:25 +00:00
Dan Nicholson
a1de400e8d
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>
2010-01-08 06:01:22 -08:00
Michal Krol
dddd5a36ac
tgsi: Cleanup dot-product opcodes in interpreter.
2010-01-08 12:03:55 +01:00
Francisco Jerez
95f603a5f3
nv20: Fix build for the latest nouveau_class.h changes.
2010-01-08 04:42:28 +01:00
José Fonseca
d699b6720c
scons: Don't build xlib when dri is enabled.
...
Hopefully adddresses fdo 25828.
2010-01-08 01:25:27 +00:00
José Fonseca
ba33ef0011
lvmpipe: Initialize all coordinates.
...
Fixes assertion failure with fp-incomplete-tex (fdo 24298).
2010-01-08 01:15:17 +00:00
José Fonseca
c6509f89b4
scons: Output a meaningful message when xlib libGL.so can't be built.
2010-01-08 00:50:09 +00:00
José Fonseca
de22c940a1
scons: Use static glew library on Unices to avoid binary compatability issues
...
Fixes bug 25926.
2010-01-08 00:33:58 +00:00
Keith Whitwell
45fe1d7d00
st/xorg: remove unused xorg_exa_get_pixmap_handle function
2010-01-07 22:08:23 +00:00
Christoph Bumiller
7fc5fcada5
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.
2010-01-07 21:19:58 +01:00
Christoph Bumiller
a009fa4305
nv50: handle TGSI_OPCODE_SAD,UADD
2010-01-07 21:19:58 +01:00
Christoph Bumiller
d550de2342
nv50: handle TGSI_OPCODE_IMAX,IMIN,UMAX,UMIN
2010-01-07 21:19:58 +01:00
Christoph Bumiller
607b9c2e09
nv50: handle integer SET operations
2010-01-07 21:19:58 +01:00
Christoph Bumiller
ccc7d0cb7a
nv50: handle TGSI_OPCODE_SHL,ISHR,USHR
2010-01-07 21:19:58 +01:00
Christoph Bumiller
152b3bd6ef
nv50: handle TGSI_OPCODE_F2I,F2U,I2F,U2F plus src mods
2010-01-07 21:19:58 +01:00
Eric Anholt
46f5579826
intel: Remove leftover symlinks from DRI1 removal.
2010-01-07 11:21:29 -08:00
Brian Paul
7335d8006f
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.
2010-01-07 11:18:12 -07:00
Brian Paul
0c6794c46f
tgsi: fix incorrectly placed braces, add more braces to be clear
2010-01-07 10:57:33 -07:00
Brian Paul
16b5d2eba3
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.
2010-01-07 10:55:00 -07:00
Brian Paul
b841c2756e
swrast: fix color masking for glAccum(GL_RETURN)
...
Should fix fdo bug 25837.
2010-01-07 09:43:11 -07:00
Brian Paul
fa47eff55b
i810: use ColorMask[0]
2010-01-07 09:40:08 -07:00
Brian Paul
7c55fe9bfd
progs/fp: increase buffer size to read larger shaders
2010-01-07 09:20:48 -07:00
Brian Paul
c642c246d7
gallium/util: remove useless assertions
2010-01-07 09:20:48 -07:00