From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 964F510E3C3 for ; Tue, 26 Sep 2023 12:29:13 +0000 (UTC) From: sai.gowtham.ch@intel.com To: igt-dev@lists.freedesktop.org, karolina.stolarek@intel.com, Zbigniew.Kempczynski@intel.com, sai.gowtham.ch@intel.com Date: Tue, 26 Sep 2023 17:57:47 +0530 Message-Id: <20230926122749.32460-2-sai.gowtham.ch@intel.com> In-Reply-To: <20230926122749.32460-1-sai.gowtham.ch@intel.com> References: <20230926122749.32460-1-sai.gowtham.ch@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [igt-dev] [PATCH i-g-t 1/3] lib/intel_blt: Add check to see if blt commands are supported by the platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: From: Sai Gowtham Ch 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 --- 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