I just realized that the state tracker will degrade this to 16 attribs
anyway (looks like mesa can only handle 16 generic attribs).
So, I suppose it's pretty much untested and not all that helpful...

Roland

Am 01.01.2018 um 03:11 schrieb srol...@vmware.com:
> From: Roland Scheidegger <srol...@vmware.com>
> 
> Evergreen clearly has 32 slots, so it should just work (and the affected array
> is already sized with PIPE_MAX_ATTRIB).
> Note: As dx10.1 chips, r600/r700 should support this too, but seemingly 
> there's
> only 16 resource slots for fetch shaders (fs). However, a quick looks seems to
> suggest the fs slots are actually shared with vs and not separate (as the 
> fetch
> shader uses a offset of 160 on these chips), therefore (we're not even close
> to using all vs slots) just using different offsets might work, but I cannot
> verify this.
> 
> No piglit change.
> ---
>  src/gallium/drivers/r600/r600_pipe.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/gallium/drivers/r600/r600_pipe.c 
> b/src/gallium/drivers/r600/r600_pipe.c
> index 2583c719a3..c294973e8b 100644
> --- a/src/gallium/drivers/r600/r600_pipe.c
> +++ b/src/gallium/drivers/r600/r600_pipe.c
> @@ -559,7 +559,7 @@ static int r600_get_shader_param(struct pipe_screen* 
> pscreen,
>       case PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH:
>               return 32;
>       case PIPE_SHADER_CAP_MAX_INPUTS:
> -             return shader == PIPE_SHADER_VERTEX ? 16 : 32;
> +             return shader == PIPE_SHADER_VERTEX ? (rscreen->b.family >= 
> CHIP_CEDAR ? 32 : 16) : 32;
>       case PIPE_SHADER_CAP_MAX_OUTPUTS:
>               return shader == PIPE_SHADER_FRAGMENT ? 8 : 32;
>       case PIPE_SHADER_CAP_MAX_TEMPS:
> 

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

Reply via email to