Re: [Mesa-dev] [PATCH] llvmpipe: increase max texture size to 2GB

2019-10-10 Thread Roland Scheidegger
Am 10.10.19 um 20:52 schrieb Jose Fonseca:
> Sounds great.
> 
> Reviewed-by: Jose Fonseca 
> 
> BTW, it's not really difficult to do gather with unsigned offsets: add
> 0x8000 to the base, subtract 0x800 to the offsets, and use the
> signed gather.   If the cost of doing so is significant, we could do
> this just for large textures, by adding a bit per texture to the shader key.
Right, that should work. I guess the cost should be insignificant
(although might make debugging harder?). Theoretically the base address
adjustment could even be done outside the shader (though that would be
looking a bit odd, in any case it's just a single scalar add per jit
invocation), and the offset adjustment could be done while the offsets
are still vectorized.

Roland


> 
> Jose
> 
> 
> 
> *From:* srol...@vmware.com 
> *Sent:* Thursday, October 10, 2019 19:18
> *To:* Jose Fonseca ; mesa-dev@lists.freedesktop.org
> 
> *Cc:* Roland Scheidegger 
> *Subject:* [PATCH] llvmpipe: increase max texture size to 2GB
>  
> From: Roland Scheidegger 
> 
> The 1GB limit was arbitrary, increase this to 2GB (which is the max
> possible without code changes).
> ---
>  src/gallium/drivers/llvmpipe/lp_limits.h | 6 +-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/src/gallium/drivers/llvmpipe/lp_limits.h
> b/src/gallium/drivers/llvmpipe/lp_limits.h
> index c2808162c78..569179ecdf4 100644
> --- a/src/gallium/drivers/llvmpipe/lp_limits.h
> +++ b/src/gallium/drivers/llvmpipe/lp_limits.h
> @@ -43,7 +43,11 @@
>  /**
>   * Max texture sizes
>   */
> -#define LP_MAX_TEXTURE_SIZE (1 * 1024 * 1024 * 1024ULL)  /* 1GB for now */
> +/**
> + * 2GB is the actual max currently (we always use 32bit offsets, and both
> + * llvm GEP as well as avx2 gather use signed offsets).
> + */
> +#define LP_MAX_TEXTURE_SIZE (2 * 1024 * 1024 * 1024ULL)
>  #define LP_MAX_TEXTURE_2D_LEVELS 14  /* 8K x 8K for now */
>  #define LP_MAX_TEXTURE_3D_LEVELS 12  /* 2K x 2K x 2K for now */
>  #define LP_MAX_TEXTURE_CUBE_LEVELS 14  /* 8K x 8K for now */
> -- 
> 2.17.1
> 

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH] llvmpipe: increase max texture size to 2GB

2019-10-10 Thread Jose Fonseca
Sounds great.

Reviewed-by: Jose Fonseca 

BTW, it's not really difficult to do gather with unsigned offsets: add 
0x8000 to the base, subtract 0x800 to the offsets, and use the signed 
gather.   If the cost of doing so is significant, we could do this just for 
large textures, by adding a bit per texture to the shader key.

Jose



From: srol...@vmware.com 
Sent: Thursday, October 10, 2019 19:18
To: Jose Fonseca ; mesa-dev@lists.freedesktop.org 

Cc: Roland Scheidegger 
Subject: [PATCH] llvmpipe: increase max texture size to 2GB

From: Roland Scheidegger 

The 1GB limit was arbitrary, increase this to 2GB (which is the max
possible without code changes).
---
 src/gallium/drivers/llvmpipe/lp_limits.h | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/llvmpipe/lp_limits.h 
b/src/gallium/drivers/llvmpipe/lp_limits.h
index c2808162c78..569179ecdf4 100644
--- a/src/gallium/drivers/llvmpipe/lp_limits.h
+++ b/src/gallium/drivers/llvmpipe/lp_limits.h
@@ -43,7 +43,11 @@
 /**
  * Max texture sizes
  */
-#define LP_MAX_TEXTURE_SIZE (1 * 1024 * 1024 * 1024ULL)  /* 1GB for now */
+/**
+ * 2GB is the actual max currently (we always use 32bit offsets, and both
+ * llvm GEP as well as avx2 gather use signed offsets).
+ */
+#define LP_MAX_TEXTURE_SIZE (2 * 1024 * 1024 * 1024ULL)
 #define LP_MAX_TEXTURE_2D_LEVELS 14  /* 8K x 8K for now */
 #define LP_MAX_TEXTURE_3D_LEVELS 12  /* 2K x 2K x 2K for now */
 #define LP_MAX_TEXTURE_CUBE_LEVELS 14  /* 8K x 8K for now */
--
2.17.1

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

[Mesa-dev] [PATCH] llvmpipe: increase max texture size to 2GB

2019-10-10 Thread sroland
From: Roland Scheidegger 

The 1GB limit was arbitrary, increase this to 2GB (which is the max
possible without code changes).
---
 src/gallium/drivers/llvmpipe/lp_limits.h | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/llvmpipe/lp_limits.h 
b/src/gallium/drivers/llvmpipe/lp_limits.h
index c2808162c78..569179ecdf4 100644
--- a/src/gallium/drivers/llvmpipe/lp_limits.h
+++ b/src/gallium/drivers/llvmpipe/lp_limits.h
@@ -43,7 +43,11 @@
 /**
  * Max texture sizes
  */
-#define LP_MAX_TEXTURE_SIZE (1 * 1024 * 1024 * 1024ULL)  /* 1GB for now */
+/**
+ * 2GB is the actual max currently (we always use 32bit offsets, and both
+ * llvm GEP as well as avx2 gather use signed offsets).
+ */
+#define LP_MAX_TEXTURE_SIZE (2 * 1024 * 1024 * 1024ULL)
 #define LP_MAX_TEXTURE_2D_LEVELS 14  /* 8K x 8K for now */
 #define LP_MAX_TEXTURE_3D_LEVELS 12  /* 2K x 2K x 2K for now */
 #define LP_MAX_TEXTURE_CUBE_LEVELS 14  /* 8K x 8K for now */
-- 
2.17.1

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev