Commit Graph

110 Commits

Author SHA1 Message Date
Brian Paul 521c61ff01 gallivm/llvmpipe: simplify front/back stencil ref value handling
Instead of passing an array, just pass two scalar values.
2010-03-18 11:31:38 -06:00
Brian Paul a1e7aeecc2 llvmpipe: set opaque = FALSE if stencil enabled
Fixes occasional bad tiles seen in some demos like progs/demos/reflect.c
2010-03-18 09:30:15 -06:00
José Fonseca 9d48a621d2 llvmpipe: Fix crashes when there is no depth buffer bound. 2010-03-18 10:24:10 +00:00
Brian Paul 227824ac69 llvmpipe: remove incorrect depth test check 2010-03-17 16:29:34 -06:00
Brian Paul 8dc8c3f5b1 llvmpipe: silence some pointer/casting warnings 2010-03-17 16:29:34 -06:00
Brian Paul d1c9e59883 gallivm/llvmpipe: more asst changes for stencil testing 2010-03-17 16:29:34 -06:00
Brian Paul 67b82fc395 gallivm/llmvpipe: pass stencil refs state into z/stencil build code 2010-03-17 16:29:34 -06:00
Keith Whitwell 8cdfd1219a Merge commit 'origin/master' into gallium-sampler-view
This branch already seems to have the nv50_tex.c fix.

Conflicts:
	src/gallium/drivers/nv50/nv50_tex.c
2010-03-16 09:02:38 +00:00
Brian Paul 185be3a87a gallivm/llvmpipe: rename some constant building functions 2010-03-15 18:16:56 -06:00
Keith Whitwell 47bfbd452c Merge commit 'origin/master' into gallium-sampler-view
Conflicts:
	src/gallium/auxiliary/util/u_tile.c
	src/gallium/auxiliary/util/u_tile.h
	src/gallium/drivers/identity/id_context.c
	src/gallium/drivers/llvmpipe/lp_setup.c
	src/gallium/drivers/llvmpipe/lp_setup.h
	src/gallium/drivers/softpipe/sp_tex_tile_cache.c
	src/gallium/include/pipe/p_context.h
	src/mesa/state_tracker/st_cb_bitmap.c
	src/mesa/state_tracker/st_cb_drawpixels.c
2010-03-13 15:06:35 +00:00
Brian Paul 272f399434 llvmpipe: fix comment typo 2010-03-11 14:49:00 -07:00
Brian Paul 489af2a3ba gallivm/llvmpipe: include os_llvm.h instead of llvm-c/Core.h 2010-03-11 14:49:00 -07:00
Michal Krol 3ce4375912 Merge branch 'master' into gallium-sampler-view
Conflicts:
	src/gallium/auxiliary/Makefile
	src/gallium/auxiliary/SConscript
	src/gallium/auxiliary/tgsi/tgsi_exec.c
	src/gallium/auxiliary/util/u_blitter.c
	src/gallium/drivers/i915/i915_context.h
	src/gallium/drivers/i965/brw_context.h
	src/gallium/drivers/llvmpipe/lp_context.h
	src/gallium/drivers/nv50/nv50_context.h
	src/gallium/drivers/nv50/nv50_state_validate.c
	src/gallium/drivers/nv50/nv50_tex.c
	src/gallium/drivers/r300/r300_blit.c
	src/gallium/drivers/r300/r300_context.h
	src/gallium/drivers/r300/r300_emit.c
	src/gallium/drivers/r300/r300_state.c
	src/gallium/drivers/softpipe/sp_context.h
	src/gallium/drivers/svga/svga_context.h
	src/gallium/drivers/svga/svga_pipe_sampler.c
2010-03-10 15:49:30 +01:00
José Fonseca 4d5dd82558 llvmpipe: Ensure context is flushed when destroying shaders. 2010-03-03 19:55:49 +00:00
José Fonseca abdcdb3db7 llvmpipe: s/debug_dump_/util_dump_/ 2010-02-14 15:21:06 +00:00
José Fonseca 9189d04cdb llvmpipe: Use util_format_name(). 2010-02-14 13:26:37 +00:00
Michal Krol 72fa4ef649 llvmpipe: Remove reference to prefilter field. 2010-02-09 16:27:16 +01:00
Zack Rusin 85c7ec70ad llvmpipe: switch to using dynamic stack allocation instead of registers
with mutable vars we don't need to follow the phi nodes. meaning that
control flow becomes trivial as we don't have scan the rest of the tgsi
to figure out the variable usage anymore. futhermore the memory2register
pass promotes alloca/store/load to registers while inserting the right phi
nodes. so we get simplicity and performance.
2010-02-08 21:50:33 -05:00
Brian Paul a8270c7c29 llvmpipe: use new os time functions 2010-02-08 16:57:23 -07:00
Zack Rusin c61bf36393 llvmpipe: export the tgsi translation code to a common layer
the llvmpipe tgsi translation is a lot more complete than what was in
gallivm so replacing the latter with the former. this is needed since
the draw llvm paths will use the same code. effectively the proven
llvmpipe code becomes gallivm.
2010-02-08 18:22:11 -05:00
José Fonseca a1af8eec66 Merge remote branch 'origin/lp-binning'
Conflicts:
	src/gallium/auxiliary/util/u_dl.c
	src/gallium/auxiliary/util/u_time.h
	src/gallium/drivers/llvmpipe/lp_state_derived.c
	src/gallium/drivers/llvmpipe/lp_state_surface.c
	src/gallium/drivers/llvmpipe/lp_tex_cache.c
	src/gallium/drivers/llvmpipe/lp_tile_cache.c
2010-02-05 13:48:35 +00:00
José Fonseca 28486880ca gallium: pipe/p_inlines.h -> util/u_inlines.h 2010-02-02 14:42:17 +00:00
José Fonseca bee9964b29 Merge remote branch 'origin/master' into lp-binning
Conflicts:
	Makefile
	src/gallium/auxiliary/util/u_surface.c
	src/gallium/drivers/llvmpipe/lp_flush.c
	src/gallium/drivers/llvmpipe/lp_setup.c
	src/gallium/drivers/llvmpipe/lp_state_derived.c
	src/gallium/drivers/llvmpipe/lp_state_fs.c
	src/gallium/drivers/llvmpipe/lp_state_surface.c
	src/gallium/drivers/llvmpipe/lp_tex_cache.c
	src/gallium/drivers/llvmpipe/lp_texture.c
	src/gallium/drivers/llvmpipe/lp_tile_cache.c
	src/mesa/state_tracker/st_cb_condrender.c
2010-01-31 05:36:33 +00:00
Roland Scheidegger 9b346f83a7 Merge commit 'origin/perrtblend'
Conflicts:
	src/gallium/drivers/softpipe/sp_screen.c
	src/gallium/include/pipe/p_defines.h
2010-01-28 17:23:58 +01:00
Michal Krol 9851644435 gallium: Enable multiple constant buffers for vertex and geometry shaders. 2010-01-28 14:07:53 +01:00
Brian Paul e95ad2a2b5 llvmpipe: count/report time spent in LLVM compilations 2010-01-27 13:49:43 -07:00
Brian Paul cd8614b028 Merge branch 'mesa_7_7_branch'
Conflicts:
	src/gallium/auxiliary/draw/draw_context.c
	src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c
	src/gallium/auxiliary/pipebuffer/Makefile
	src/gallium/auxiliary/pipebuffer/SConscript
	src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
	src/gallium/auxiliary/tgsi/tgsi_scan.c
	src/gallium/drivers/i915/i915_surface.c
	src/gallium/drivers/i915/i915_texture.c
	src/gallium/drivers/llvmpipe/lp_setup.c
	src/gallium/drivers/llvmpipe/lp_tex_sample_c.c
	src/gallium/drivers/llvmpipe/lp_texture.c
	src/gallium/drivers/softpipe/sp_prim_vbuf.c
	src/gallium/state_trackers/xorg/xorg_dri2.c
	src/gallium/winsys/drm/intel/gem/intel_drm_api.c
	src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
	src/gallium/winsys/drm/radeon/core/radeon_drm.c
	src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c
	src/mesa/state_tracker/st_cb_clear.c
2010-01-22 12:17:02 -07:00
Vinson Lee 4222bf3d3c llvmpipe: Remove unnecessary headers. 2010-01-21 14:31:15 -08:00
Brian Paul 4d2dc9da82 llvmpipe: updated comment 2010-01-20 11:32:48 -07:00
Roland Scheidegger 04cb5dfb1e llvmpipe: adapt to per-rendertarget blend changes 2010-01-20 18:27:53 +01:00
Brian Paul 9a23d810be llvmpipe: tweak a comment 2010-01-18 17:39:54 -07:00
José Fonseca ba5d600c90 Merge remote branch 'origin/master' into lp-binning
Conflicts:
	src/gallium/drivers/llvmpipe/lp_quad.h
	src/gallium/drivers/llvmpipe/lp_setup.c
2010-01-16 23:21:06 +00:00
Brian Paul 2797f2bf57 llvmpipe: generate two shader varients, one omits triangle in/out testing
When we know that a 4x4 pixel block is entirely inside of a triangle
use the jit function which omits the in/out test code.

Results in a few percent speedup in many tests.
2010-01-15 11:21:16 -07:00
Brian Paul 3b1920a349 llvmpipe: asst code changes in lp_state_fs.c 2010-01-15 10:25:59 -07:00
Roland Scheidegger 5e5d0ad081 Merge branch 'gallium-noconstbuf'
Conflicts:
	src/gallium/drivers/softpipe/sp_draw_arrays.c
	src/mesa/state_tracker/st_draw_feedback.c
2010-01-15 18:09:45 +01:00
Brian Paul 4461442849 llvmpipe: implement scissor testing
The scissor test is implemented as another per-quad operation in
the JIT code.  The four scissor box params are passed via the
lp_jit_context.  In the JIT code we compare the quad's x/y coords
against the clip bounds and create a new in/out mask that's AND'd
with the main quad mask.

Note: we should also do scissor testing in the triangle setup code
to improve efficiency.  That's not done yet.
2010-01-14 19:15:00 -07:00
Brian Paul 4769328fe1 llvmpipe: comments 2010-01-13 15:10:57 -07:00
José Fonseca 7df4c88088 llvmpipe: Opaque shader implies complete colormask too. 2010-01-13 22:07:24 +00:00
José Fonseca a1acbff299 llvmpipe: Reset the bin when shading a whole tile with an opaque shader. 2010-01-13 21:51:47 +00:00
Brian Paul 4061ca02dd llvmpipe: silence unused var warnings 2010-01-12 13:01:32 -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
Roland Scheidegger 70c8d2a297 gallium: remove const qualifier from pipe_buffer argument in set_constant_buffer 2010-01-11 16:30:48 +01: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 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
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 7bd7e2da75 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.
2010-01-07 15:35:24 +00:00