[Mesa-dev] [PATCH 3/3] st/mesa: use st_access_flags_to_transfer_flags() helper in more places

Marek Olšák maraeo at gmail.com
Tue Feb 6 17:58:07 UTC 2018


For the series:

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

Marek

On Mon, Feb 5, 2018 at 6:22 PM, Brian Paul <brianp at vmware.com> wrote:
> ---
>  src/mesa/state_tracker/st_cb_fbo.c     | 18 +++++++++---------
>  src/mesa/state_tracker/st_cb_texture.c | 17 ++++++++---------
>  2 files changed, 17 insertions(+), 18 deletions(-)
>
> diff --git a/src/mesa/state_tracker/st_cb_fbo.c b/src/mesa/state_tracker/st_cb_fbo.c
> index 3a5c03c..0800f5b 100644
> --- a/src/mesa/state_tracker/st_cb_fbo.c
> +++ b/src/mesa/state_tracker/st_cb_fbo.c
> @@ -47,6 +47,7 @@
>  #include "pipe/p_screen.h"
>  #include "st_atom.h"
>  #include "st_context.h"
> +#include "st_cb_bufferobjects.h"
>  #include "st_cb_fbo.h"
>  #include "st_cb_flush.h"
>  #include "st_cb_texture.h"
> @@ -780,7 +781,6 @@ st_MapRenderbuffer(struct gl_context *ctx,
>     struct st_renderbuffer *strb = st_renderbuffer(rb);
>     struct pipe_context *pipe = st->pipe;
>     const GLboolean invert = rb->Name == 0;
> -   unsigned usage;
>     GLuint y2;
>     GLubyte *map;
>
> @@ -800,13 +800,13 @@ st_MapRenderbuffer(struct gl_context *ctx,
>        return;
>     }
>
> -   usage = 0x0;
> -   if (mode & GL_MAP_READ_BIT)
> -      usage |= PIPE_TRANSFER_READ;
> -   if (mode & GL_MAP_WRITE_BIT)
> -      usage |= PIPE_TRANSFER_WRITE;
> -   if (mode & GL_MAP_INVALIDATE_RANGE_BIT)
> -      usage |= PIPE_TRANSFER_DISCARD_RANGE;
> +   /* Check for unexpected flags */
> +   assert((mode & ~(GL_MAP_READ_BIT |
> +                    GL_MAP_WRITE_BIT |
> +                    GL_MAP_INVALIDATE_RANGE_BIT)) == 0);
> +
> +   const enum pipe_transfer_usage transfer_flags =
> +      st_access_flags_to_transfer_flags(mode, false);
>
>     /* Note: y=0=bottom of buffer while y2=0=top of buffer.
>      * 'invert' will be true for window-system buffers and false for
> @@ -821,7 +821,7 @@ st_MapRenderbuffer(struct gl_context *ctx,
>                              strb->texture,
>                              strb->surface->u.tex.level,
>                              strb->surface->u.tex.first_layer,
> -                            usage, x, y2, w, h, &strb->transfer);
> +                            transfer_flags, x, y2, w, h, &strb->transfer);
>     if (map) {
>        if (invert) {
>           *rowStrideOut = -(int) strb->transfer->stride;
> diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c
> index 98f2443..6345ead 100644
> --- a/src/mesa/state_tracker/st_cb_texture.c
> +++ b/src/mesa/state_tracker/st_cb_texture.c
> @@ -254,19 +254,18 @@ st_MapTextureImage(struct gl_context *ctx,
>  {
>     struct st_context *st = st_context(ctx);
>     struct st_texture_image *stImage = st_texture_image(texImage);
> -   unsigned pipeMode;
>     GLubyte *map;
>     struct pipe_transfer *transfer;
>
> -   pipeMode = 0x0;
> -   if (mode & GL_MAP_READ_BIT)
> -      pipeMode |= PIPE_TRANSFER_READ;
> -   if (mode & GL_MAP_WRITE_BIT)
> -      pipeMode |= PIPE_TRANSFER_WRITE;
> -   if (mode & GL_MAP_INVALIDATE_RANGE_BIT)
> -      pipeMode |= PIPE_TRANSFER_DISCARD_RANGE;
> +   /* Check for unexpected flags */
> +   assert((mode & ~(GL_MAP_READ_BIT |
> +                    GL_MAP_WRITE_BIT |
> +                    GL_MAP_INVALIDATE_RANGE_BIT)) == 0);
>
> -   map = st_texture_image_map(st, stImage, pipeMode, x, y, slice, w, h, 1,
> +   const enum pipe_transfer_usage transfer_flags =
> +      st_access_flags_to_transfer_flags(mode, false);
> +
> +   map = st_texture_image_map(st, stImage, transfer_flags, x, y, slice, w, h, 1,
>                                &transfer);
>     if (map) {
>        if (st_etc_fallback(st, texImage)) {
> --
> 2.7.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list