i965/fs: Change brw_wm_prog_data::urb_read_length to num_varying_inputs.
authorPaul Berry <stereotype441@gmail.com>
Tue, 3 Sep 2013 00:35:32 +0000 (17:35 -0700)
committerPaul Berry <stereotype441@gmail.com>
Mon, 16 Sep 2013 19:53:14 +0000 (12:53 -0700)
commit8c69eaba1a8a5e8a82112eb5c51b2f8978dd2c23
tree784a9009c7933e9b64d777b4b872a559e0d01fbe
parent58f01bd17d5587c21d7f543b8f3769f3405dc420
i965/fs: Change brw_wm_prog_data::urb_read_length to num_varying_inputs.

On gen4-5, the FS stage reads varying inputs from URB entries that
were output by the SF thread, where each register stores the
interpolation setup for two components of a vec4, therefore the FS
urb_read_length is twice the number of FS input varyings.  On gen6+,
varying inputs are directly deposited in the FS payload by the SF/SBE
fixed function logic, so urb_read_length is irrelevant.

However, in future patches, it will be nice to be able to consult
brw_wm_prog_data to determine how many varying inputs the FS expects
(rather than inferring it from gl_program::InputsRead).  So instead of
storing urb_read_length, we simply store num_varying_inputs in
brw_wm_prog_data.  On gen4-5, we multiply this by 2 to recover the URB
read length.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_context.h
src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/drivers/dri/i965/brw_wm_state.c