diff options
| -rw-r--r-- | src/gallium/drivers/r300/r300_screen.c | 18 | 
1 files changed, 15 insertions, 3 deletions
| diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c index 5088c13039..d7354ad893 100644 --- a/src/gallium/drivers/r300/r300_screen.c +++ b/src/gallium/drivers/r300/r300_screen.c @@ -120,7 +120,7 @@ static int r300_get_param(struct pipe_screen* pscreen, int param)               * shows why this is silly. Assuming RGBA, 4cpp, we can see that               * 4096*4096*4096 = 64.0 GiB exactly, so it's not exactly               * practical. However, if at some point a game really wants this, -             * then we can remove this limit. */ +             * then we can remove or raise this limit. */              if (r300screen->caps->is_r500) {                  /* 9 == 256x256x256 */                  return 9; @@ -141,7 +141,7 @@ static int r300_get_param(struct pipe_screen* pscreen, int param)          case PIPE_CAP_TEXTURE_MIRROR_REPEAT:              return 1;          case PIPE_CAP_MAX_VERTEX_TEXTURE_UNITS: -            /* XXX guessing */ +            /* XXX guessing (what a terrible guess) */              return 2;          default:              debug_printf("r300: Implementation error: Bad param %d\n", @@ -174,13 +174,25 @@ static float r300_get_paramf(struct pipe_screen* pscreen, int param)      }  } -/* XXX moar formats */ +/* XXX even moar formats */  static boolean check_tex_2d_format(enum pipe_format format)  {      switch (format) { +        /* Colorbuffer */          case PIPE_FORMAT_A8R8G8B8_UNORM: +        /* Texture */          case PIPE_FORMAT_I8_UNORM: +        /* Z buffer */ +        case PIPE_FORMAT_Z16_UNORM: +        /* Z buffer with stencil */ +        case PIPE_FORMAT_Z24S8_UNORM:              return TRUE; + +        /* These formats are explicitly not supported, in order to keep +         * people from wasting their time trying to implement them... */ +        case PIPE_FORMAT_S8Z24_UNORM: +            return FALSE; +          default:              debug_printf("r300: Warning: Got unknown format: %s, in %s\n",                  pf_name(format), __FUNCTION__); | 
