Mesa (master): isl: Add a helper for getting a depth format from an isl_format

Jason Ekstrand jekstrand at kemper.freedesktop.org
Mon Aug 8 18:14:23 UTC 2016


Module: Mesa
Branch: master
Commit: 21d5c1be6a334b924ac3dcedbdc35285e0c1ba16
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=21d5c1be6a334b924ac3dcedbdc35285e0c1ba16

Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date:   Sat Aug  6 09:11:10 2016 -0700

isl: Add a helper for getting a depth format from an isl_format

Signed-off-by: Jason Ekstrand <jason at jlekstrand.net>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/intel/isl/isl.h        |  2 ++
 src/intel/isl/isl_format.c | 24 ++++++++++++++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/src/intel/isl/isl.h b/src/intel/isl/isl.h
index 19673f8..4caf0e8 100644
--- a/src/intel/isl/isl.h
+++ b/src/intel/isl/isl.h
@@ -1016,6 +1016,8 @@ isl_format_has_int_channel(enum isl_format fmt)
 
 unsigned isl_format_get_num_channels(enum isl_format fmt);
 
+uint32_t isl_format_get_depth_format(enum isl_format fmt, bool has_stencil);
+
 static inline bool
 isl_format_is_compressed(enum isl_format fmt)
 {
diff --git a/src/intel/isl/isl_format.c b/src/intel/isl/isl_format.c
index e0b91bb..ef1324c 100644
--- a/src/intel/isl/isl_format.c
+++ b/src/intel/isl/isl_format.c
@@ -476,6 +476,30 @@ isl_format_get_num_channels(enum isl_format fmt)
           (fmtl->channels.i.bits > 0);
 }
 
+uint32_t
+isl_format_get_depth_format(enum isl_format fmt, bool has_stencil)
+{
+   switch (fmt) {
+   default:
+      unreachable("bad isl depth format");
+   case ISL_FORMAT_R32_FLOAT_X8X24_TYPELESS:
+      assert(has_stencil);
+      return 0; /* D32_FLOAT_S8X24_UINT */
+   case ISL_FORMAT_R32_FLOAT:
+      assert(!has_stencil);
+      return 1; /* D32_FLOAT */
+   case ISL_FORMAT_R24_UNORM_X8_TYPELESS:
+      if (has_stencil) {
+         return 2; /* D24_UNORM_S8_UINT */
+      } else {
+         return 3; /* D24_UNORM_X8_UINT */
+      }
+   case ISL_FORMAT_R16_UNORM:
+      assert(!has_stencil);
+      return 5; /* D16_UNORM */
+   }
+}
+
 enum isl_format
 isl_format_rgb_to_rgba(enum isl_format rgb)
 {




More information about the mesa-commit mailing list