ac/surface/gfx10: allow "rotated" micro mode

Standard mode does not support DCC.

The R is retconned to "render target" on gfx10.

Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
Nicolai Hähnle 2018-06-28 21:01:40 +02:00 committed by Marek Olšák
parent a66be784c3
commit 84e7ee421f
2 changed files with 8 additions and 8 deletions

View file

@ -1612,7 +1612,7 @@ static int gfx9_compute_surface(ADDR_HANDLE addrlib,
surf->micro_tile_mode = RADEON_MICRO_MODE_DISPLAY;
break;
/* R = rotated. */
/* R = rotated (gfx9), render target (gfx10). */
case ADDR_SW_256B_R:
case ADDR_SW_4KB_R:
case ADDR_SW_64KB_R:
@ -1622,13 +1622,13 @@ static int gfx9_compute_surface(ADDR_HANDLE addrlib,
case ADDR_SW_64KB_R_X:
case ADDR_SW_VAR_R_X:
/* The rotated micro tile mode doesn't work if both CMASK and RB+ are
* used at the same time. This case is not currently expected to occur
* because we don't use rotated. Enforce this restriction on all chips
* to facilitate testing.
* used at the same time. We currently do not use rotated
* in gfx9.
*/
assert(!"rotate micro tile mode is unsupported");
r = ADDR_ERROR;
goto error;
assert(info->chip_class >= GFX10 ||
!"rotate micro tile mode is unsupported");
surf->micro_tile_mode = RADEON_MICRO_MODE_ROTATED;
break;
/* Z = depth. */
case ADDR_SW_4KB_Z:

View file

@ -54,7 +54,7 @@ enum radeon_micro_mode {
RADEON_MICRO_MODE_DISPLAY = 0,
RADEON_MICRO_MODE_THIN = 1,
RADEON_MICRO_MODE_DEPTH = 2,
RADEON_MICRO_MODE_ROTATED = 3,
RADEON_MICRO_MODE_ROTATED = 3, /* gfx10+: render target */
};
/* the first 16 bits are reserved for libdrm_radeon, don't use them */