[Mesa-dev] [PATCH 1/2] tgsi/scan: fix images_buffers regressions

Brian Paul brianp at vmware.com
Sat Nov 5 18:10:51 UTC 2016


On 11/05/2016 11:38 AM, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> The first IF statement disabled the second one.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98599
> ---
>   src/gallium/auxiliary/tgsi/tgsi_scan.c | 5 ++---
>   1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c
> index aeb326a..26cb2be 100644
> --- a/src/gallium/auxiliary/tgsi/tgsi_scan.c
> +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c
> @@ -465,20 +465,22 @@ scan_declaration(struct tgsi_shader_info *info,
>            int buffer = 0;
>
>            if (fulldecl->Declaration.Dimension)
>               buffer = fulldecl->Dim.Index2D;
>
>            info->const_file_max[buffer] =
>               MAX2(info->const_file_max[buffer], (int)reg);
>            info->const_buffers_declared |= 1u << buffer;
>         } else if (file == TGSI_FILE_IMAGE) {
>            info->images_declared |= 1u << reg;
> +         if (fulldecl->Image.Resource == TGSI_TEXTURE_BUFFER)
> +            info->images_buffers |= 1 << reg;
>         } else if (file == TGSI_FILE_BUFFER) {
>            info->shader_buffers_declared |= 1u << reg;
>         } else if (file == TGSI_FILE_INPUT) {
>            info->input_semantic_name[reg] = (ubyte) semName;
>            info->input_semantic_index[reg] = (ubyte) semIndex;
>            info->input_interpolate[reg] = (ubyte)fulldecl->Interp.Interpolate;
>            info->input_interpolate_loc[reg] = (ubyte)fulldecl->Interp.Location;
>            info->input_cylindrical_wrap[reg] = (ubyte)fulldecl->Interp.CylindricalWrap;
>
>            /* Vertex shaders can have inputs with holes between them. */
> @@ -586,23 +588,20 @@ scan_declaration(struct tgsi_shader_info *info,
>            assert(target < TGSI_TEXTURE_UNKNOWN);
>            if (info->sampler_targets[reg] == TGSI_TEXTURE_UNKNOWN) {
>               /* Save sampler target for this sampler index */
>               info->sampler_targets[reg] = target;
>               info->sampler_type[reg] = type;
>            } else {
>               /* if previously declared, make sure targets agree */
>               assert(info->sampler_targets[reg] == target);
>               assert(info->sampler_type[reg] == type);
>            }
> -      } else if (file == TGSI_FILE_IMAGE) {
> -         if (fulldecl->Image.Resource == TGSI_TEXTURE_BUFFER)
> -            info->images_buffers |= 1 << reg;
>         }
>      }
>   }
>
>
>   static void
>   scan_immediate(struct tgsi_shader_info *info)
>   {
>      uint reg = info->immediate_count++;
>      uint file = TGSI_FILE_IMMEDIATE;
>

For both,
Reviewed-by: Brian Paul <brianp at vmware.com>




More information about the mesa-dev mailing list