[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