Re: [PATCH libdrm] radeon: Fix 1D tiling for CIK

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 18.09.2013 17:54, schrieb Alex Deucher:
On Wed, Sep 18, 2013 at 9:51 AM, Michel Dänzer <michel@xxxxxxxxxxx> wrote:
From: Michel Dänzer <michel.daenzer@xxxxxxx>

The main difference is that the tiling mode index changed for 1D tiled
depth/stencil surfaces.

Signed-off-by: Michel Dänzer <michel.daenzer@xxxxxxx>
One comment below, other than that,

Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>

---
  include/drm/radeon_drm.h | 15 +++++++++++++++
  radeon/radeon_surface.c  | 15 ++++++++++++---
  2 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/include/drm/radeon_drm.h b/include/drm/radeon_drm.h
index 86cef15..533c3dc 100644
--- a/include/drm/radeon_drm.h
+++ b/include/drm/radeon_drm.h
@@ -1004,4 +1004,19 @@ struct drm_radeon_info {
  #define SI_TILE_MODE_DEPTH_STENCIL_2D_4AA      3
  #define SI_TILE_MODE_DEPTH_STENCIL_2D_8AA      2

+#define CIK_TILE_MODE_COLOR_LINEAR_ALIGNED     8
+#define CIK_TILE_MODE_COLOR_1D                 13
+#define CIK_TILE_MODE_COLOR_1D_SCANOUT         9
+#define CIK_TILE_MODE_COLOR_2D_8BPP            14
+#define CIK_TILE_MODE_COLOR_2D_16BPP           15
+#define CIK_TILE_MODE_COLOR_2D_32BPP           16
+#define CIK_TILE_MODE_COLOR_2D_64BPP           17
+#define CIK_TILE_MODE_COLOR_2D_SCANOUT_16BPP   11
+#define CIK_TILE_MODE_COLOR_2D_SCANOUT_32BPP   12
+#define CIK_TILE_MODE_DEPTH_STENCIL_1D         5
+#define CIK_TILE_MODE_DEPTH_STENCIL_2D         0
And by the way, that looks a bit strange:
+#define CIK_TILE_MODE_DEPTH_STENCIL_2D_2AA     3
+#define CIK_TILE_MODE_DEPTH_STENCIL_2D_4AA     3


Christian.

+#define CIK_TILE_MODE_DEPTH_STENCIL_2D_8AA     2
+
Can you send a patch to add these to radeon_drm.h in the kernel as well?

  #endif
diff --git a/radeon/radeon_surface.c b/radeon/radeon_surface.c
index 818e26a..1710e34 100644
--- a/radeon/radeon_surface.c
+++ b/radeon/radeon_surface.c
@@ -1382,10 +1382,16 @@ static int si_surface_sanity(struct radeon_surface_manager *surf_man,
          break;
      case RADEON_SURF_MODE_1D:
          if (surf->flags & RADEON_SURF_SBUFFER) {
-            *stencil_tile_mode = SI_TILE_MODE_DEPTH_STENCIL_1D;
+            if (surf_man->family >= CHIP_BONAIRE)
+                *stencil_tile_mode = CIK_TILE_MODE_DEPTH_STENCIL_1D;
+            else
+                *stencil_tile_mode = SI_TILE_MODE_DEPTH_STENCIL_1D;
          }
          if (surf->flags & RADEON_SURF_ZBUFFER) {
-            *tile_mode = SI_TILE_MODE_DEPTH_STENCIL_1D;
+            if (surf_man->family >= CHIP_BONAIRE)
+                *tile_mode = CIK_TILE_MODE_DEPTH_STENCIL_1D;
+            else
+                *tile_mode = SI_TILE_MODE_DEPTH_STENCIL_1D;
          } else if (surf->flags & RADEON_SURF_SCANOUT) {
              *tile_mode = SI_TILE_MODE_COLOR_1D_SCANOUT;
          } else {
@@ -1643,7 +1649,10 @@ static int si_surface_init_2d(struct radeon_surface_manager *surf_man,
                  tile_mode = SI_TILE_MODE_COLOR_1D_SCANOUT;
                  break;
              case SI_TILE_MODE_DEPTH_STENCIL_2D:
-                tile_mode = SI_TILE_MODE_DEPTH_STENCIL_1D;
+                if (surf_man->family >= CHIP_BONAIRE)
+                    tile_mode = CIK_TILE_MODE_DEPTH_STENCIL_1D;
+                else
+                    tile_mode = SI_TILE_MODE_DEPTH_STENCIL_1D;
                  break;
              default:
                  return -EINVAL;
--
1.8.4.rc3

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel





[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux