[igt-dev] [PATCH i-g-t 1/3] lib/intel_blt: Add check to see if blt commands are supported by the platforms
sai.gowtham.ch at intel.com
sai.gowtham.ch at intel.com
Tue Sep 26 12:27:47 UTC 2023
From: Sai Gowtham Ch <sai.gowtham.ch at intel.com>
This commit has following changes:
1. Add check to see if blt commands are supported by the platforms.
2. Add MEM_COPY and MEM_SET instructions
3. Update cmd info for MEM_COPY and MEM_SET
4. Add copy type used for MEM_COPY and MEM_SET.
Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch at intel.com>
---
lib/intel_blt.c | 32 ++++++++++++++++++++++++++++++++
lib/intel_blt.h | 2 ++
lib/intel_cmds_info.c | 12 ++++++++++++
lib/intel_cmds_info.h | 7 +++++++
4 files changed, 53 insertions(+)
diff --git a/lib/intel_blt.c b/lib/intel_blt.c
index 429511920..b55fa9b52 100644
--- a/lib/intel_blt.c
+++ b/lib/intel_blt.c
@@ -289,6 +289,38 @@ bool blt_has_block_copy(int fd)
return blt_supports_command(cmds_info, XY_BLOCK_COPY);
}
+/**
+ * blt_has_mem_copy
+ * @fd: drm fd
+ *
+ * Check if mem copy is supported by @fd device
+ *
+ * Returns:
+ * true if it does, false otherwise.
+ */
+bool blt_has_mem_copy(int fd)
+{
+ const struct intel_cmds_info *cmds_info = GET_CMDS_INFO(fd);
+
+ return blt_supports_command(cmds_info, MEM_COPY);
+}
+
+/**
+ * blt_has_mem_set
+ * @fd: drm fd
+ *
+ * Check if mem set is supported by @fd device
+ *
+ * Returns:
+ * true if it does, false otherwise.
+ */
+bool blt_has_mem_set(int fd)
+{
+ const struct intel_cmds_info *cmds_info = GET_CMDS_INFO(fd);
+
+ return blt_supports_command(cmds_info, MEM_SET);
+}
+
/**
* blt_has_fast_copy
* @fd: drm fd
diff --git a/lib/intel_blt.h b/lib/intel_blt.h
index b8b3d724d..d9c8883c7 100644
--- a/lib/intel_blt.h
+++ b/lib/intel_blt.h
@@ -175,6 +175,8 @@ bool blt_cmd_has_property(const struct intel_cmds_info *cmds_info,
uint32_t prop);
bool blt_has_block_copy(int fd);
+bool blt_has_mem_copy(int fd);
+bool blt_has_mem_set(int fd);
bool blt_has_fast_copy(int fd);
bool blt_has_xy_src_copy(int fd);
bool blt_has_xy_color(int fd);
diff --git a/lib/intel_cmds_info.c b/lib/intel_cmds_info.c
index 366b37f2c..2e51ec081 100644
--- a/lib/intel_cmds_info.c
+++ b/lib/intel_cmds_info.c
@@ -82,6 +82,16 @@ static const struct blt_cmd_info
BIT(T_TILE64),
BLT_CMD_EXTENDED);
+static const struct blt_cmd_info
+ pvc_mem_copy = BLT_INFO(MEM_COPY,
+ BIT(M_LINEAR) |
+ BIT(M_MATRIX));
+
+static const struct blt_cmd_info
+ pvc_mem_set = BLT_INFO(MEM_SET,
+ BIT(M_LINEAR) |
+ BIT(M_MATRIX));
+
static const struct blt_cmd_info
pre_gen6_xy_color_blt = BLT_INFO(XY_COLOR_BLT,
BIT(T_LINEAR) |
@@ -154,6 +164,8 @@ const struct intel_cmds_info gen12_pvc_cmds_info = {
.blt_cmds = {
[XY_FAST_COPY] = &pvc_xy_fast_copy,
[XY_BLOCK_COPY] = &pvc_xy_block_copy,
+ [MEM_COPY] = &pvc_mem_copy,
+ [MEM_SET] = &pvc_mem_set,
}
};
diff --git a/lib/intel_cmds_info.h b/lib/intel_cmds_info.h
index 91d0f15ec..7396215e3 100644
--- a/lib/intel_cmds_info.h
+++ b/lib/intel_cmds_info.h
@@ -18,8 +18,15 @@ enum blt_tiling_type {
__BLT_MAX_TILING
};
+enum blt_copy_type {
+ M_LINEAR,
+ M_MATRIX,
+};
+
enum blt_cmd_type {
SRC_COPY,
+ MEM_SET,
+ MEM_COPY,
XY_SRC_COPY,
XY_FAST_COPY,
XY_BLOCK_COPY,
--
2.39.1
More information about the igt-dev
mailing list