r600g: report INTEGERS cap if glsl130 is on.
authorDave Airlie <airlied@redhat.com>
Fri, 20 Apr 2012 18:33:22 +0000 (19:33 +0100)
committerDave Airlie <airlied@redhat.com>
Fri, 20 Apr 2012 18:33:22 +0000 (19:33 +0100)
This cap is used by u_blitter to decide if it can use integers
in vertex data.

fixes some crashes with glsl130 in piglit

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

index 34e508a1bd3dffb4fc6e2c46fd71f7cb3f11a64a..3a947d8aa1cbbfbef288a0be22a19d31b5d7208a 100644 (file)
@@ -501,6 +501,7 @@ static float r600_get_paramf(struct pipe_screen* pscreen,
 
 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:
@@ -549,7 +550,7 @@ 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:
-               return 0;
+               return rscreen->glsl_feature_level >= 130;
        case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
                return 16;
        }