Re: [Piglit] [PATCH] arb_texture_query_lod: add tolerance for some comparisons

2017-09-19 Thread Nicolai Hähnle

Seems reasonable.

Reviewed-by: Nicolai Hähnle 


On 15.09.2017 00:59, Roland Scheidegger wrote:

ping?

Am 09.09.2017 um 07:31 schrieb srol...@vmware.com:

From: Roland Scheidegger 

Tolerance was added for the tests a while ago, but it looks like it was
forgotten for the nearest_biased test (the nearest one has it).
Also, for the linear test, add tolerance too when comparing x and y lodq
results - the values should probably be the same mostly, however it's possible
(due to interpolation inaccuracies) to get values just below 0 or above 3, in
which case they will get clamped. (Could just do a clamp instead of allowing
tolerance I suppose, but some tolerance might be allowed in any case there
too.)

This is required for llvmpipe (with a in-progress change) to pass.
---
  .../execution/fs-textureQueryLOD-linear.shader_test | 2 +-
  .../execution/fs-textureQueryLOD-nearest-biased.shader_test | 6 +-
  2 files changed, 6 insertions(+), 2 deletions(-)

diff --git 
a/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-linear.shader_test
 
b/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-linear.shader_test
index 6afef71..bb2d8ba 100644
--- 
a/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-linear.shader_test
+++ 
b/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-linear.shader_test
@@ -60,7 +60,7 @@ void main()
  }
  
  vec2 queried_lod = textureQueryLOD(tex, gl_TexCoord[0].st);

-if (queried_lod.x != queried_lod.y) {
+if (!equal(queried_lod.x, queried_lod.y)) {
discard;
  }
  if (!equal(queried_lod.x, lod)) {
diff --git 
a/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-nearest-biased.shader_test
 
b/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-nearest-biased.shader_test
index 1e0c557..4487930 100644
--- 
a/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-nearest-biased.shader_test
+++ 
b/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-nearest-biased.shader_test
@@ -51,6 +51,10 @@ GL_ARB_texture_query_lod
  #define MAX_MIPMAP_LEVEL 3
  uniform sampler2D tex;
  uniform float lod;
+
+#define tolerance (1.0/255.0)
+#define equal(x,y) (abs((x) - (y)) <= tolerance)
+
  void main()
  {
  /* The ARB_texture_query_lod spec says that if TEXTURE_MIN_FILTER is set
@@ -69,7 +73,7 @@ void main()
  }
  
  vec2 queried_lod = textureQueryLOD(tex, gl_TexCoord[0].st);

-if (queried_lod.x != min(queried_lod.y, MAX_MIPMAP_LEVEL)) {
+if (!equal(queried_lod.x, min(queried_lod.y, MAX_MIPMAP_LEVEL))) {
discard;
  }
  if (queried_lod.x != min(nearest_lod + 1, MAX_MIPMAP_LEVEL)) {



___
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit




--
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.
___
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit


Re: [Piglit] [PATCH] arb_texture_query_lod: add tolerance for some comparisons

2017-09-14 Thread Roland Scheidegger
ping?

Am 09.09.2017 um 07:31 schrieb srol...@vmware.com:
> From: Roland Scheidegger 
> 
> Tolerance was added for the tests a while ago, but it looks like it was
> forgotten for the nearest_biased test (the nearest one has it).
> Also, for the linear test, add tolerance too when comparing x and y lodq
> results - the values should probably be the same mostly, however it's possible
> (due to interpolation inaccuracies) to get values just below 0 or above 3, in
> which case they will get clamped. (Could just do a clamp instead of allowing
> tolerance I suppose, but some tolerance might be allowed in any case there
> too.)
> 
> This is required for llvmpipe (with a in-progress change) to pass.
> ---
>  .../execution/fs-textureQueryLOD-linear.shader_test | 2 +-
>  .../execution/fs-textureQueryLOD-nearest-biased.shader_test | 6 
> +-
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git 
> a/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-linear.shader_test
>  
> b/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-linear.shader_test
> index 6afef71..bb2d8ba 100644
> --- 
> a/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-linear.shader_test
> +++ 
> b/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-linear.shader_test
> @@ -60,7 +60,7 @@ void main()
>  }
>  
>  vec2 queried_lod = textureQueryLOD(tex, gl_TexCoord[0].st);
> -if (queried_lod.x != queried_lod.y) {
> +if (!equal(queried_lod.x, queried_lod.y)) {
>   discard;
>  }
>  if (!equal(queried_lod.x, lod)) {
> diff --git 
> a/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-nearest-biased.shader_test
>  
> b/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-nearest-biased.shader_test
> index 1e0c557..4487930 100644
> --- 
> a/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-nearest-biased.shader_test
> +++ 
> b/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-nearest-biased.shader_test
> @@ -51,6 +51,10 @@ GL_ARB_texture_query_lod
>  #define MAX_MIPMAP_LEVEL 3
>  uniform sampler2D tex;
>  uniform float lod;
> +
> +#define tolerance (1.0/255.0)
> +#define equal(x,y) (abs((x) - (y)) <= tolerance)
> +
>  void main()
>  {
>  /* The ARB_texture_query_lod spec says that if TEXTURE_MIN_FILTER is set
> @@ -69,7 +73,7 @@ void main()
>  }
>  
>  vec2 queried_lod = textureQueryLOD(tex, gl_TexCoord[0].st);
> -if (queried_lod.x != min(queried_lod.y, MAX_MIPMAP_LEVEL)) {
> +if (!equal(queried_lod.x, min(queried_lod.y, MAX_MIPMAP_LEVEL))) {
>   discard;
>  }
>  if (queried_lod.x != min(nearest_lod + 1, MAX_MIPMAP_LEVEL)) {
> 

___
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit


[Piglit] [PATCH] arb_texture_query_lod: add tolerance for some comparisons

2017-09-08 Thread sroland
From: Roland Scheidegger 

Tolerance was added for the tests a while ago, but it looks like it was
forgotten for the nearest_biased test (the nearest one has it).
Also, for the linear test, add tolerance too when comparing x and y lodq
results - the values should probably be the same mostly, however it's possible
(due to interpolation inaccuracies) to get values just below 0 or above 3, in
which case they will get clamped. (Could just do a clamp instead of allowing
tolerance I suppose, but some tolerance might be allowed in any case there
too.)

This is required for llvmpipe (with a in-progress change) to pass.
---
 .../execution/fs-textureQueryLOD-linear.shader_test | 2 +-
 .../execution/fs-textureQueryLOD-nearest-biased.shader_test | 6 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git 
a/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-linear.shader_test
 
b/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-linear.shader_test
index 6afef71..bb2d8ba 100644
--- 
a/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-linear.shader_test
+++ 
b/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-linear.shader_test
@@ -60,7 +60,7 @@ void main()
 }
 
 vec2 queried_lod = textureQueryLOD(tex, gl_TexCoord[0].st);
-if (queried_lod.x != queried_lod.y) {
+if (!equal(queried_lod.x, queried_lod.y)) {
discard;
 }
 if (!equal(queried_lod.x, lod)) {
diff --git 
a/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-nearest-biased.shader_test
 
b/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-nearest-biased.shader_test
index 1e0c557..4487930 100644
--- 
a/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-nearest-biased.shader_test
+++ 
b/tests/spec/arb_texture_query_lod/execution/fs-textureQueryLOD-nearest-biased.shader_test
@@ -51,6 +51,10 @@ GL_ARB_texture_query_lod
 #define MAX_MIPMAP_LEVEL 3
 uniform sampler2D tex;
 uniform float lod;
+
+#define tolerance (1.0/255.0)
+#define equal(x,y) (abs((x) - (y)) <= tolerance)
+
 void main()
 {
 /* The ARB_texture_query_lod spec says that if TEXTURE_MIN_FILTER is set
@@ -69,7 +73,7 @@ void main()
 }
 
 vec2 queried_lod = textureQueryLOD(tex, gl_TexCoord[0].st);
-if (queried_lod.x != min(queried_lod.y, MAX_MIPMAP_LEVEL)) {
+if (!equal(queried_lod.x, min(queried_lod.y, MAX_MIPMAP_LEVEL))) {
discard;
 }
 if (queried_lod.x != min(nearest_lod + 1, MAX_MIPMAP_LEVEL)) {
-- 
2.7.4

___
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit