r600g: enable integer shader cap for evergreen.
authorDave Airlie <airlied@redhat.com>
Sun, 9 Oct 2011 15:47:03 +0000 (16:47 +0100)
committerDave Airlie <airlied@redhat.com>
Sun, 9 Oct 2011 15:48:45 +0000 (16:48 +0100)
Will get to adding r600/r700/cayman support, have it mostly written on
another PC.

Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/drivers/r600/r600_pipe.c

index 73c2b333031dfb42f979bb3918ef16845af3d4b7..d0a86ded83cdb9dcf3b2d490beec48a69fb89cb7 100644 (file)
@@ -441,6 +441,7 @@ static float r600_get_paramf(struct pipe_screen* pscreen, enum pipe_cap param)
 
 static int r600_get_shader_param(struct pipe_screen* pscreen, unsigned shader, enum pipe_shader_cap param)
 {
+       struct r600_screen *rscreen = (struct r600_screen *)pscreen;
        switch(shader)
        {
        case PIPE_SHADER_FRAGMENT:
@@ -489,6 +490,8 @@ static int r600_get_shader_param(struct pipe_screen* pscreen, unsigned shader, e
        case PIPE_SHADER_CAP_SUBROUTINES:
                return 0;
        case PIPE_SHADER_CAP_INTEGERS:
+               if (rscreen->chip_class == EVERGREEN)
+                       return 1;
                return 0;
        case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
                return 16;