i965: Make sure the VS URB size is big enough to fit a VF VUE.

This fix is just from code and docs inspection, but it may fix hangs on
some applications.

(cherry picked from commit e93848e595)
This commit is contained in:
Eric Anholt 2009-08-03 15:24:02 -07:00
parent 9eca0e5350
commit 456a16491b

View file

@ -68,6 +68,7 @@ static void release_tmps( struct brw_vs_compile *c )
static void brw_vs_alloc_regs( struct brw_vs_compile *c )
{
GLuint i, reg = 0, mrf;
int attributes_in_vue;
#if 0
if (c->vp->program.Base.Parameters->NumParameters >= 6)
@ -201,7 +202,13 @@ static void brw_vs_alloc_regs( struct brw_vs_compile *c )
*/
c->prog_data.urb_read_length = (c->nr_inputs + 1) / 2;
c->prog_data.urb_entry_size = (c->nr_outputs + 2 + 3) / 4;
/* The VS VUEs are shared by VF (outputting our inputs) and VS, so size
* them to fit the biggest thing they need to.
*/
attributes_in_vue = MAX2(c->nr_outputs, c->nr_inputs);
c->prog_data.urb_entry_size = (attributes_in_vue + 2 + 3) / 4;
c->prog_data.total_grf = reg;
if (INTEL_DEBUG & DEBUG_VS) {