diff options
author | Marek Olšák <[email protected]> | 2012-08-12 20:06:33 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2012-08-27 04:31:00 +0200 |
commit | a3d9d7ec79d6f7205fab2324e47d8ea185431de0 (patch) | |
tree | 3aa8b27b500d9e7535053e01c5345f025ab4f86a /src/gallium/drivers/r600/evergreend.h | |
parent | 48edfe0505ee79d35f770f53b9c9b7ca3c69fd2b (diff) |
r600g: implement compression for MSAA colorbuffers for evergreen
This adds the FMASK and CMASK buffers. They share the same resource
with color data.
COMPRESSION and FAST_CLEAR are always enabled if both FMASK and CMASK are
allocated. We initialize the CMASK to a "compressed" state (not "fast cleared"),
so that we can keep FAST_CLEAR enabled all the time.
Both FMASK and CMASK must be present at the moment. If either one is missing,
the other one is not used.
v2: add cayman regs in the list
Reviewed-by: Jerome Glisse <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/evergreend.h')
-rw-r--r-- | src/gallium/drivers/r600/evergreend.h | 76 |
1 files changed, 67 insertions, 9 deletions
diff --git a/src/gallium/drivers/r600/evergreend.h b/src/gallium/drivers/r600/evergreend.h index d1b3cd33bb7..0c56aa6f693 100644 --- a/src/gallium/drivers/r600/evergreend.h +++ b/src/gallium/drivers/r600/evergreend.h @@ -377,6 +377,7 @@ #define S_028C74_BANK_WIDTH(x) (((x) & 0x3) << 13) #define S_028C74_BANK_HEIGHT(x) (((x) & 0x3) << 16) #define S_028C74_MACRO_TILE_ASPECT(x) (((x) & 0x3) << 19) +#define S_028C74_FMASK_BANK_HEIGHT(x) (((x) & 0x3) << 22) #define R_028C78_CB_COLOR0_DIM 0x028C78 #define S_028C78_WIDTH_MAX(x) (((x) & 0xFFFF) << 0) @@ -386,15 +387,6 @@ #define G_028C78_HEIGHT_MAX(x) (((x) >> 16) & 0xFFFF) #define C_028C78_HEIGHT_MAX 0x0000FFFF -#define R_028C7C_CB_COLOR0_CMASK 0x028C7C -#define R_028C80_CB_COLOR0_CMASK_SLICE 0x028C80 -#define R_028C84_CB_COLOR0_FMASK 0x028C84 -#define R_028C88_CB_COLOR0_FMASK_SLICE 0x028C88 - -#define R_028C8C_CB_COLOR0_CLEAR_WORD0 0x028C8C -#define R_028C90_CB_COLOR0_CLEAR_WORD1 0x028C90 -#define R_028C94_CB_COLOR0_CLEAR_WORD2 0x028C94 -#define R_028C98_CB_COLOR0_CLEAR_WORD3 0x028C98 /* alpha same */ #define R_028410_SX_ALPHA_TEST_CONTROL 0x028410 @@ -1978,6 +1970,16 @@ #define S_028C6C_SLICE_MAX(x) (((x) & 0x7FF) << 13) #define G_028C6C_SLICE_MAX(x) (((x) >> 13) & 0x7FF) #define C_028C6C_SLICE_MAX 0xFF001FFF +#define R_028C7C_CB_COLOR0_CMASK 0x028C7C +#define R_028C80_CB_COLOR0_CMASK_SLICE 0x028C80 +#define S_028C80_TILE_MAX(x) (((x) & 0x3FFF) << 0) +#define R_028C84_CB_COLOR0_FMASK 0x028C84 +#define R_028C88_CB_COLOR0_FMASK_SLICE 0x028C88 +#define S_028C88_TILE_MAX(x) (((x) & 0x3FFFFF) << 0) +#define R_028C8C_CB_COLOR0_CLEAR_WORD0 0x028C8C +#define R_028C90_CB_COLOR0_CLEAR_WORD1 0x028C90 +#define R_028C94_CB_COLOR0_CLEAR_WORD2 0x028C94 +#define R_028C98_CB_COLOR0_CLEAR_WORD3 0x028C98 #define R_028C9C_CB_COLOR1_BASE 0x00028C9C #define R_028CA0_CB_COLOR1_PITCH 0x00028CA0 #define R_028CA4_CB_COLOR1_SLICE 0x00028CA4 @@ -1985,6 +1987,14 @@ #define R_028CAC_CB_COLOR1_INFO 0x00028CAC #define R_028CB0_CB_COLOR1_ATTRIB 0x00028CB0 #define R_028CB4_CB_COLOR1_DIM 0x00028CB4 +#define R_028CB8_CB_COLOR1_CMASK 0x028CB8 +#define R_028CBC_CB_COLOR1_CMASK_SLICE 0x028CBC +#define R_028CC0_CB_COLOR1_FMASK 0x028CC0 +#define R_028CC4_CB_COLOR1_FMASK_SLICE 0x028CC4 +#define R_028CC8_CB_COLOR1_CLEAR_WORD0 0x028CC8 +#define R_028CCC_CB_COLOR1_CLEAR_WORD1 0x028CCC +#define R_028CD0_CB_COLOR1_CLEAR_WORD2 0x028CD0 +#define R_028CD4_CB_COLOR1_CLEAR_WORD3 0x028CD4 #define R_028CD8_CB_COLOR2_BASE 0x00028CD8 #define R_028CDC_CB_COLOR2_PITCH 0x00028CDC #define R_028CE0_CB_COLOR2_SLICE 0x00028CE0 @@ -1992,6 +2002,14 @@ #define R_028CE8_CB_COLOR2_INFO 0x00028CE8 #define R_028CEC_CB_COLOR2_ATTRIB 0x00028CEC #define R_028CF0_CB_COLOR2_DIM 0x00028CF0 +#define R_028CF4_CB_COLOR2_CMASK 0x028CF4 +#define R_028CF8_CB_COLOR2_CMASK_SLICE 0x028CF8 +#define R_028CFC_CB_COLOR2_FMASK 0x028CFC +#define R_028D00_CB_COLOR2_FMASK_SLICE 0x028D00 +#define R_028D04_CB_COLOR2_CLEAR_WORD0 0x028D04 +#define R_028D08_CB_COLOR2_CLEAR_WORD1 0x028D08 +#define R_028D0C_CB_COLOR2_CLEAR_WORD2 0x028D0C +#define R_028D10_CB_COLOR2_CLEAR_WORD3 0x028D10 #define R_028D14_CB_COLOR3_BASE 0x00028D14 #define R_028D18_CB_COLOR3_PITCH 0x00028D18 #define R_028D1C_CB_COLOR3_SLICE 0x00028D1C @@ -1999,6 +2017,14 @@ #define R_028D24_CB_COLOR3_INFO 0x00028D24 #define R_028D28_CB_COLOR3_ATTRIB 0x00028D28 #define R_028D2C_CB_COLOR3_DIM 0x00028D2C +#define R_028D30_CB_COLOR3_CMASK 0x028D30 +#define R_028D34_CB_COLOR3_CMASK_SLICE 0x028D34 +#define R_028D38_CB_COLOR3_FMASK 0x028D38 +#define R_028D3C_CB_COLOR3_FMASK_SLICE 0x028D3C +#define R_028D40_CB_COLOR3_CLEAR_WORD0 0x028D40 +#define R_028D44_CB_COLOR3_CLEAR_WORD1 0x028D44 +#define R_028D48_CB_COLOR3_CLEAR_WORD2 0x028D48 +#define R_028D4C_CB_COLOR3_CLEAR_WORD3 0x028D4C #define R_028D50_CB_COLOR4_BASE 0x00028D50 #define R_028D54_CB_COLOR4_PITCH 0x00028D54 #define R_028D58_CB_COLOR4_SLICE 0x00028D58 @@ -2006,6 +2032,14 @@ #define R_028D60_CB_COLOR4_INFO 0x00028D60 #define R_028D64_CB_COLOR4_ATTRIB 0x00028D64 #define R_028D68_CB_COLOR4_DIM 0x00028D68 +#define R_028D6C_CB_COLOR4_CMASK 0x028D6C +#define R_028D70_CB_COLOR4_CMASK_SLICE 0x028D70 +#define R_028D74_CB_COLOR4_FMASK 0x028D74 +#define R_028D78_CB_COLOR4_FMASK_SLICE 0x028D78 +#define R_028D7C_CB_COLOR4_CLEAR_WORD0 0x028D7C +#define R_028D80_CB_COLOR4_CLEAR_WORD1 0x028D80 +#define R_028D84_CB_COLOR4_CLEAR_WORD2 0x028D84 +#define R_028D88_CB_COLOR4_CLEAR_WORD3 0x028D88 #define R_028D8C_CB_COLOR5_BASE 0x00028D8C #define R_028D90_CB_COLOR5_PITCH 0x00028D90 #define R_028D94_CB_COLOR5_SLICE 0x00028D94 @@ -2013,6 +2047,14 @@ #define R_028D9C_CB_COLOR5_INFO 0x00028D9C #define R_028DA0_CB_COLOR5_ATTRIB 0x00028DA0 #define R_028DA4_CB_COLOR5_DIM 0x00028DA4 +#define R_028DA8_CB_COLOR5_CMASK 0x028DA8 +#define R_028DAC_CB_COLOR5_CMASK_SLICE 0x028DAC +#define R_028DB0_CB_COLOR5_FMASK 0x028DB0 +#define R_028DB4_CB_COLOR5_FMASK_SLICE 0x028DB4 +#define R_028DB8_CB_COLOR5_CLEAR_WORD0 0x028DB8 +#define R_028DBC_CB_COLOR5_CLEAR_WORD1 0x028DBC +#define R_028DC0_CB_COLOR5_CLEAR_WORD2 0x028DC0 +#define R_028DC4_CB_COLOR5_CLEAR_WORD3 0x028DC4 #define R_028DC8_CB_COLOR6_BASE 0x00028DC8 #define R_028DCC_CB_COLOR6_PITCH 0x00028DCC #define R_028DD0_CB_COLOR6_SLICE 0x00028DD0 @@ -2020,6 +2062,14 @@ #define R_028DD8_CB_COLOR6_INFO 0x00028DD8 #define R_028DDC_CB_COLOR6_ATTRIB 0x00028DDC #define R_028DE0_CB_COLOR6_DIM 0x00028DE0 +#define R_028DE4_CB_COLOR6_CMASK 0x028DE4 +#define R_028DE8_CB_COLOR6_CMASK_SLICE 0x028DE8 +#define R_028DEC_CB_COLOR6_FMASK 0x028DEC +#define R_028DF0_CB_COLOR6_FMASK_SLICE 0x028DF0 +#define R_028DF4_CB_COLOR6_CLEAR_WORD0 0x028DF4 +#define R_028DF8_CB_COLOR6_CLEAR_WORD1 0x028DF8 +#define R_028DFC_CB_COLOR6_CLEAR_WORD2 0x028DFC +#define R_028E00_CB_COLOR6_CLEAR_WORD3 0x028E00 #define R_028E04_CB_COLOR7_BASE 0x00028E04 #define R_028E08_CB_COLOR7_PITCH 0x00028E08 #define R_028E0C_CB_COLOR7_SLICE 0x00028E0C @@ -2027,6 +2077,14 @@ #define R_028E14_CB_COLOR7_INFO 0x00028E14 #define R_028E18_CB_COLOR7_ATTRIB 0x00028E18 #define R_028E1C_CB_COLOR7_DIM 0x00028E1C +#define R_028E20_CB_COLOR7_CMASK 0x028E20 +#define R_028E24_CB_COLOR7_CMASK_SLICE 0x028E24 +#define R_028E28_CB_COLOR7_FMASK 0x028E28 +#define R_028E2C_CB_COLOR7_FMASK_SLICE 0x028E2C +#define R_028E30_CB_COLOR7_CLEAR_WORD0 0x028E30 +#define R_028E34_CB_COLOR7_CLEAR_WORD1 0x028E34 +#define R_028E38_CB_COLOR7_CLEAR_WORD2 0x028E38 +#define R_028E3C_CB_COLOR7_CLEAR_WORD3 0x028E3C #define R_028E40_CB_COLOR8_BASE 0x00028E40 #define R_028E44_CB_COLOR8_PITCH 0x00028E44 #define R_028E48_CB_COLOR8_SLICE 0x00028E48 |