Merge branch '7.8'
[mesa.git] / src / gallium / drivers / r300 / r300_chipset.c
index 00fae8d26f3df80d1efede5f938a2baf314be5a8..c77e944b6d9acc01e8d16ae746ac75efeff258c0 100644 (file)
  * USE OR OTHER DEALINGS IN THE SOFTWARE. */
 
 #include "r300_chipset.h"
+
 #include "util/u_debug.h"
 
+#include <stdio.h>
+
 /* r300_chipset: A file all to itself for deducing the various properties of
  * Radeons. */
 
 void r300_parse_chipset(struct r300_capabilities* caps)
 {
     /* Reasonable defaults */
-    caps->has_tcl = getenv("RADEON_NO_TCL") ? FALSE : TRUE;
-    caps->is_r500 = FALSE;
     caps->num_vert_fpus = 4;
+    caps->num_tex_units = 16;
+    caps->has_tcl = debug_get_bool_option("RADEON_NO_TCL", FALSE) ? FALSE : TRUE;
+    caps->is_r400 = FALSE;
+    caps->is_r500 = FALSE;
+    caps->high_second_pipe = FALSE;
 
     /* Note: These are not ordered by PCI ID. I leave that task to GCC,
      * which will perform the ordering while collating jump tables. Instead,
@@ -40,6 +46,7 @@ void r300_parse_chipset(struct r300_capabilities* caps)
     switch (caps->pci_id) {
         case 0x4144:
             caps->family = CHIP_FAMILY_R300;
+            caps->high_second_pipe = TRUE;
             break;
 
         case 0x4145:
@@ -50,6 +57,7 @@ void r300_parse_chipset(struct r300_capabilities* caps)
         case 0x4E46:
         case 0x4E47:
             caps->family = CHIP_FAMILY_R300;
+            caps->high_second_pipe = TRUE;
             break;
 
         case 0x4150:
@@ -66,6 +74,7 @@ void r300_parse_chipset(struct r300_capabilities* caps)
         case 0x4E54:
         case 0x4E56:
             caps->family = CHIP_FAMILY_RV350;
+            caps->high_second_pipe = TRUE;
             break;
 
         case 0x4148:
@@ -76,10 +85,12 @@ void r300_parse_chipset(struct r300_capabilities* caps)
         case 0x4E49:
         case 0x4E4B:
             caps->family = CHIP_FAMILY_R350;
+            caps->high_second_pipe = TRUE;
             break;
 
         case 0x4E4A:
             caps->family = CHIP_FAMILY_R360;
+            caps->high_second_pipe = TRUE;
             break;
 
         case 0x5460:
@@ -91,14 +102,17 @@ void r300_parse_chipset(struct r300_capabilities* caps)
         case 0x5B64:
         case 0x5B65:
             caps->family = CHIP_FAMILY_RV370;
+            caps->high_second_pipe = TRUE;
             break;
 
         case 0x3150:
         case 0x3152:
         case 0x3154:
+        case 0x3155:
         case 0x3E50:
         case 0x3E54:
             caps->family = CHIP_FAMILY_RV380;
+            caps->high_second_pipe = TRUE;
             break;
 
         case 0x4A48:
@@ -113,6 +127,7 @@ void r300_parse_chipset(struct r300_capabilities* caps)
         case 0x4A54:
             caps->family = CHIP_FAMILY_R420;
             caps->num_vert_fpus = 6;
+            caps->is_r400 = TRUE;
             break;
 
         case 0x5548:
@@ -126,6 +141,7 @@ void r300_parse_chipset(struct r300_capabilities* caps)
         case 0x5D57:
             caps->family = CHIP_FAMILY_R423;
             caps->num_vert_fpus = 6;
+            caps->is_r400 = TRUE;
             break;
 
         case 0x554C:
@@ -137,6 +153,7 @@ void r300_parse_chipset(struct r300_capabilities* caps)
         case 0x5D4A:
             caps->family = CHIP_FAMILY_R430;
             caps->num_vert_fpus = 6;
+            caps->is_r400 = TRUE;
             break;
 
         case 0x5D4C:
@@ -147,6 +164,7 @@ void r300_parse_chipset(struct r300_capabilities* caps)
         case 0x5D52:
             caps->family = CHIP_FAMILY_R480;
             caps->num_vert_fpus = 6;
+            caps->is_r400 = TRUE;
             break;
 
         case 0x4B48:
@@ -156,6 +174,7 @@ void r300_parse_chipset(struct r300_capabilities* caps)
         case 0x4B4C:
             caps->family = CHIP_FAMILY_R481;
             caps->num_vert_fpus = 6;
+            caps->is_r400 = TRUE;
             break;
 
         case 0x5E4C:
@@ -172,6 +191,7 @@ void r300_parse_chipset(struct r300_capabilities* caps)
         case 0x5E4D:
             caps->family = CHIP_FAMILY_RV410;
             caps->num_vert_fpus = 6;
+            caps->is_r400 = TRUE;
             break;
 
         case 0x5954:
@@ -202,6 +222,7 @@ void r300_parse_chipset(struct r300_capabilities* caps)
         case 0x791F:
             caps->family = CHIP_FAMILY_RS690;
             caps->has_tcl = FALSE;
+            caps->is_r400 = TRUE;
             break;
 
         case 0x793F:
@@ -209,6 +230,7 @@ void r300_parse_chipset(struct r300_capabilities* caps)
         case 0x7942:
             caps->family = CHIP_FAMILY_RS600;
             caps->has_tcl = FALSE;
+            caps->is_r400 = TRUE;
             break;
 
         case 0x796C:
@@ -217,6 +239,7 @@ void r300_parse_chipset(struct r300_capabilities* caps)
         case 0x796F:
             caps->family = CHIP_FAMILY_RS740;
             caps->has_tcl = FALSE;
+            caps->is_r400 = TRUE;
             break;
 
         case 0x7100:
@@ -345,8 +368,7 @@ void r300_parse_chipset(struct r300_capabilities* caps)
             break;
 
         default:
-            debug_printf("r300: Warning: Unknown chipset 0x%x\n",
-                caps->pci_id);
-            break;
+            fprintf(stderr, "r300: Warning: Unknown chipset 0x%x\n",
+                    caps->pci_id);
     }
 }