r300g: add is_r400 flag
r4xx has some additional fragment shader registers compared to r3xx.
This commit is contained in:
parent
4c9a8a14e5
commit
e279d18232
|
@ -33,6 +33,7 @@ void r300_parse_chipset(struct r300_capabilities* caps)
|
|||
/* Reasonable defaults */
|
||||
caps->num_vert_fpus = 4;
|
||||
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;
|
||||
|
||||
|
@ -123,6 +124,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:
|
||||
|
@ -136,6 +138,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:
|
||||
|
@ -147,6 +150,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:
|
||||
|
@ -157,6 +161,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:
|
||||
|
@ -166,6 +171,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:
|
||||
|
@ -182,36 +188,42 @@ 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:
|
||||
case 0x5955:
|
||||
caps->family = CHIP_FAMILY_RS480;
|
||||
caps->has_tcl = FALSE;
|
||||
caps->is_r400 = TRUE;
|
||||
break;
|
||||
|
||||
case 0x5974:
|
||||
case 0x5975:
|
||||
caps->family = CHIP_FAMILY_RS482;
|
||||
caps->has_tcl = FALSE;
|
||||
caps->is_r400 = TRUE;
|
||||
break;
|
||||
|
||||
case 0x5A41:
|
||||
case 0x5A42:
|
||||
caps->family = CHIP_FAMILY_RS400;
|
||||
caps->has_tcl = FALSE;
|
||||
caps->is_r400 = TRUE;
|
||||
break;
|
||||
|
||||
case 0x5A61:
|
||||
case 0x5A62:
|
||||
caps->family = CHIP_FAMILY_RC410;
|
||||
caps->has_tcl = FALSE;
|
||||
caps->is_r400 = TRUE;
|
||||
break;
|
||||
|
||||
case 0x791E:
|
||||
case 0x791F:
|
||||
caps->family = CHIP_FAMILY_RS690;
|
||||
caps->has_tcl = FALSE;
|
||||
caps->is_r400 = TRUE;
|
||||
break;
|
||||
|
||||
case 0x793F:
|
||||
|
@ -219,6 +231,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:
|
||||
|
@ -227,6 +240,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:
|
||||
|
|
|
@ -40,11 +40,18 @@ struct r300_capabilities {
|
|||
unsigned num_z_pipes;
|
||||
/* Whether or not TCL is physically present */
|
||||
boolean has_tcl;
|
||||
/* Whether or not this is R400. The differences compared to their R3xx
|
||||
* cousins are:
|
||||
* - Extended fragment shader registers
|
||||
* - Blend LTE/GTE thresholds */
|
||||
boolean is_r400;
|
||||
/* Whether or not this is an RV515 or newer; R500s have many differences
|
||||
* that require extra consideration, compared to their R3xx cousins:
|
||||
* - Extra bit of width and height on texture sizes
|
||||
* - Blend color is split across two registers
|
||||
* - Universal Shader (US) block used for fragment shaders */
|
||||
* - Blend LTE/GTE thresholds
|
||||
* - Universal Shader (US) block used for fragment shaders
|
||||
* - FP16 blending and multisampling */
|
||||
boolean is_r500;
|
||||
/* Whether or not the second pixel pipe is accessed with the high bit */
|
||||
boolean high_second_pipe;
|
||||
|
|
Loading…
Reference in New Issue