summaryrefslogtreecommitdiffstats
path: root/src/intel/isl
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2017-06-12 17:52:41 -0700
committerJason Ekstrand <[email protected]>2017-07-12 21:15:46 -0700
commit5b3363e3f17db887fedc58b8e15fa8b78a14e088 (patch)
treec22ae0ff8bcddf94d0ea6475e4d1653b9f08e369 /src/intel/isl
parenta668ba9c1888de1417c55b6181e287ccfaa7a6f6 (diff)
intel/isl: Add a helper to convert tilings from ISL to i915
Reviewed-by: Topi Pohjolainen <[email protected]> Reviewed-by: Chad Versace <[email protected]>
Diffstat (limited to 'src/intel/isl')
-rw-r--r--src/intel/isl/isl.h3
-rw-r--r--src/intel/isl/isl_drm.c25
2 files changed, 28 insertions, 0 deletions
diff --git a/src/intel/isl/isl.h b/src/intel/isl/isl.h
index 563bcfb04d6..dd550c349a7 100644
--- a/src/intel/isl/isl.h
+++ b/src/intel/isl/isl.h
@@ -1513,6 +1513,9 @@ isl_tiling_is_std_y(enum isl_tiling tiling)
return (1u << tiling) & ISL_TILING_STD_Y_MASK;
}
+uint32_t
+isl_tiling_to_i915_tiling(enum isl_tiling tiling);
+
const struct isl_drm_modifier_info * ATTRIBUTE_CONST
isl_drm_modifier_get_info(uint64_t modifier);
diff --git a/src/intel/isl/isl_drm.c b/src/intel/isl/isl_drm.c
index 8fccc40862f..b7a4997d2d0 100644
--- a/src/intel/isl/isl_drm.c
+++ b/src/intel/isl/isl_drm.c
@@ -25,10 +25,35 @@
#include <stdlib.h>
#include <drm_fourcc.h>
+#include <i915_drm.h>
#include "isl.h"
#include "common/gen_device_info.h"
+uint32_t
+isl_tiling_to_i915_tiling(enum isl_tiling tiling)
+{
+ switch (tiling) {
+ case ISL_TILING_LINEAR:
+ return I915_TILING_NONE;
+
+ case ISL_TILING_X:
+ return I915_TILING_X;
+
+ case ISL_TILING_Y0:
+ return I915_TILING_Y;
+
+ case ISL_TILING_W:
+ case ISL_TILING_Yf:
+ case ISL_TILING_Ys:
+ case ISL_TILING_HIZ:
+ case ISL_TILING_CCS:
+ return I915_TILING_NONE;
+ }
+
+ unreachable("Invalid ISL tiling");
+}
+
struct isl_drm_modifier_info modifier_info[] = {
{
.modifier = DRM_FORMAT_MOD_NONE,