aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTopi Pohjolainen <[email protected]>2016-04-19 20:08:55 +0300
committerTopi Pohjolainen <[email protected]>2016-04-21 10:20:03 +0300
commit935ce14a445f794cdccc749738353d76d0205145 (patch)
tree3aecd1634c9f020f7750d9709f061cede5199a60
parent26fdb7e51e9f6b407ad8c635850ccffbd01876bc (diff)
i965/blorp: Reduce the urb size requirement for vertex buffer
Signed-off-by: Topi Pohjolainen <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/gen7_blorp.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/i965/gen7_blorp.cpp b/src/mesa/drivers/dri/i965/gen7_blorp.cpp
index e1e855951f8..414ec9ccfb6 100644
--- a/src/mesa/drivers/dri/i965/gen7_blorp.cpp
+++ b/src/mesa/drivers/dri/i965/gen7_blorp.cpp
@@ -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);