[Mesa-dev] [PATCH] st/mesa: remove sampler associated with buffer texture in pbo logic

Marek Olšák maraeo at gmail.com
Mon Dec 17 03:18:26 UTC 2018


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Fri, Dec 14, 2018 at 8:43 PM Ilia Mirkin <imirkin at alum.mit.edu> wrote:

> A long time ago, when this was first implemented, not having a sampler
> bound would cause problems on Fermi. I didn't work out the reasons, but
> the solution was simple -- just put the samplers back in.
>
> Since then, regular texturing paths appear to have lost their associated
> samplers which required a fuller investigation and fix in nouveau. Now
> that this is done, this code should no longer need a sampler state for
> fetching texels from a buffer texture.
>
> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> ---
>
> This was introduced in 2b938a390 which fixed a number of legitimate
> issues, as well as this which ultimately was an issue in nouveau which
> in turn were fixed in 153d3fc5f9.
>
> At the time this was the only way for the condition to occur. However
> now more bits have changed and a txf on a buffer could end up happening
> without a sampler bound under "usual" circumstances, which necessitated
> an investigation and proper fix.
>
>  src/mesa/state_tracker/st_cb_texture.c | 5 -----
>  1 file changed, 5 deletions(-)
>
> diff --git a/src/mesa/state_tracker/st_cb_texture.c
> b/src/mesa/state_tracker/st_cb_texture.c
> index b8cc616d8f2..45918e425ac 100644
> --- a/src/mesa/state_tracker/st_cb_texture.c
> +++ b/src/mesa/state_tracker/st_cb_texture.c
> @@ -1192,7 +1192,6 @@ try_pbo_upload_common(struct gl_context *ctx,
>        return false;
>
>     cso_save_state(cso, (CSO_BIT_FRAGMENT_SAMPLER_VIEWS |
> -                        CSO_BIT_FRAGMENT_SAMPLERS |
>                          CSO_BIT_VERTEX_ELEMENTS |
>                          CSO_BIT_AUX_VERTEX_BUFFER_SLOT |
>                          CSO_BIT_FRAMEBUFFER |
> @@ -1216,8 +1215,6 @@ try_pbo_upload_common(struct gl_context *ctx,
>     {
>        struct pipe_sampler_view templ;
>        struct pipe_sampler_view *sampler_view;
> -      struct pipe_sampler_state sampler = {0};
> -      const struct pipe_sampler_state *samplers[1] = {&sampler};
>
>        memset(&templ, 0, sizeof(templ));
>        templ.target = PIPE_BUFFER;
> @@ -1237,8 +1234,6 @@ try_pbo_upload_common(struct gl_context *ctx,
>        cso_set_sampler_views(cso, PIPE_SHADER_FRAGMENT, 1, &sampler_view);
>
>        pipe_sampler_view_reference(&sampler_view, NULL);
> -
> -      cso_set_samplers(cso, PIPE_SHADER_FRAGMENT, 1, samplers);
>     }
>
>     /* Framebuffer_state */
> --
> 2.18.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181216/bf4f4e71/attachment.html>


More information about the mesa-dev mailing list