i965/blorp: Reduce the urb size requirement for vertex buffer

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Topi Pohjolainen 2016-04-19 20:08:55 +03:00
parent 26fdb7e51e
commit 935ce14a44

View file

@ -37,11 +37,10 @@ gen7_blorp_skip_urb_config(const struct brw_context *brw)
if (brw->ctx.NewDriverState & (BRW_NEW_CONTEXT | BRW_NEW_URB_SIZE))
return false;
/* Vertex elements along with full VUE header take 96 bytes. As the size
* is expressed in 64 bytes, one needs at least two times that, otherwise
* the setup can be any valid configuration.
/* Vertex buffer takes 24 bytes. As the size is expressed in 64 bytes,
* one will suffice, otherwise the setup can be any valid configuration.
*/
return brw->urb.vsize >= 2;
return brw->urb.vsize > 0;
}
/* 3DSTATE_URB_VS
@ -66,7 +65,7 @@ gen7_blorp_emit_urb_config(struct brw_context *brw)
const unsigned push_constant_bytes = 1024 * urb_size;
const unsigned push_constant_chunks =
push_constant_bytes / chunk_size_bytes;
const unsigned vs_size = 2;
const unsigned vs_size = 1;
const unsigned vs_start = push_constant_chunks;
const unsigned vs_chunks =
DIV_ROUND_UP(brw->urb.min_vs_entries * vs_size * 64, chunk_size_bytes);