diff options
author | Alex Deucher <[email protected]> | 2012-02-10 10:49:13 -0500 |
---|---|---|
committer | Alex Deucher <[email protected]> | 2012-02-10 11:31:23 -0500 |
commit | acca690c259824636ef1ff684a10bd1caca4751f (patch) | |
tree | 12c745d4b5fe20a0dc5f0ff0b396e7b9a11bf952 /src/gallium/drivers/r600 | |
parent | ad9455314d9c5cb9b31af22116841ee3e642a55b (diff) |
r600g: fix tex tile_type offset for cayman
Noticed by taiu on IRC.
Signed-off-by: Alex Deucher <[email protected]>
Note: this is a candidate for the stable branches.
Diffstat (limited to 'src/gallium/drivers/r600')
-rw-r--r-- | src/gallium/drivers/r600/evergreen_state.c | 5 | ||||
-rw-r--r-- | src/gallium/drivers/r600/evergreend.h | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c index dd67e4bf1d8..56a497b081b 100644 --- a/src/gallium/drivers/r600/evergreen_state.c +++ b/src/gallium/drivers/r600/evergreen_state.c @@ -1190,8 +1190,11 @@ static struct pipe_sampler_view *evergreen_create_sampler_view(struct pipe_conte rstate->val[0] = (S_030000_DIM(r600_tex_dim(texture->target)) | S_030000_PITCH((pitch / 8) - 1) | - S_030000_NON_DISP_TILING_ORDER(tile_type) | S_030000_TEX_WIDTH(width - 1)); + if (rscreen->chip_class == CAYMAN) + rstate->val[0] |= CM_S_030000_NON_DISP_TILING_ORDER(tile_type); + else + rstate->val[0] |= S_030000_NON_DISP_TILING_ORDER(tile_type); rstate->val[1] = (S_030004_TEX_HEIGHT(height - 1) | S_030004_TEX_DEPTH(depth - 1) | S_030004_ARRAY_MODE(array_mode)); diff --git a/src/gallium/drivers/r600/evergreend.h b/src/gallium/drivers/r600/evergreend.h index 1d870760f61..d1dbd843a28 100644 --- a/src/gallium/drivers/r600/evergreend.h +++ b/src/gallium/drivers/r600/evergreend.h @@ -966,6 +966,9 @@ #define S_030000_NON_DISP_TILING_ORDER(x) (((x) & 0x1) << 5) #define G_030000_NON_DISP_TILING_ORDER(x) (((x) >> 5) & 0x1) #define C_030000_NON_DISP_TILING_ORDER 0xFFFFFFDF +#define CM_S_030000_NON_DISP_TILING_ORDER(x) (((x) & 0x3) << 4) +#define CM_G_030000_NON_DISP_TILING_ORDER(x) (((x) >> 4) & 0x3) +#define CM_C_030000_NON_DISP_TILING_ORDER 0xFFFFFFCF #define S_030000_PITCH(x) (((x) & 0xFFF) << 6) #define G_030000_PITCH(x) (((x) >> 6) & 0xFFF) #define C_030000_PITCH 0xFFFC003F |