[Mesa-dev] [PATCH] tgsi: don't set tgsi_info::uses_bindless_images for constbufs and hw atomics

Ilia Mirkin imirkin at alum.mit.edu
Thu Feb 21 05:08:35 UTC 2019


I don't think that's right... this is used in e.g.

   case TGSI_OPCODE_RESQ:
      if (tgsi_is_bindless_image_file(fullinst->Src[0].Register.File))
         info->uses_bindless_images = true;
      break;

And if you call RESQ with a src0 that is not IMAGE or BUFFER, then
that's a bindless reference.

I think the problem is that this is interacting poorly with the load
constbuf stuff -- probably needs a bit of subtlety there.

  -ilia

On Thu, Feb 21, 2019 at 12:03 AM Marek Olšák <maraeo at gmail.com> wrote:
>
> From: Marek Olšák <marek.olsak at amd.com>
>
> This might have decreased performance for radeonsi/tgsi, because most
> most shaders claimed they used bindless.
>
> Cc: 18.3 19.0 <mesa-stable at lists.freedesktop.org>
> ---
>  src/gallium/auxiliary/tgsi/tgsi_scan.h | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.h b/src/gallium/auxiliary/tgsi/tgsi_scan.h
> index 580c73a2814..51d85af4fcb 100644
> --- a/src/gallium/auxiliary/tgsi/tgsi_scan.h
> +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.h
> @@ -214,18 +214,20 @@ tgsi_scan_arrays(const struct tgsi_token *tokens,
>  void
>  tgsi_scan_tess_ctrl(const struct tgsi_token *tokens,
>                      const struct tgsi_shader_info *info,
>                      struct tgsi_tessctrl_info *out);
>
>  static inline bool
>  tgsi_is_bindless_image_file(unsigned file)
>  {
>     return file != TGSI_FILE_IMAGE &&
>            file != TGSI_FILE_MEMORY &&
> -          file != TGSI_FILE_BUFFER;
> +          file != TGSI_FILE_BUFFER &&
> +          file != TGSI_FILE_CONSTBUF &&
> +          file != TGSI_FILE_HW_ATOMIC;
>  }
>
>  #ifdef __cplusplus
>  } // extern "C"
>  #endif
>
>  #endif /* TGSI_SCAN_H */
> --
> 2.17.1
>
> _______________________________________________
> 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