isl: Add a is_storage_image_format helper
authorJason Ekstrand <jason.ekstrand@intel.com>
Thu, 17 Dec 2015 19:45:04 +0000 (11:45 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 17 Dec 2015 19:45:04 +0000 (11:45 -0800)
src/isl/isl.h
src/isl/isl_image.c

index 6baac38bc2af3fa332add93d76fdad2ca096a143..22fc7540ac7a658a297efcc50ce8516a3b6f058e 100644 (file)
@@ -754,6 +754,8 @@ isl_format_block_is_1x1x1(enum isl_format fmt)
    return fmtl->bw == 1 && fmtl->bh == 1 && fmtl->bd == 1;
 }
 
+bool isl_is_storage_image_format(enum isl_format fmt);
+
 enum isl_format
 isl_lower_storage_image_format(const struct isl_device *dev,
                                enum isl_format fmt);
index 2d146d59ac5de12f1bfaedbe231fd0c28bd571ec..773160432b9bd5c86b311fbbdb3032928f9a80fa 100644 (file)
 #include "isl.h"
 #include "brw_compiler.h"
 
+bool
+isl_is_storage_image_format(enum isl_format format)
+{
+   /* XXX: Maybe we should put this in the CSV? */
+
+   switch (format) {
+   case ISL_FORMAT_R32G32B32A32_UINT:
+   case ISL_FORMAT_R32G32B32A32_SINT:
+   case ISL_FORMAT_R32G32B32A32_FLOAT:
+   case ISL_FORMAT_R32_UINT:
+   case ISL_FORMAT_R32_SINT:
+   case ISL_FORMAT_R32_FLOAT:
+   case ISL_FORMAT_R16G16B16A16_UINT:
+   case ISL_FORMAT_R16G16B16A16_SINT:
+   case ISL_FORMAT_R16G16B16A16_FLOAT:
+   case ISL_FORMAT_R32G32_UINT:
+   case ISL_FORMAT_R32G32_SINT:
+   case ISL_FORMAT_R32G32_FLOAT:
+   case ISL_FORMAT_R8G8B8A8_UINT:
+   case ISL_FORMAT_R8G8B8A8_SINT:
+   case ISL_FORMAT_R16G16_UINT:
+   case ISL_FORMAT_R16G16_SINT:
+   case ISL_FORMAT_R16G16_FLOAT:
+   case ISL_FORMAT_R8G8_UINT:
+   case ISL_FORMAT_R8G8_SINT:
+   case ISL_FORMAT_R16_UINT:
+   case ISL_FORMAT_R16_FLOAT:
+   case ISL_FORMAT_R16_SINT:
+   case ISL_FORMAT_R8_UINT:
+   case ISL_FORMAT_R8_SINT:
+   case ISL_FORMAT_R10G10B10A2_UINT:
+   case ISL_FORMAT_R10G10B10A2_UNORM:
+   case ISL_FORMAT_R11G11B10_FLOAT:
+   case ISL_FORMAT_R16G16B16A16_UNORM:
+   case ISL_FORMAT_R16G16B16A16_SNORM:
+   case ISL_FORMAT_R8G8B8A8_UNORM:
+   case ISL_FORMAT_R8G8B8A8_SNORM:
+   case ISL_FORMAT_R16G16_UNORM:
+   case ISL_FORMAT_R16G16_SNORM:
+   case ISL_FORMAT_R8G8_UNORM:
+   case ISL_FORMAT_R8G8_SNORM:
+   case ISL_FORMAT_R16_UNORM:
+   case ISL_FORMAT_R16_SNORM:
+   case ISL_FORMAT_R8_UNORM:
+   case ISL_FORMAT_R8_SNORM:
+      return true;
+   default:
+      return false;
+   }
+}
+
 enum isl_format
 isl_lower_storage_image_format(const struct isl_device *dev,
                                enum isl_format format)