Re: [Mesa-dev] [PATCH] radv: fix adjusting vertex fetches since 16bit support
On Wed, Jul 25, 2018 at 3:28 PM, Samuel Pitoiset wrote: > > > On 07/25/2018 03:26 PM, Bas Nieuwenhuizen wrote: >> >> On Wed, Jul 25, 2018 at 3:25 PM, Samuel Pitoiset >> wrote: >>> >>> >>> >>> On 07/25/2018 02:55 PM, Bas Nieuwenhuizen wrote: hmm, not sure why that did not fail on my CTS runs ... >>> >>> >>> >>> Because 16bit is only enabled on Polaris? >> >> Wait what, it should be enabled on Vega too right? > > > It should but it's broken currently. Daniel will fix it later. hmm? Also the integer conversion should still kick in on vega right? Your failed test is not a 16-bit test. > > >> >>> >>> Reviewed-by: Bas Nieuwenhuizen On Wed, Jul 25, 2018 at 2:55 PM, Samuel Pitoiset wrote: > > > Move the integer conversion after the fixup. > > This fixes some regressions with > dEQP-VK.pipeline.vertex_input.single_attribute.mat4.as_a2r10g10b10* > > Fixes: b722b29f10 ("radv: add support for 16bit input/output") > Signed-off-by: Samuel Pitoiset > --- >src/amd/vulkan/radv_nir_to_llvm.c | 7 --- >1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/src/amd/vulkan/radv_nir_to_llvm.c > b/src/amd/vulkan/radv_nir_to_llvm.c > index 9f9dc0d4fe..64b6522cd9 100644 > --- a/src/amd/vulkan/radv_nir_to_llvm.c > +++ b/src/amd/vulkan/radv_nir_to_llvm.c > @@ -2030,15 +2030,16 @@ handle_vs_input_decl(struct radv_shader_context > *ctx, > output[chan] = > LLVMBuildBitCast(ctx->ac.builder, output[chan], ctx->ac.f32, ""); > output[chan] = > LLVMBuildFPTrunc(ctx->ac.builder, output[chan], ctx->ac.f16, ""); > } > - output[chan] = ac_to_integer(>ac, > output[chan]); > - if (type == GLSL_TYPE_UINT16 || type == > GLSL_TYPE_INT16) > - output[chan] = > LLVMBuildTrunc(ctx->ac.builder, output[chan], ctx->ac.i16, ""); > } > > unsigned alpha_adjust = > (ctx->options->key.vs.alpha_adjust >> (attrib_index * 2)) & 3; > output[3] = adjust_vertex_fetch_alpha(ctx, > alpha_adjust, > output[3]); > > for (unsigned chan = 0; chan < 4; chan++) { > + output[chan] = ac_to_integer(>ac, > output[chan]); > + if (type == GLSL_TYPE_UINT16 || type == > GLSL_TYPE_INT16) > + output[chan] = > LLVMBuildTrunc(ctx->ac.builder, output[chan], ctx->ac.i16, ""); > + > > ctx->inputs[ac_llvm_reg_index_soa(variable->data.location + i, chan)] = > output[chan]; > } > } > -- > 2.18.0 > > ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] radv: fix adjusting vertex fetches since 16bit support
On 07/25/2018 03:26 PM, Bas Nieuwenhuizen wrote: On Wed, Jul 25, 2018 at 3:25 PM, Samuel Pitoiset wrote: On 07/25/2018 02:55 PM, Bas Nieuwenhuizen wrote: hmm, not sure why that did not fail on my CTS runs ... Because 16bit is only enabled on Polaris? Wait what, it should be enabled on Vega too right? It should but it's broken currently. Daniel will fix it later. Reviewed-by: Bas Nieuwenhuizen On Wed, Jul 25, 2018 at 2:55 PM, Samuel Pitoiset wrote: Move the integer conversion after the fixup. This fixes some regressions with dEQP-VK.pipeline.vertex_input.single_attribute.mat4.as_a2r10g10b10* Fixes: b722b29f10 ("radv: add support for 16bit input/output") Signed-off-by: Samuel Pitoiset --- src/amd/vulkan/radv_nir_to_llvm.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/amd/vulkan/radv_nir_to_llvm.c b/src/amd/vulkan/radv_nir_to_llvm.c index 9f9dc0d4fe..64b6522cd9 100644 --- a/src/amd/vulkan/radv_nir_to_llvm.c +++ b/src/amd/vulkan/radv_nir_to_llvm.c @@ -2030,15 +2030,16 @@ handle_vs_input_decl(struct radv_shader_context *ctx, output[chan] = LLVMBuildBitCast(ctx->ac.builder, output[chan], ctx->ac.f32, ""); output[chan] = LLVMBuildFPTrunc(ctx->ac.builder, output[chan], ctx->ac.f16, ""); } - output[chan] = ac_to_integer(>ac, output[chan]); - if (type == GLSL_TYPE_UINT16 || type == GLSL_TYPE_INT16) - output[chan] = LLVMBuildTrunc(ctx->ac.builder, output[chan], ctx->ac.i16, ""); } unsigned alpha_adjust = (ctx->options->key.vs.alpha_adjust >> (attrib_index * 2)) & 3; output[3] = adjust_vertex_fetch_alpha(ctx, alpha_adjust, output[3]); for (unsigned chan = 0; chan < 4; chan++) { + output[chan] = ac_to_integer(>ac, output[chan]); + if (type == GLSL_TYPE_UINT16 || type == GLSL_TYPE_INT16) + output[chan] = LLVMBuildTrunc(ctx->ac.builder, output[chan], ctx->ac.i16, ""); + ctx->inputs[ac_llvm_reg_index_soa(variable->data.location + i, chan)] = output[chan]; } } -- 2.18.0 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] radv: fix adjusting vertex fetches since 16bit support
On Wed, Jul 25, 2018 at 3:25 PM, Samuel Pitoiset wrote: > > > On 07/25/2018 02:55 PM, Bas Nieuwenhuizen wrote: >> >> hmm, not sure why that did not fail on my CTS runs ... > > > Because 16bit is only enabled on Polaris? Wait what, it should be enabled on Vega too right? > > >> >> Reviewed-by: Bas Nieuwenhuizen >> >> On Wed, Jul 25, 2018 at 2:55 PM, Samuel Pitoiset >> wrote: >>> >>> Move the integer conversion after the fixup. >>> >>> This fixes some regressions with >>> dEQP-VK.pipeline.vertex_input.single_attribute.mat4.as_a2r10g10b10* >>> >>> Fixes: b722b29f10 ("radv: add support for 16bit input/output") >>> Signed-off-by: Samuel Pitoiset >>> --- >>> src/amd/vulkan/radv_nir_to_llvm.c | 7 --- >>> 1 file changed, 4 insertions(+), 3 deletions(-) >>> >>> diff --git a/src/amd/vulkan/radv_nir_to_llvm.c >>> b/src/amd/vulkan/radv_nir_to_llvm.c >>> index 9f9dc0d4fe..64b6522cd9 100644 >>> --- a/src/amd/vulkan/radv_nir_to_llvm.c >>> +++ b/src/amd/vulkan/radv_nir_to_llvm.c >>> @@ -2030,15 +2030,16 @@ handle_vs_input_decl(struct radv_shader_context >>> *ctx, >>> output[chan] = >>> LLVMBuildBitCast(ctx->ac.builder, output[chan], ctx->ac.f32, ""); >>> output[chan] = >>> LLVMBuildFPTrunc(ctx->ac.builder, output[chan], ctx->ac.f16, ""); >>> } >>> - output[chan] = ac_to_integer(>ac, >>> output[chan]); >>> - if (type == GLSL_TYPE_UINT16 || type == >>> GLSL_TYPE_INT16) >>> - output[chan] = >>> LLVMBuildTrunc(ctx->ac.builder, output[chan], ctx->ac.i16, ""); >>> } >>> >>> unsigned alpha_adjust = >>> (ctx->options->key.vs.alpha_adjust >> (attrib_index * 2)) & 3; >>> output[3] = adjust_vertex_fetch_alpha(ctx, alpha_adjust, >>> output[3]); >>> >>> for (unsigned chan = 0; chan < 4; chan++) { >>> + output[chan] = ac_to_integer(>ac, >>> output[chan]); >>> + if (type == GLSL_TYPE_UINT16 || type == >>> GLSL_TYPE_INT16) >>> + output[chan] = >>> LLVMBuildTrunc(ctx->ac.builder, output[chan], ctx->ac.i16, ""); >>> + >>> >>> ctx->inputs[ac_llvm_reg_index_soa(variable->data.location + i, chan)] = >>> output[chan]; >>> } >>> } >>> -- >>> 2.18.0 >>> >>> ___ >>> mesa-dev mailing list >>> mesa-dev@lists.freedesktop.org >>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] radv: fix adjusting vertex fetches since 16bit support
On 07/25/2018 02:55 PM, Bas Nieuwenhuizen wrote: hmm, not sure why that did not fail on my CTS runs ... Because 16bit is only enabled on Polaris? Reviewed-by: Bas Nieuwenhuizen On Wed, Jul 25, 2018 at 2:55 PM, Samuel Pitoiset wrote: Move the integer conversion after the fixup. This fixes some regressions with dEQP-VK.pipeline.vertex_input.single_attribute.mat4.as_a2r10g10b10* Fixes: b722b29f10 ("radv: add support for 16bit input/output") Signed-off-by: Samuel Pitoiset --- src/amd/vulkan/radv_nir_to_llvm.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/amd/vulkan/radv_nir_to_llvm.c b/src/amd/vulkan/radv_nir_to_llvm.c index 9f9dc0d4fe..64b6522cd9 100644 --- a/src/amd/vulkan/radv_nir_to_llvm.c +++ b/src/amd/vulkan/radv_nir_to_llvm.c @@ -2030,15 +2030,16 @@ handle_vs_input_decl(struct radv_shader_context *ctx, output[chan] = LLVMBuildBitCast(ctx->ac.builder, output[chan], ctx->ac.f32, ""); output[chan] = LLVMBuildFPTrunc(ctx->ac.builder, output[chan], ctx->ac.f16, ""); } - output[chan] = ac_to_integer(>ac, output[chan]); - if (type == GLSL_TYPE_UINT16 || type == GLSL_TYPE_INT16) - output[chan] = LLVMBuildTrunc(ctx->ac.builder, output[chan], ctx->ac.i16, ""); } unsigned alpha_adjust = (ctx->options->key.vs.alpha_adjust >> (attrib_index * 2)) & 3; output[3] = adjust_vertex_fetch_alpha(ctx, alpha_adjust, output[3]); for (unsigned chan = 0; chan < 4; chan++) { + output[chan] = ac_to_integer(>ac, output[chan]); + if (type == GLSL_TYPE_UINT16 || type == GLSL_TYPE_INT16) + output[chan] = LLVMBuildTrunc(ctx->ac.builder, output[chan], ctx->ac.i16, ""); + ctx->inputs[ac_llvm_reg_index_soa(variable->data.location + i, chan)] = output[chan]; } } -- 2.18.0 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] radv: fix adjusting vertex fetches since 16bit support
hmm, not sure why that did not fail on my CTS runs ... Reviewed-by: Bas Nieuwenhuizen On Wed, Jul 25, 2018 at 2:55 PM, Samuel Pitoiset wrote: > Move the integer conversion after the fixup. > > This fixes some regressions with > dEQP-VK.pipeline.vertex_input.single_attribute.mat4.as_a2r10g10b10* > > Fixes: b722b29f10 ("radv: add support for 16bit input/output") > Signed-off-by: Samuel Pitoiset > --- > src/amd/vulkan/radv_nir_to_llvm.c | 7 --- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/src/amd/vulkan/radv_nir_to_llvm.c > b/src/amd/vulkan/radv_nir_to_llvm.c > index 9f9dc0d4fe..64b6522cd9 100644 > --- a/src/amd/vulkan/radv_nir_to_llvm.c > +++ b/src/amd/vulkan/radv_nir_to_llvm.c > @@ -2030,15 +2030,16 @@ handle_vs_input_decl(struct radv_shader_context *ctx, > output[chan] = > LLVMBuildBitCast(ctx->ac.builder, output[chan], ctx->ac.f32, ""); > output[chan] = > LLVMBuildFPTrunc(ctx->ac.builder, output[chan], ctx->ac.f16, ""); > } > - output[chan] = ac_to_integer(>ac, output[chan]); > - if (type == GLSL_TYPE_UINT16 || type == > GLSL_TYPE_INT16) > - output[chan] = > LLVMBuildTrunc(ctx->ac.builder, output[chan], ctx->ac.i16, ""); > } > > unsigned alpha_adjust = (ctx->options->key.vs.alpha_adjust >> > (attrib_index * 2)) & 3; > output[3] = adjust_vertex_fetch_alpha(ctx, alpha_adjust, > output[3]); > > for (unsigned chan = 0; chan < 4; chan++) { > + output[chan] = ac_to_integer(>ac, output[chan]); > + if (type == GLSL_TYPE_UINT16 || type == > GLSL_TYPE_INT16) > + output[chan] = > LLVMBuildTrunc(ctx->ac.builder, output[chan], ctx->ac.i16, ""); > + > > ctx->inputs[ac_llvm_reg_index_soa(variable->data.location + i, chan)] = > output[chan]; > } > } > -- > 2.18.0 > > ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH] radv: fix adjusting vertex fetches since 16bit support
Move the integer conversion after the fixup. This fixes some regressions with dEQP-VK.pipeline.vertex_input.single_attribute.mat4.as_a2r10g10b10* Fixes: b722b29f10 ("radv: add support for 16bit input/output") Signed-off-by: Samuel Pitoiset --- src/amd/vulkan/radv_nir_to_llvm.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/amd/vulkan/radv_nir_to_llvm.c b/src/amd/vulkan/radv_nir_to_llvm.c index 9f9dc0d4fe..64b6522cd9 100644 --- a/src/amd/vulkan/radv_nir_to_llvm.c +++ b/src/amd/vulkan/radv_nir_to_llvm.c @@ -2030,15 +2030,16 @@ handle_vs_input_decl(struct radv_shader_context *ctx, output[chan] = LLVMBuildBitCast(ctx->ac.builder, output[chan], ctx->ac.f32, ""); output[chan] = LLVMBuildFPTrunc(ctx->ac.builder, output[chan], ctx->ac.f16, ""); } - output[chan] = ac_to_integer(>ac, output[chan]); - if (type == GLSL_TYPE_UINT16 || type == GLSL_TYPE_INT16) - output[chan] = LLVMBuildTrunc(ctx->ac.builder, output[chan], ctx->ac.i16, ""); } unsigned alpha_adjust = (ctx->options->key.vs.alpha_adjust >> (attrib_index * 2)) & 3; output[3] = adjust_vertex_fetch_alpha(ctx, alpha_adjust, output[3]); for (unsigned chan = 0; chan < 4; chan++) { + output[chan] = ac_to_integer(>ac, output[chan]); + if (type == GLSL_TYPE_UINT16 || type == GLSL_TYPE_INT16) + output[chan] = LLVMBuildTrunc(ctx->ac.builder, output[chan], ctx->ac.i16, ""); + ctx->inputs[ac_llvm_reg_index_soa(variable->data.location + i, chan)] = output[chan]; } } -- 2.18.0 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev