diff options
Diffstat (limited to 'src/gallium/drivers/r300/r300_screen.c')
-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 5088c130392..d7354ad893e 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__); |