Commit Graph

55 Commits

Author SHA1 Message Date
Zack Rusin
275c4bd364 Merge remote branch 'origin/master' into gallium_draw_llvm 2010-03-15 15:24:38 -04:00
Roland Scheidegger
685340a53e Merge branch 'gallium-vertexelementcso'
Conflicts:
	src/gallium/auxiliary/cso_cache/cso_context.c
	src/gallium/auxiliary/util/u_blit.c
	src/gallium/auxiliary/util/u_gen_mipmap.c
	src/gallium/drivers/i915/i915_context.h
	src/gallium/drivers/i965/brw_draw_upload.c
	src/gallium/drivers/r300/r300_blit.c
	src/gallium/drivers/r300/r300_context.h
	src/gallium/drivers/r300/r300_render.c
	src/gallium/drivers/r300/r300_state_derived.c
	src/mesa/state_tracker/st_cb_bitmap.c
	src/mesa/state_tracker/st_cb_clear.c
2010-03-09 15:59:40 +01:00
Zack Rusin
c5c5cd7132 gallium/draw: initial code to properly support llvm in the draw module
code generate big chunks of the vertex pipeline in order to speed up
software vertex processing.
2010-02-22 22:02:58 -05:00
Michal Krol
63cb6f59ea gallium: Remove bypass_vs_clip_and_viewport from rasteriser state.
Needs testing.
2010-02-22 21:36:22 +01:00
Roland Scheidegger
464a72dd41 gallium: remove redundant nr_components field from pipe_vertex_element
This is a property of the associated src_format pipe format.
Hence use util_format_get_nr_components to query this when necessary instead.
2010-02-17 16:44:38 +01:00
José Fonseca
13701aae40 draw: Use util_format_name(). 2010-02-14 13:27:00 +00: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
dc544ad9c6 draw: Remove unnecessary headers. 2010-01-21 22:57:12 -08:00
Michal Krol
6481f40eec draw: Implement draw_arrays() in terms of draw_arrays_instanced(). 2009-12-30 18:54:04 +01:00
Michal Krol
7ca0ce3834 Implement draw_arrays_instanced() in softpipe.
Modify the translate module to respect instance divisors and accept
instance id as a parameter to calculate input vertex offset.
2009-12-29 23:21:01 +01:00
Roland Scheidegger
a0127b6ced gallium: more work for edgeflags changes
fixes, cleanups, etc.
not working yet
2009-12-14 18:36:33 +01:00
Keith Whitwell
a08e348a84 gallium: first steps to treat edgeflags as regular vertex element
The idea here is to eliminate the set_edgeflags() call in pipe_context
by treating edgeflags as a regular vertex element.

Edgeflags provoke special treatment in hardware, which means we need to
label them in some way, in this case we'll be passing them through the
vertex shader and labelling the vertex shader output with a new TGSI
semantic (TGSI_SEMANTIC_EDGEFLAG).
2009-12-09 19:03:10 +01:00
Vinson Lee
ea98e9820d draw: Initialize variable in draw_pt.c. 2009-11-20 16:03:48 -08:00
Brian Paul
d2e4643767 draw: use u_reduced_prim() function 2009-06-19 09:45:23 -06:00
Keith Whitwell
683e7091a9 gallium: consolidate bypass_vs and bypass_clipping flags
The draw module provides a similar interface to the driver which
is retained as various bits of hardware may be able to take on
incremental parts of the vertex pipeline.  However, there's no
need to advertise all this complexity to the state tracker.

There are basically two modes now - normal and passthrough/screen-coords.
2009-03-13 16:42:57 +00:00
Zack Rusin
872b515e8f gallium: standardize on stride instead of pitch in the interface 2009-01-27 12:20:25 -05:00
Michal Krol
0ee92d6ed9 draw: Add missing include. 2008-11-12 18:12:28 +01:00
Brian Paul
6c3e7365d5 gallium: debug code to print vertex array data (disabled) 2008-11-06 14:57:20 -07:00
Brian Paul
05a17f83b0 gallium: added some debug code (disabled) 2008-11-05 09:08:56 -07:00
Keith Whitwell
c48da7d78b draw: add switch for drivers to force vertex data passthrough 2008-10-07 16:33:52 +01:00
Brian Paul
4f25420bdd gallium: refactor/replace p_util.h with util/u_memory.h and util/u_math.h
Also, rename p_tile.[ch] to u_tile.[ch]
2008-08-24 17:48:55 -06:00
Brian Paul
ba9e633902 gallium: fix trim() function bug when count < first
If the user called glDrawArrays(GL_TRIANGLES, count=1), trim() returned a
very large integer because of the unsigned arithmetic.
2008-07-04 10:02:43 -06:00
José Fonseca
a70684bf25 gallium: Deprecate GETENV. Replace by debug_get_bool_option.
debug_get_bool_option will interpret "n", "no", "0", "f", or
"false" as FALSE; and everything else as TRUE. The default value
(used when the variable is not set) is received as a parameter.
2008-06-10 08:33:21 +09:00
Keith Whitwell
1529a2c983 draw: trim incoming primitives 2008-05-30 17:49:10 +01:00
Keith Whitwell
807e7c4ccf draw: add more switches to turn FSE on/off 2008-05-29 14:35:47 +01:00
Keith Whitwell
728d1f7f43 draw: enable FSE by default 2008-05-28 23:54:18 +01:00
Keith Whitwell
b23706454b draw: get rid of fetch-shade-emit frontend hack
The code is now living in it's intended place as a pt middle end.
2008-05-23 09:16:54 +01:00
Keith Whitwell
bbda45ec76 draw: turn fse path into a middle end
Also add some util functions in pt_util.c
2008-05-12 19:40:20 +01:00
Keith Whitwell
44463b2997 draw: streamline the varray path
- drop support for running the pipeline (ie. don't populate the flags values)
- pass through all split-able primitives intact to the middle end
- only primitives that can't be split are shunted on the draw-element path
2008-05-12 17:40:55 +01:00
Keith Whitwell
b5e5369da5 draw: add fetch-shade-emit path
Enable with TEST_FSE=t.  Performs fetch from API-provided vertex buffers,
transformation with one of three (two working) hard-coded shaders, and
final emit to hardware vertices all in a single pass.

Currently only really useful for profiling in conjunction with SP_NO_RAST=t.
2008-05-12 17:40:55 +01:00
Zack Rusin
90a46ed277 split larger primitives in the simple varray pt 2008-05-08 15:26:03 -04:00
Keith Whitwell
14cfcb1820 draw: no need to special-case elts/get_elts for varray frontend 2008-04-25 14:20:25 +01:00
Zack Rusin
992d0b997f frontend for rendering without elts 2008-04-25 14:20:25 +01:00
Keith Whitwell
0588858702 draw: allow drivers to query pipeline state more easily
Also, provide a separate flag to say whether the driver can handle
clipping/rhw tasks, in addition to the API flag which indicates they
have already been done.
2008-04-22 20:50:20 +01:00
Keith Whitwell
7d72607e14 draw: move incoming vertex state into draw->pt
This state is effectively private to the vertex processing part
of the draw module.
2008-04-19 17:27:52 +01:00
Keith Whitwell
507fbe2d32 draw: move some pipeline-specific code & state to draw_pipe.[ch] 2008-04-19 15:29:27 +01:00
Keith Whitwell
1246d06313 draw: remove named clipmask flags, tidy up pt middle ends 2008-04-19 13:20:26 +01:00
Keith Whitwell
b11d89dc6d draw: remove draw_prim.c 2008-04-18 20:36:38 +01:00
Keith Whitwell
a41c05b20a draw: switch over to draw_pt paths, will remove old code shortly 2008-04-18 20:11:16 +01:00
Keith Whitwell
26c27f6636 draw: remove fetch_pipeline middle end -- just use the general path 2008-04-18 18:42:41 +01:00
Keith Whitwell
fe8af14124 draw: don't always run pipeline if clipping 2008-04-17 14:42:05 +01:00
Keith Whitwell
3be453bf7f draw: allow pt paths to run without a vbuf render stage 2008-04-16 12:55:47 +01:00
Keith Whitwell
a8582efaca draw: make pt run pipeline when need_pipeline is true, not just when clipped 2008-04-16 12:22:20 +01:00
Zack Rusin
2ba6e1fa71 silence some warnings 2008-04-14 12:29:23 -04:00
Keith Whitwell
a82e4996a1 draw: flush pipeline before trying to allocate more hw vertices 2008-04-14 12:37:19 +01:00
Keith Whitwell
caf293343f draw: hide passthrough shading paths behind an environment variable 2008-04-14 12:08:46 +01:00
Zack Rusin
0c1cb54923 Implement fetch/shade/pipeline or emit vertex passthrough. 2008-04-14 11:05:37 +01:00
Keith Whitwell
d2cb4ba0bb draw: add passthrough path to the pipeline
This handles the case where bypass_vs is set, but vertices need to go
through the pipeline for some reason - eg unfilled polygon mode.

Demonstrates how to drive the pipeline from inside one of these things.
2008-04-03 12:21:30 +01:00
Keith Whitwell
ae3c91e98c draw: Set the backend prim in the pt 'prepare' operation
Leaving it until 'run' is bad as the primitive is pretty much state
for some drivers and so needs to get set early.  In some drivers
this is used to determine things like vertex format, etc -- by the
time we get to 'run', it's too late to change this.
2008-04-02 12:02:32 +01:00
Keith Whitwell
edfa8201a5 draw: more flatshade_first changes
- Reduce the number of changes to the normal vertex ordering
- Assume that the hardware knows how to do this in the standard case.
- Add support to the passthrough vcache path.
2008-04-01 14:51:25 +01:00