summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nv30/nv30_screen.c
diff options
context:
space:
mode:
authorKeith Whitwell <[email protected]>2009-12-21 19:18:41 +0000
committerKeith Whitwell <[email protected]>2009-12-21 19:18:41 +0000
commita5585cb533af3d4e5d5324d5f526447b98597402 (patch)
tree6706dbb8b4f994b919e247647c3e8853d067b45c /src/gallium/drivers/nv30/nv30_screen.c
parentd288a30610767f87e3e7c069730d4bc255246568 (diff)
parent574715d8368f99c0a5720a9676385d58d6cfdf30 (diff)
Merge commit 'origin/master' into i965g-restart
Conflicts: SConstruct configs/default configs/linux-dri
Diffstat (limited to 'src/gallium/drivers/nv30/nv30_screen.c')
-rw-r--r--src/gallium/drivers/nv30/nv30_screen.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/gallium/drivers/nv30/nv30_screen.c b/src/gallium/drivers/nv30/nv30_screen.c
index bb40e1803d1..7cd36902eb4 100644
--- a/src/gallium/drivers/nv30/nv30_screen.c
+++ b/src/gallium/drivers/nv30/nv30_screen.c
@@ -102,15 +102,24 @@ nv30_screen_surface_format_supported(struct pipe_screen *pscreen,
struct pipe_surface *front = ((struct nouveau_winsys *) pscreen->winsys)->front;
if (tex_usage & PIPE_TEXTURE_USAGE_RENDER_TARGET) {
- return (format == front->format);
+ switch (format) {
+ case PIPE_FORMAT_A8R8G8B8_UNORM:
+ case PIPE_FORMAT_R5G6B5_UNORM:
+ return TRUE;
+ default:
+ break;
+ }
} else
if (tex_usage & PIPE_TEXTURE_USAGE_DEPTH_STENCIL) {
switch (format) {
case PIPE_FORMAT_Z24S8_UNORM:
case PIPE_FORMAT_Z24X8_UNORM:
- return (front->format == PIPE_FORMAT_A8R8G8B8_UNORM);
+ return TRUE;
case PIPE_FORMAT_Z16_UNORM:
- return (front->format == PIPE_FORMAT_R5G6B5_UNORM);
+ if (front) {
+ return (front->format == PIPE_FORMAT_R5G6B5_UNORM);
+ }
+ return TRUE;
default:
break;
}