radeonsi: reduce MAX_GEOMETRY_OUTPUT_VERTICES

Submitted by Marek Olšák on June 14, 2019, 11 p.m.

Details

Message ID 20190614230015.2935-1-maraeo@gmail.com
State New
Headers show
Series "radeonsi: reduce MAX_GEOMETRY_OUTPUT_VERTICES" ( rev: 1 ) in Mesa

Not browsing as part of any series.

Commit Message

Marek Olšák June 14, 2019, 11 p.m.
From: Nicolai Hähnle <nicolai.haehnle@amd.com>

This fixes piglit spec@glsl-1.50@gs-max-output.
---
 src/gallium/drivers/radeonsi/si_get.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Patch hide | download patch | download mbox

diff --git a/src/gallium/drivers/radeonsi/si_get.c b/src/gallium/drivers/radeonsi/si_get.c
index c1bddca1a66..9496817ac84 100644
--- a/src/gallium/drivers/radeonsi/si_get.c
+++ b/src/gallium/drivers/radeonsi/si_get.c
@@ -256,21 +256,23 @@  static int si_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
 		return sscreen->info.chip_class <= GFX8 ?
 			PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_R600 : 0;
 
 	/* Stream output. */
 	case PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_COMPONENTS:
 	case PIPE_CAP_MAX_STREAM_OUTPUT_INTERLEAVED_COMPONENTS:
 		return 32*4;
 
 	/* Geometry shader output. */
 	case PIPE_CAP_MAX_GEOMETRY_OUTPUT_VERTICES:
-		return 1024;
+		/* gfx8 and earlier can do more, but nobody uses it because it
+		 * would be a bad idea for performance. */
+		return 256;
 	case PIPE_CAP_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS:
 		return 4095;
 	case PIPE_CAP_MAX_GS_INVOCATIONS:
 		/* The closed driver exposes 127, but 125 is the greatest
 		 * number that works. */
 		return 125;
 
 	case PIPE_CAP_MAX_VERTEX_ATTRIB_STRIDE:
 		return 2048;
 

Comments

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>

On Sat, Jun 15, 2019 at 1:00 AM Marek Olšák <maraeo@gmail.com> wrote:
>
> From: Nicolai Hähnle <nicolai.haehnle@amd.com>
>
> This fixes piglit spec@glsl-1.50@gs-max-output.
> ---
>  src/gallium/drivers/radeonsi/si_get.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/drivers/radeonsi/si_get.c b/src/gallium/drivers/radeonsi/si_get.c
> index c1bddca1a66..9496817ac84 100644
> --- a/src/gallium/drivers/radeonsi/si_get.c
> +++ b/src/gallium/drivers/radeonsi/si_get.c
> @@ -256,21 +256,23 @@ static int si_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
>                 return sscreen->info.chip_class <= GFX8 ?
>                         PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_R600 : 0;
>
>         /* Stream output. */
>         case PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_COMPONENTS:
>         case PIPE_CAP_MAX_STREAM_OUTPUT_INTERLEAVED_COMPONENTS:
>                 return 32*4;
>
>         /* Geometry shader output. */
>         case PIPE_CAP_MAX_GEOMETRY_OUTPUT_VERTICES:
> -               return 1024;
> +               /* gfx8 and earlier can do more, but nobody uses it because it
> +                * would be a bad idea for performance. */
> +               return 256;
>         case PIPE_CAP_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS:
>                 return 4095;
>         case PIPE_CAP_MAX_GS_INVOCATIONS:
>                 /* The closed driver exposes 127, but 125 is the greatest
>                  * number that works. */
>                 return 125;
>
>         case PIPE_CAP_MAX_VERTEX_ATTRIB_STRIDE:
>                 return 2048;
>
> --
> 2.17.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
On Fri, 2019-06-14 at 19:00 -0400, Marek Olšák wrote:
> From: Nicolai Hähnle <nicolai.haehnle@amd.com>
> 
> This fixes piglit spec@glsl-1.50@gs-max-output.
> ---


Does it make sense to nominate this for stable?

	J.A.

>  src/gallium/drivers/radeonsi/si_get.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/src/gallium/drivers/radeonsi/si_get.c b/src/gallium/drivers/radeonsi/si_get.c
> index c1bddca1a66..9496817ac84 100644
> --- a/src/gallium/drivers/radeonsi/si_get.c
> +++ b/src/gallium/drivers/radeonsi/si_get.c
> @@ -256,21 +256,23 @@ static int si_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
>  		return sscreen->info.chip_class <= GFX8 ?
>  			PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_R600 : 0;
>  
>  	/* Stream output. */
>  	case PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_COMPONENTS:
>  	case PIPE_CAP_MAX_STREAM_OUTPUT_INTERLEAVED_COMPONENTS:
>  		return 32*4;
>  
>  	/* Geometry shader output. */
>  	case PIPE_CAP_MAX_GEOMETRY_OUTPUT_VERTICES:
> -		return 1024;
> +		/* gfx8 and earlier can do more, but nobody uses it because it
> +		 * would be a bad idea for performance. */
> +		return 256;
>  	case PIPE_CAP_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS:
>  		return 4095;
>  	case PIPE_CAP_MAX_GS_INVOCATIONS:
>  		/* The closed driver exposes 127, but 125 is the greatest
>  		 * number that works. */
>  		return 125;
>  
>  	case PIPE_CAP_MAX_VERTEX_ATTRIB_STRIDE:
>  		return 2048;
>