From patchwork Tue May 26 09:48:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiaxun Yang X-Patchwork-Id: 19870 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id D890D4495FF for ; Tue, 26 May 2020 12:49:21 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AF543689AB3; Tue, 26 May 2020 12:49:21 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from sender2-op-o12.zoho.com.cn (sender2-op-o12.zoho.com.cn [163.53.93.243]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4B076680ADB for ; Tue, 26 May 2020 12:49:13 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; t=1590486540; cv=none; d=zoho.com.cn; s=zohoarc; b=lxc51/uSD7V5jzm+kcYrCblNI/+D55rRkteBqiCgtFpmRj+FyVEhkDEa0eqe9oBVb8cqF4DT8WYcseouslQPp9edtBhwDO14gXGgUXyKZgHyyjGMj6NFXSraa719moOrJCK4U9wS0iEhBcQveGvUyCOGNjqSM2Cx/bAXXyjc54I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com.cn; s=zohoarc; t=1590486540; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:MIME-Version:Message-ID:Subject:To; bh=htaFbjd6tg+ZYPDxpn8WxmSBDsfSkzjizjOhxDTsS7I=; b=mbcV/NrGE8vWgRhByBqaut1/m1Bdmw6oWOgNSuzGgxfFQZFqgIEG9gIMEesTG8b/w1jZMPuUyGd36wLABEXrtOOZQbLQOSHs9A5Ful+P/OKcIYPstj8yRREk3I2W2VZY9BCyK2BWbqNVUB1P2xQItJ81H7MzfBBtty9LPgjugKo= ARC-Authentication-Results: i=1; mx.zoho.com.cn; dkim=pass header.i=flygoat.com; spf=pass smtp.mailfrom=jiaxun.yang@flygoat.com; dmarc=pass header.from= header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1590486540; s=mail; d=flygoat.com; i=jiaxun.yang@flygoat.com; h=From:To:Cc:Message-ID:Subject:Date:MIME-Version:Content-Transfer-Encoding:Content-Type; bh=htaFbjd6tg+ZYPDxpn8WxmSBDsfSkzjizjOhxDTsS7I=; b=RYK7LuZjAZSciVWEGoP+D1MvzMd34k4N4TIoMEKX29pDMBmcB52I7rmaItbgwMBw jWcfq1EVrLiKpyueu2f6/unnQbHPWJMjpwf0mNfCuvDWDmxcIG1c6gVJ6ulxIXeMJiM N9vAsm8+htT6pNGnwJeb8h++xNzrVhRi3fs+UvQ0= Received: from halation.202.net.flygoat.com (60.177.188.90 [60.177.188.90]) by mx.zoho.com.cn with SMTPS id 1590486538611354.87961327486573; Tue, 26 May 2020 17:48:58 +0800 (CST) From: Jiaxun Yang To: ffmpeg-devel@ffmpeg.org Message-ID: <20200526094822.72855-1-jiaxun.yang@flygoat.com> Date: Tue, 26 May 2020 17:48:19 +0800 X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 X-ZohoCNMailClient: External Subject: [FFmpeg-devel] [PATCH 0/3] MIPS MSA & MMI Runtime detection support X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: yinshiyou@loongson.cn, Jiaxun Yang Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This series adds MIPS MSA & MMI runtime detection support. It have been tested on Loongson-3A4000 (with both MSA & MMI), Loongson-3B1500 (MMI only), MT7620A (no SIMD ASE). There is a MMI checkasm test failure but looks irrelevant with my changes, I have informed MIPS maintainer Shiyou Yin privately and he said he'll take a look. flygoat@maki:~/FFbuild/tests/checkasm$ ./checkasm checkasm: using random seed 3369776568 MMI: - blockdsp.blockdsp [OK] - h264dsp.idct [OK] - h264dsp.loop_filter [OK] - h264dsp.loop_filter_intra [OK] - h264pred.pred8x8 [OK] - h264pred.pred16x16 [OK] pred8x8l_top_dc_8_mmi (h264pred.c:222) - h264pred.pred8x8l [FAILED] - h264qpel.put [OK] - h264qpel.avg [OK] - pixblockdsp.get_pixels [OK] - pixblockdsp.diff_pixels [OK] - vp8dsp.idct [OK] - vp8dsp.loopfilter [OK] - vp9dsp.mc [OK] Jiaxun Yang (3): ffbuild: Refine MIPS handling libavutil: Detect MMI and MSA flags for MIPS libavcodec: Enable runtime detection for MIPS MMI & MSA configure | 179 ++++++++++++-------- ffbuild/common.mak | 10 +- libavcodec/mips/Makefile | 3 +- libavcodec/mips/blockdsp_init_mips.c | 22 ++- libavcodec/mips/cabac.h | 2 +- libavcodec/mips/h263dsp_init_mips.c | 12 +- libavcodec/mips/h264chroma_init_mips.c | 22 ++- libavcodec/mips/h264dsp_init_mips.c | 25 ++- libavcodec/mips/h264pred_init_mips.c | 25 ++- libavcodec/mips/h264qpel_init_mips.c | 22 ++- libavcodec/mips/hevcdsp_init_mips.c | 24 ++- libavcodec/mips/hevcpred_init_mips.c | 12 +- libavcodec/mips/hpeldsp_init_mips.c | 22 ++- libavcodec/mips/idctdsp_init_mips.c | 24 ++- libavcodec/mips/me_cmp_init_mips.c | 12 +- libavcodec/mips/mpegvideo_init_mips.c | 22 ++- libavcodec/mips/mpegvideoencdsp_init_mips.c | 13 +- libavcodec/mips/pixblockdsp_init_mips.c | 25 ++- libavcodec/mips/qpeldsp_init_mips.c | 12 +- libavcodec/mips/vc1dsp_init_mips.c | 22 ++- libavcodec/mips/videodsp_init.c | 12 +- libavcodec/mips/vp3dsp_init_mips.c | 22 ++- libavcodec/mips/vp8dsp_init_mips.c | 22 ++- libavcodec/mips/vp9dsp_init_mips.c | 22 ++- libavcodec/mips/wmv2dsp_init_mips.c | 12 +- libavcodec/mips/xvididct_init_mips.c | 13 +- libavutil/cpu.c | 10 ++ libavutil/cpu.h | 3 + libavutil/cpu_internal.h | 2 + libavutil/mips/Makefile | 2 +- libavutil/mips/cpu.c | 78 +++++++++ libavutil/mips/cpu.h | 28 +++ libavutil/tests/cpu.c | 3 + tests/checkasm/checkasm.c | 3 + 34 files changed, 557 insertions(+), 185 deletions(-) create mode 100644 libavutil/mips/cpu.c create mode 100644 libavutil/mips/cpu.h