summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/iris/iris_state.c
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2019-06-20 01:08:04 -0500
committerKenneth Graunke <[email protected]>2019-06-20 13:32:16 -0500
commit31de802e7e6428b1b84b42ff555cdb8f87a59a6e (patch)
treeaac951012278ef28d8cfc77da01b7fd11cc68916 /src/gallium/drivers/iris/iris_state.c
parentdb8f57a5cb4ab8e1ad789793678797c04e95de21 (diff)
iris: Use stream uploader for shader draw parameters.
Most vertex data lives in user VBOs in IRIS_MEMZONE_OTHER, which typically have high bits set to 0xffff. The shader draw parameters were being uploaded in IRIS_MEMZONE_DYNAMIC, which have high bets set to 0x2. This was causing a lot of ping-ponging of high bits, leading to unnecessary VF cache flushing. Cuts 7.2% of the flushes in the Civizilation VI demo on Kabylake GT2.
Diffstat (limited to 'src/gallium/drivers/iris/iris_state.c')
-rw-r--r--src/gallium/drivers/iris/iris_state.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c
index 0984ae87acf..13942df5008 100644
--- a/src/gallium/drivers/iris/iris_state.c
+++ b/src/gallium/drivers/iris/iris_state.c
@@ -5054,7 +5054,7 @@ iris_upload_dirty_render_state(struct iris_context *ice,
if (ice->state.vs_uses_draw_params) {
if (ice->draw.draw_params_offset == 0) {
- u_upload_data(ice->state.dynamic_uploader, 0, sizeof(ice->draw.params),
+ u_upload_data(ice->ctx.stream_uploader, 0, sizeof(ice->draw.params),
4, &ice->draw.params, &ice->draw.draw_params_offset,
&ice->draw.draw_params_res);
}
@@ -5080,7 +5080,7 @@ iris_upload_dirty_render_state(struct iris_context *ice,
}
if (ice->state.vs_uses_derived_draw_params) {
- u_upload_data(ice->state.dynamic_uploader, 0,
+ u_upload_data(ice->ctx.stream_uploader, 0,
sizeof(ice->draw.derived_params), 4,
&ice->draw.derived_params,
&ice->draw.derived_draw_params_offset,