On 10/28/2013 10:53 AM, Ian Romanick wrote: > On 10/26/2013 01:33 PM, Kenneth Graunke wrote: >> Currently, we emit one SO_DECL structure per output, so we use the index >> in the Outputs[] array as the index into the so_decl[] array as well. >> >> In order to support the fake "gl_SkipComponents[1234]" varyings from >> ARB_transform_feedback3, we'll need to emit SO_DECLs to fill in the >> holes between successive outputs. This means we'll likely emit more >> SO_DECLs than there are outputs, so we need to count it explicitly. >> >> Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > > Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> > >> --- >> src/mesa/drivers/dri/i965/gen7_sol_state.c | 15 +++++++-------- >> 1 file changed, 7 insertions(+), 8 deletions(-) >> >> diff --git a/src/mesa/drivers/dri/i965/gen7_sol_state.c >> b/src/mesa/drivers/dri/i965/gen7_sol_state.c >> index 3e02bdf..b9debdb 100644 >> --- a/src/mesa/drivers/dri/i965/gen7_sol_state.c >> +++ b/src/mesa/drivers/dri/i965/gen7_sol_state.c >> @@ -108,17 +108,17 @@ gen7_upload_3dstate_so_decl_list(struct brw_context >> *brw, >> /* BRW_NEW_TRANSFORM_FEEDBACK */ >> const struct gl_transform_feedback_info *linked_xfb_info = >> &vs_prog->LinkedTransformFeedback; >> - int i; >> uint16_t so_decl[128]; >> int buffer_mask = 0; >> int next_offset[4] = {0, 0, 0, 0}; >> + int decls = 0; >> >> STATIC_ASSERT(ARRAY_SIZE(so_decl) >= MAX_PROGRAM_OUTPUTS); >> >> /* Construct the list of SO_DECLs to be emitted. The formatting of the >> * command is feels strange -- each dword pair contains a SO_DECL per >> stream. >> */ >> - for (i = 0; i < linked_xfb_info->NumOutputs; i++) { >> + for (int i = 0; i < linked_xfb_info->NumOutputs; i++) { > > This is "only" C code, but I strongly approve.
This is actually allowed in C99...and since no one compiles DRI drivers with MSVC (for obvious reasons), we're free to use C99 features in src/drivers/dri. It's really great :) --Ken _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev