r600g: bump texture/cb limits appropriately for evergreen
authorAlex Deucher <alexdeucher@gmail.com>
Thu, 2 Dec 2010 21:09:22 +0000 (16:09 -0500)
committerAlex Deucher <alexdeucher@gmail.com>
Thu, 2 Dec 2010 21:11:08 +0000 (16:11 -0500)
src/gallium/drivers/r600/r600_pipe.c

index e7776a0f8506a0a8a35dbbb7cdf40fb75e2d324d..4592cbc70260aff48fe0344635150c9c7bc5df61 100644 (file)
@@ -255,6 +255,9 @@ static const char* r600_get_name(struct pipe_screen* pscreen)
 
 static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
 {
+       struct r600_screen *rscreen = (struct r600_screen *)pscreen;
+       enum radeon_family family = r600_get_family(rscreen->radeon);
+
        switch (param) {
        /* Supported features (boolean caps). */
        case PIPE_CAP_NPOT_TEXTURES:
@@ -287,7 +290,10 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
        case PIPE_CAP_MAX_TEXTURE_2D_LEVELS:
        case PIPE_CAP_MAX_TEXTURE_3D_LEVELS:
        case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
-               return 14;
+               if (family >= CHIP_CEDAR)
+                       return 15;
+               else
+                       return 14;
        case PIPE_CAP_MAX_VERTEX_TEXTURE_UNITS:
                /* FIXME allow this once infrastructure is there */
                return 16;
@@ -316,12 +322,18 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
 
 static float r600_get_paramf(struct pipe_screen* pscreen, enum pipe_cap param)
 {
+       struct r600_screen *rscreen = (struct r600_screen *)pscreen;
+       enum radeon_family family = r600_get_family(rscreen->radeon);
+
        switch (param) {
        case PIPE_CAP_MAX_LINE_WIDTH:
        case PIPE_CAP_MAX_LINE_WIDTH_AA:
        case PIPE_CAP_MAX_POINT_WIDTH:
        case PIPE_CAP_MAX_POINT_WIDTH_AA:
-               return 8192.0f;
+               if (family >= CHIP_CEDAR)
+                       return 16384.0f;
+               else
+                       return 8192.0f;
        case PIPE_CAP_MAX_TEXTURE_ANISOTROPY:
                return 16.0f;
        case PIPE_CAP_MAX_TEXTURE_LOD_BIAS: