r300g: Add high_second_pipe cap for R3xx chipsets.
authorCorbin Simpson <MostAwesomeDude@gmail.com>
Wed, 19 Aug 2009 00:49:58 +0000 (17:49 -0700)
committerCorbin Simpson <MostAwesomeDude@gmail.com>
Wed, 19 Aug 2009 04:25:53 +0000 (21:25 -0700)
This name is totally subject to change if ever I need to separate R3xx
for some other reason.

src/gallium/drivers/r300/r300_chipset.c
src/gallium/drivers/r300/r300_chipset.h

index 864bdedec033b5af2eee119fbfb2c18dcba0f18f..d138866d33cac217ab015b0729f88fe2a9879105 100644 (file)
 void r300_parse_chipset(struct r300_capabilities* caps)
 {
     /* Reasonable defaults */
+    caps->num_vert_fpus = 4;
     caps->has_tcl = getenv("RADEON_NO_TCL") ? FALSE : TRUE;
     caps->is_r500 = FALSE;
-    caps->num_vert_fpus = 4;
+    caps->high_second_pipe = FALSE;
 
 
     /* Note: These are not ordered by PCI ID. I leave that task to GCC,
@@ -41,6 +42,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:
@@ -51,6 +53,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:
@@ -67,6 +70,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:
@@ -77,10 +81,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:
@@ -92,6 +98,7 @@ 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:
@@ -100,6 +107,7 @@ void r300_parse_chipset(struct r300_capabilities* caps)
         case 0x3E50:
         case 0x3E54:
             caps->family = CHIP_FAMILY_RV380;
+            caps->high_second_pipe = TRUE;
             break;
 
         case 0x4A48:
index 21eebeae6005c8a6d4b5f2b119b3286c65a4b287..322d4a57e414f9e04284e505d0eb83a875f9323b 100644 (file)
@@ -44,6 +44,8 @@ struct r300_capabilities {
      * - Blend color is split across two registers
      * - Universal Shader (US) block used for fragment shaders */
     boolean is_r500;
+    /* Whether or not the second pixel pipe is accessed with the high bit */
+    boolean high_second_pipe;
 };
 
 /* Enumerations for legibility and telling which card we're running on. */