gallium: improve the pipe_stream_output_info struct (v2)
authorMarek Olšák <maraeo@gmail.com>
Sat, 17 Dec 2011 22:12:45 +0000 (23:12 +0100)
committerMarek Olšák <maraeo@gmail.com>
Sun, 15 Jan 2012 06:28:35 +0000 (07:28 +0100)
commit2449695e822421fdcaf1c66dffc12d7d705ea69d
treee1866c15d7fc3749ea6240fe0f519970448c5b0b
parentfaa90abfe0b6f55ab69768eb930b4ab5ef21cb06
gallium: improve the pipe_stream_output_info struct (v2)

There are 3 changes:

1) stride is specified for each buffer, not just one, so that drivers don't
   have to derive it from the outputs

2) new per-output property dst_offset, which specifies the offset
   into the buffer in dwords where the output should be stored,
   so that drivers don't have to compute the offsets manually;
   this will also be useful for gl_SkipComponents
   from ARB_transform_feedback3

3) register_mask is removed, instead, there is start_component
   and num_components; register_mask with non-consecutive 1s
   doesn't make much sense (some hardware cannot do packing of components)

Christoph Bumiller: fixed nvc0.

v2: resolve merge conflicts in Draw and clean it up
13 files changed:
src/gallium/auxiliary/draw/draw_pt_so_emit.c
src/gallium/auxiliary/util/u_blitter.c
src/gallium/auxiliary/util/u_dump_state.c
src/gallium/drivers/llvmpipe/lp_state_so.c
src/gallium/drivers/nvc0/nvc0_program.c
src/gallium/drivers/r600/r600.h
src/gallium/drivers/r600/r600_hw_context.c
src/gallium/drivers/r600/r600_pipe.h
src/gallium/drivers/r600/r600_shader.c
src/gallium/drivers/r600/r600_state_common.c
src/gallium/drivers/trace/tr_dump_state.c
src/gallium/include/pipe/p_state.h
src/mesa/state_tracker/st_glsl_to_tgsi.cpp