summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/iris/iris_draw.c
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2018-12-19 20:34:55 -0800
committerKenneth Graunke <[email protected]>2019-02-21 10:26:11 -0800
commit7ddc1f8dedd181cff37f4fdae72a0967c5914915 (patch)
tree0fec4494e7d4af0572310955c11706a6a610b2a5 /src/gallium/drivers/iris/iris_draw.c
parent6c17e7d95f36a2f16fc8667243b3b469a2c601a7 (diff)
iris: Only resolve inputs for actual shader stages
We don't need to consider compute at render time, and don't need to consider disabled stages. 4% on drawoverhead.
Diffstat (limited to 'src/gallium/drivers/iris/iris_draw.c')
-rw-r--r--src/gallium/drivers/iris/iris_draw.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gallium/drivers/iris/iris_draw.c b/src/gallium/drivers/iris/iris_draw.c
index 602a0ec517f..fb62f0c5452 100644
--- a/src/gallium/drivers/iris/iris_draw.c
+++ b/src/gallium/drivers/iris/iris_draw.c
@@ -98,7 +98,11 @@ iris_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info)
iris_update_compiled_shaders(ice);
- iris_predraw_resolve_inputs(ice, batch);
+ for (gl_shader_stage stage = 0; stage < MESA_SHADER_COMPUTE; stage++) {
+ if (ice->shaders.prog[stage])
+ iris_predraw_resolve_inputs(batch, &ice->state.shaders[stage]);
+ }
+
iris_predraw_resolve_framebuffer(ice, batch);
iris_binder_reserve_3d(ice);