Mesa (master): r600g: add llano support

Alex Deucher agd5f at kemper.freedesktop.org
Tue May 31 22:11:33 UTC 2011


Module: Mesa
Branch: master
Commit: 414cd5df50435f475d92b02c229453d037369c0f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=414cd5df50435f475d92b02c229453d037369c0f

Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Mon Apr  4 12:06:11 2011 -0400

r600g: add llano support

Signed-off-by: Alex Deucher <alexdeucher at gmail.com>

---

 src/gallium/drivers/r600/evergreen_state.c |   44 ++++++++++++++++++++++++++++
 src/gallium/drivers/r600/r600.h            |    2 +
 src/gallium/drivers/r600/r600_asm.c        |    2 +
 src/gallium/drivers/r600/r600_pipe.c       |    4 ++
 src/gallium/winsys/r600/drm/r600_drm.c     |    2 +
 src/gallium/winsys/r600/drm/radeon_pciid.c |   11 +++++++
 6 files changed, 65 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index 14860af..ea37b17 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -1253,6 +1253,48 @@ void evergreen_init_config(struct r600_pipe_context *rctx)
 		num_hs_stack_entries = 42;
 		num_ls_stack_entries = 42;
 		break;
+	case CHIP_SUMO:
+		num_ps_gprs = 93;
+		num_vs_gprs = 46;
+		num_temp_gprs = 4;
+		num_gs_gprs = 31;
+		num_es_gprs = 31;
+		num_hs_gprs = 23;
+		num_ls_gprs = 23;
+		num_ps_threads = 96;
+		num_vs_threads = 25;
+		num_gs_threads = 25;
+		num_es_threads = 25;
+		num_hs_threads = 25;
+		num_ls_threads = 25;
+		num_ps_stack_entries = 42;
+		num_vs_stack_entries = 42;
+		num_gs_stack_entries = 42;
+		num_es_stack_entries = 42;
+		num_hs_stack_entries = 42;
+		num_ls_stack_entries = 42;
+		break;
+	case CHIP_SUMO2:
+		num_ps_gprs = 93;
+		num_vs_gprs = 46;
+		num_temp_gprs = 4;
+		num_gs_gprs = 31;
+		num_es_gprs = 31;
+		num_hs_gprs = 23;
+		num_ls_gprs = 23;
+		num_ps_threads = 96;
+		num_vs_threads = 25;
+		num_gs_threads = 25;
+		num_es_threads = 25;
+		num_hs_threads = 25;
+		num_ls_threads = 25;
+		num_ps_stack_entries = 85;
+		num_vs_stack_entries = 85;
+		num_gs_stack_entries = 85;
+		num_es_stack_entries = 85;
+		num_hs_stack_entries = 85;
+		num_ls_stack_entries = 85;
+		break;
 	case CHIP_BARTS:
 		num_ps_gprs = 93;
 		num_vs_gprs = 46;
@@ -1322,6 +1364,8 @@ void evergreen_init_config(struct r600_pipe_context *rctx)
 	switch (family) {
 	case CHIP_CEDAR:
 	case CHIP_PALM:
+	case CHIP_SUMO:
+	case CHIP_SUMO2:
 	case CHIP_CAICOS:
 		break;
 	default:
diff --git a/src/gallium/drivers/r600/r600.h b/src/gallium/drivers/r600/r600.h
index 996418a..b90de7c 100644
--- a/src/gallium/drivers/r600/r600.h
+++ b/src/gallium/drivers/r600/r600.h
@@ -92,6 +92,8 @@ enum radeon_family {
 	CHIP_CYPRESS,
 	CHIP_HEMLOCK,
 	CHIP_PALM,
+	CHIP_SUMO,
+	CHIP_SUMO2,
 	CHIP_BARTS,
 	CHIP_TURKS,
 	CHIP_CAICOS,
diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c
index 00572cb..dda429e 100644
--- a/src/gallium/drivers/r600/r600_asm.c
+++ b/src/gallium/drivers/r600/r600_asm.c
@@ -222,6 +222,8 @@ int r600_bc_init(struct r600_bc *bc, enum radeon_family family)
 	case CHIP_CYPRESS:
 	case CHIP_HEMLOCK:
 	case CHIP_PALM:
+	case CHIP_SUMO:
+	case CHIP_SUMO2:
 	case CHIP_BARTS:
 	case CHIP_TURKS:
 	case CHIP_CAICOS:
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c
index 402ccb2..f924d79 100644
--- a/src/gallium/drivers/r600/r600_pipe.c
+++ b/src/gallium/drivers/r600/r600_pipe.c
@@ -259,6 +259,8 @@ static struct pipe_context *r600_create_context(struct pipe_screen *screen, void
 	case CHIP_CYPRESS:
 	case CHIP_HEMLOCK:
 	case CHIP_PALM:
+	case CHIP_SUMO:
+	case CHIP_SUMO2:
 	case CHIP_BARTS:
 	case CHIP_TURKS:
 	case CHIP_CAICOS:
@@ -334,6 +336,8 @@ static const char *r600_get_family_name(enum radeon_family family)
 	case CHIP_CYPRESS: return "AMD CYPRESS";
 	case CHIP_HEMLOCK: return "AMD HEMLOCK";
 	case CHIP_PALM: return "AMD PALM";
+	case CHIP_SUMO: return "AMD SUMO";
+	case CHIP_SUMO2: return "AMD SUMO2";
 	case CHIP_BARTS: return "AMD BARTS";
 	case CHIP_TURKS: return "AMD TURKS";
 	case CHIP_CAICOS: return "AMD CAICOS";
diff --git a/src/gallium/winsys/r600/drm/r600_drm.c b/src/gallium/winsys/r600/drm/r600_drm.c
index cbed89d..03fe385 100644
--- a/src/gallium/winsys/r600/drm/r600_drm.c
+++ b/src/gallium/winsys/r600/drm/r600_drm.c
@@ -320,6 +320,8 @@ static struct radeon *radeon_new(int fd, unsigned device)
 	case CHIP_CYPRESS:
 	case CHIP_HEMLOCK:
 	case CHIP_PALM:
+	case CHIP_SUMO:
+	case CHIP_SUMO2:
 	case CHIP_BARTS:
 	case CHIP_TURKS:
 	case CHIP_CAICOS:
diff --git a/src/gallium/winsys/r600/drm/radeon_pciid.c b/src/gallium/winsys/r600/drm/radeon_pciid.c
index b999e45..5c41a10 100644
--- a/src/gallium/winsys/r600/drm/radeon_pciid.c
+++ b/src/gallium/winsys/r600/drm/radeon_pciid.c
@@ -439,6 +439,17 @@ static const struct pci_id radeon_pci_id[] = {
 	{0x1002, 0x9614, CHIP_RS780},
 	{0x1002, 0x9615, CHIP_RS780},
 	{0x1002, 0x9616, CHIP_RS780},
+	{0x1002, 0x9640, CHIP_SUMO},
+	{0x1002, 0x9641, CHIP_SUMO},
+	{0x1002, 0x9642, CHIP_SUMO2},
+	{0x1002, 0x9643, CHIP_SUMO2},
+	{0x1002, 0x9644, CHIP_SUMO2},
+	{0x1002, 0x9645, CHIP_SUMO2},
+	{0x1002, 0x9647, CHIP_SUMO},
+	{0x1002, 0x9648, CHIP_SUMO},
+	{0x1002, 0x964a, CHIP_SUMO},
+	{0x1002, 0x964e, CHIP_SUMO},
+	{0x1002, 0x964f, CHIP_SUMO},
 	{0x1002, 0x9710, CHIP_RS880},
 	{0x1002, 0x9711, CHIP_RS880},
 	{0x1002, 0x9712, CHIP_RS880},




More information about the mesa-commit mailing list