Re: [Mesa-dev] [PATCH] radv: fix adjusting vertex fetches since 16bit support

2018-07-25 Thread Bas Nieuwenhuizen
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

2018-07-25 Thread Samuel Pitoiset



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

2018-07-25 Thread Bas Nieuwenhuizen
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

2018-07-25 Thread Samuel Pitoiset



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

2018-07-25 Thread Bas Nieuwenhuizen
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

2018-07-25 Thread Samuel Pitoiset
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