[igt-dev] [PATCH i-g-t v3 7/9] lib/intel_cmds_info: Add flags field to describe command properties
Karolina Stolarek
karolina.stolarek at intel.com
Thu Feb 9 14:12:10 UTC 2023
Blitter commands may have different properties depending on the
platform. Add a new field to blt_cmd_info struct to describe
their properties. Update block-copy definitions for DG2 and MTL
to use that field.
Signed-off-by: Karolina Stolarek <karolina.stolarek at intel.com>
---
lib/i915/intel_cmds_info.c | 28 ++++++++++++++++++++++------
lib/i915/intel_cmds_info.h | 4 ++++
2 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/lib/i915/intel_cmds_info.c b/lib/i915/intel_cmds_info.c
index 9fce0351..59ee0403 100644
--- a/lib/i915/intel_cmds_info.c
+++ b/lib/i915/intel_cmds_info.c
@@ -12,6 +12,12 @@
.supported_tiling = _tiling \
}
+#define BLT_INFO_EXT(_cmd, _tiling, _flags) { \
+ .blt_cmd_type = _cmd, \
+ .supported_tiling = _tiling, \
+ .flags = _flags, \
+ }
+
static const struct blt_cmd_info src_copy = BLT_INFO(SRC_COPY, BIT(T_LINEAR));
static const struct blt_cmd_info
pre_gen8_xy_src_copy = BLT_INFO(XY_SRC_COPY,
@@ -45,11 +51,21 @@ static const struct blt_cmd_info
BIT(T_LINEAR) |
BIT(T_YMAJOR));
static const struct blt_cmd_info
- dg2_xy_block_copy = BLT_INFO(XY_BLOCK_COPY,
- BIT(T_LINEAR) |
- BIT(T_XMAJOR) |
- BIT(T_TILE4) |
- BIT(T_TILE64));
+ dg2_xy_block_copy = BLT_INFO_EXT(XY_BLOCK_COPY,
+ BIT(T_LINEAR) |
+ BIT(T_XMAJOR) |
+ BIT(T_TILE4) |
+ BIT(T_TILE64),
+ BLT_CMD_EXTENDED |
+ BLT_CMD_SUPPORTS_COMPRESSION);
+
+static const struct blt_cmd_info
+ mtl_xy_block_copy = BLT_INFO_EXT(XY_BLOCK_COPY,
+ BIT(T_LINEAR) |
+ BIT(T_XMAJOR) |
+ BIT(T_TILE4) |
+ BIT(T_TILE64),
+ BLT_CMD_EXTENDED);
const struct intel_cmds_info pre_gen8_cmds_info = {
.blt_cmds = {
@@ -90,6 +106,6 @@ const struct intel_cmds_info gen12_dg2_cmds_info = {
const struct intel_cmds_info gen12_mtl_cmds_info = {
.blt_cmds = {
[XY_FAST_COPY] = &dg2_xy_fast_copy,
- [XY_BLOCK_COPY] = &dg2_xy_block_copy
+ [XY_BLOCK_COPY] = &mtl_xy_block_copy,
}
};
diff --git a/lib/i915/intel_cmds_info.h b/lib/i915/intel_cmds_info.h
index 4fdce343..541727ec 100644
--- a/lib/i915/intel_cmds_info.h
+++ b/lib/i915/intel_cmds_info.h
@@ -29,6 +29,10 @@ enum blt_cmd_type {
struct blt_cmd_info {
enum blt_cmd_type blt_cmd_type;
uint32_t supported_tiling;
+
+ uint32_t flags;
+#define BLT_CMD_EXTENDED (1 << 0)
+#define BLT_CMD_SUPPORTS_COMPRESSION (1 << 1)
};
struct intel_cmds_info {
--
2.25.1
More information about the igt-dev
mailing list