diff options
author | Kenneth Graunke <[email protected]> | 2018-01-30 01:44:07 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2019-02-21 10:26:05 -0800 |
commit | f9d834d588c6750e720fd8460fe37506072e4d6a (patch) | |
tree | 5b5586d293d3769b3c5560ab430d3d5fcb6a2198 /src/gallium | |
parent | e21bddeb4fe6ceebd971b366e659ced23c41421f (diff) |
iris: don't do samplers for disabled stages
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/iris/iris_state.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index 2f6adc7578d..f374d077d5e 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -1910,7 +1910,7 @@ iris_upload_render_state(struct iris_context *ice, for (int stage = 0; stage <= MESA_SHADER_FRAGMENT; stage++) { struct iris_compiled_shader *shader = ice->shaders.prog[stage]; - if (!shader) // XXX: dirty bits + if (!shader) // XXX: dirty bits...also, emit a disable maybe? continue; struct brw_stage_prog_data *prog_data = (void *) shader->prog_data; @@ -1940,7 +1940,8 @@ iris_upload_render_state(struct iris_context *ice, } for (int stage = 0; stage <= MESA_SHADER_FRAGMENT; stage++) { - if (!(dirty & (IRIS_DIRTY_SAMPLER_STATES_VS << stage))) + if (!(dirty & (IRIS_DIRTY_SAMPLER_STATES_VS << stage)) || + !ice->shaders.prog[stage]) continue; // XXX: get sampler count from shader; don't emit them all... |