From: Roland Scheidegger <[email protected]>

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:
-- 
2.12.3

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to