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