diff options
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/iris/iris_resolve.c | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/src/gallium/drivers/iris/iris_resolve.c b/src/gallium/drivers/iris/iris_resolve.c index b1d0856d8e8..e11f0730384 100644 --- a/src/gallium/drivers/iris/iris_resolve.c +++ b/src/gallium/drivers/iris/iris_resolve.c @@ -95,21 +95,20 @@ resolve_sampler_views(struct iris_context *ice, struct iris_sampler_view *isv = shs->textures[i]; struct iris_resource *res = (void *) isv->base.texture; - if (res->base.target == PIPE_BUFFER) - continue; + if (res->base.target != PIPE_BUFFER) { + if (consider_framebuffer) { + disable_rb_aux_buffer(ice, draw_aux_buffer_disabled, + res, isv->view.base_level, isv->view.levels, + "for sampling"); + } - if (consider_framebuffer) { - disable_rb_aux_buffer(ice, draw_aux_buffer_disabled, - res, isv->view.base_level, isv->view.levels, - "for sampling"); + iris_resource_prepare_texture(ice, batch, res, isv->view.format, + isv->view.base_level, isv->view.levels, + isv->view.base_array_layer, + isv->view.array_len, + astc5x5_wa_bits); } - iris_resource_prepare_texture(ice, batch, res, isv->view.format, - isv->view.base_level, isv->view.levels, - isv->view.base_array_layer, - isv->view.array_len, - astc5x5_wa_bits); - iris_cache_flush_for_read(batch, res->bo); } } @@ -127,16 +126,15 @@ resolve_image_views(struct iris_context *ice, const int i = u_bit_scan(&views); struct iris_resource *res = (void *) shs->image[i].res; - if (res->base.target == PIPE_BUFFER) - continue; + if (res->base.target != PIPE_BUFFER) { + if (consider_framebuffer) { + disable_rb_aux_buffer(ice, draw_aux_buffer_disabled, + res, 0, ~0, "as a shader image"); + } - if (consider_framebuffer) { - disable_rb_aux_buffer(ice, draw_aux_buffer_disabled, - res, 0, ~0, "as a shader image"); + iris_resource_prepare_image(ice, batch, res); } - iris_resource_prepare_image(ice, batch, res); - iris_cache_flush_for_read(batch, res->bo); } } |