[Mesa-dev] [PATCH 03/12] nir/vtn: add caps for some cl related capabilities

Jason Ekstrand jason at jlekstrand.net
Mon Jan 7 16:56:11 UTC 2019


On Tue, Dec 4, 2018 at 12:26 PM Karol Herbst <kherbst at redhat.com> wrote:

> From: Rob Clark <robdclark at gmail.com>
>
> vtn supports these, so don't squalk if user is happy with enabling
> these.
>
> Signed-off-by: Karol Herbst <kherbst at redhat.com>
> ---
>  src/compiler/shader_info.h         |  3 +++
>  src/compiler/spirv/spirv_to_nir.c  | 17 ++++++++++++++---
>  src/compiler/spirv/vtn_variables.c |  6 ++++--
>  3 files changed, 21 insertions(+), 5 deletions(-)
>
> diff --git a/src/compiler/shader_info.h b/src/compiler/shader_info.h
> index 65bc0588d67..5286cf8fc5f 100644
> --- a/src/compiler/shader_info.h
> +++ b/src/compiler/shader_info.h
> @@ -62,6 +62,9 @@ struct spirv_supported_capabilities {
>     bool post_depth_coverage;
>     bool transform_feedback;
>     bool geometry_streams;
> +   bool address;
> +   bool kernel;
> +   bool int8;
>

I really hate the fact that this list isn't sorted in any meaningful way.
I just sent out a patch to sort it.  With that fixed and these put in the
right order, the first three patches are

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>


>  };
>
>  typedef struct shader_info {
> diff --git a/src/compiler/spirv/spirv_to_nir.c
> b/src/compiler/spirv/spirv_to_nir.c
> index 2c2dbe12a3c..e41a7e960ce 100644
> --- a/src/compiler/spirv/spirv_to_nir.c
> +++ b/src/compiler/spirv/spirv_to_nir.c
> @@ -783,8 +783,10 @@ struct_member_decoration_cb(struct vtn_builder *b,
>     case SpvDecorationFPRoundingMode:
>     case SpvDecorationFPFastMathMode:
>     case SpvDecorationAlignment:
> -      vtn_warn("Decoration only allowed for CL-style kernels: %s",
> -               spirv_decoration_to_string(dec->decoration));
> +      if (b->shader->info.stage != MESA_SHADER_KERNEL) {
> +         vtn_warn("Decoration only allowed for CL-style kernels: %s",
> +                  spirv_decoration_to_string(dec->decoration));
> +      }
>        break;
>
>     case SpvDecorationHlslSemanticGOOGLE:
> @@ -3420,7 +3422,6 @@ vtn_handle_preamble_instruction(struct vtn_builder
> *b, SpvOp opcode,
>        case SpvCapabilityFloat16:
>        case SpvCapabilityInt64Atomics:
>        case SpvCapabilityStorageImageMultisample:
> -      case SpvCapabilityInt8:
>        case SpvCapabilitySparseResidency:
>        case SpvCapabilityMinLod:
>           vtn_warn("Unsupported SPIR-V capability: %s",
> @@ -3449,8 +3450,18 @@ vtn_handle_preamble_instruction(struct vtn_builder
> *b, SpvOp opcode,
>           spv_check_supported(geometry_streams, cap);
>           break;
>
> +      case SpvCapabilityInt8:
> +         spv_check_supported(int8, cap);
> +         break;
> +
>        case SpvCapabilityAddresses:
> +         spv_check_supported(address, cap);
> +         break;
> +
>        case SpvCapabilityKernel:
> +         spv_check_supported(kernel, cap);
> +         break;
> +
>        case SpvCapabilityImageBasic:
>        case SpvCapabilityImageReadWrite:
>        case SpvCapabilityImageMipmap:
> diff --git a/src/compiler/spirv/vtn_variables.c
> b/src/compiler/spirv/vtn_variables.c
> index 55721fc36e3..fe44e71800d 100644
> --- a/src/compiler/spirv/vtn_variables.c
> +++ b/src/compiler/spirv/vtn_variables.c
> @@ -1381,8 +1381,10 @@ apply_var_decoration(struct vtn_builder *b,
>     case SpvDecorationFPRoundingMode:
>     case SpvDecorationFPFastMathMode:
>     case SpvDecorationAlignment:
> -      vtn_warn("Decoration only allowed for CL-style kernels: %s",
> -               spirv_decoration_to_string(dec->decoration));
> +      if (b->shader->info.stage != MESA_SHADER_KERNEL) {
> +         vtn_warn("Decoration only allowed for CL-style kernels: %s",
> +                  spirv_decoration_to_string(dec->decoration));
> +      }
>        break;
>
>     case SpvDecorationHlslSemanticGOOGLE:
> --
> 2.19.2
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20190107/577ee179/attachment.html>


More information about the mesa-dev mailing list