diff options
author | Jerome Glisse <[email protected]> | 2010-08-23 15:39:39 -0400 |
---|---|---|
committer | Jerome Glisse <[email protected]> | 2010-08-23 15:42:32 -0400 |
commit | bcf7f66a934ebd9c91da90d6e1f9b169c33c746c (patch) | |
tree | 3b6bf92aad60327e309bf9ca0c480e1858ae746d /src/gallium/drivers/r600/r600_screen.c | |
parent | 6355ae2b80a01b1d58824ffeae0c638d917519c0 (diff) |
r600g: export one component per pixel + r7xx uncompression shader
We need to always at least export one component (wether it's depth
or color. Add valid r7xx shader program for depth decompression.
Signed-off-by: Jerome Glisse <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_screen.c')
-rw-r--r-- | src/gallium/drivers/r600/r600_screen.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_screen.c b/src/gallium/drivers/r600/r600_screen.c index cdaca9ed7db..13584329570 100644 --- a/src/gallium/drivers/r600/r600_screen.c +++ b/src/gallium/drivers/r600/r600_screen.c @@ -234,11 +234,34 @@ static void r600_destroy_screen(struct pipe_screen* pscreen) struct pipe_screen *r600_screen_create(struct radeon *rw) { struct r600_screen* rscreen; + enum radeon_family family = radeon_get_family(rw); rscreen = CALLOC_STRUCT(r600_screen); if (rscreen == NULL) { return NULL; } + + switch (family) { + case CHIP_R600: + case CHIP_RV610: + case CHIP_RV630: + case CHIP_RV670: + case CHIP_RV620: + case CHIP_RV635: + case CHIP_RS780: + case CHIP_RS880: + rscreen->chip_class = R600; + break; + case CHIP_RV770: + case CHIP_RV730: + case CHIP_RV710: + case CHIP_RV740: + rscreen->chip_class = R700; + break; + default: + FREE(rscreen); + return NULL; + } rscreen->rw = rw; rscreen->screen.winsys = (struct pipe_winsys*)rw; rscreen->screen.destroy = r600_destroy_screen; |