aboutsummaryrefslogtreecommitdiff
path: root/source/cpu_id.cc
diff options
context:
space:
mode:
authorFrank Barchard <fbarchard@google.com>2023-04-18 12:01:59 -0700
committerlibyuv LUCI CQ <libyuv-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-04-18 20:29:04 +0000
commitc99478208686d9f5adbabffd346ddaf899a9ddc7 (patch)
tree008663be9e03f4e198bdc89eaf72cfb0dd5320a4 /source/cpu_id.cc
parent44396e6e9aad554283c8f1fbe981ac122c40dfc7 (diff)
downloadlibyuv-c99478208686d9f5adbabffd346ddaf899a9ddc7.tar.gz
Enable RVV if qemu is detected
- include a fix for jpeg unittests to do at least 1 iteration - include a fix for scale uv to only use linearup2 if filter is linear Tested on qemu with Intel host: [ RUN ] LibYUVBaseTest.TestCpuHas Cpu Flags 805306369 Has RISCV 268435456 Has RVV 536870912 Has RVVZVFH 0 Has X86 0 Bug: libyuv:956, libyuv:959, libyuv:960 Change-Id: I4a1b66f83d82ba127780f52526153d586db90111 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4429570 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Randall Bosetti <rlb@google.com>
Diffstat (limited to 'source/cpu_id.cc')
-rw-r--r--source/cpu_id.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/source/cpu_id.cc b/source/cpu_id.cc
index efad1b36..d5202c8d 100644
--- a/source/cpu_id.cc
+++ b/source/cpu_id.cc
@@ -196,9 +196,13 @@ LIBYUV_API SAFEBUFFERS int RiscvCpuCaps(const char* cpuinfo_name) {
int flag = 0x0;
FILE* f = fopen(cpuinfo_name, "re");
if (!f) {
- // Assume nothing if /proc/cpuinfo is unavailable.
+#if defined(__riscv_vector)
+ // Assume RVV if /proc/cpuinfo is unavailable.
// This will occur for Chrome sandbox for Pepper or Render process.
+ return kCpuHasRVV;
+#else
return 0;
+#endif
}
while (fgets(cpuinfo_line, sizeof(cpuinfo_line) - 1, f)) {
if (memcmp(cpuinfo_line, "isa", 3) == 0) {
@@ -243,6 +247,12 @@ LIBYUV_API SAFEBUFFERS int RiscvCpuCaps(const char* cpuinfo_name) {
}
}
}
+#if defined(__riscv_vector)
+ else if ((memcmp(cpuinfo_line, "vendor_id\t: GenuineIntel", 24) == 0) ||
+ (memcmp(cpuinfo_line, "vendor_id\t: AuthenticAMD", 24) == 0)) {
+ flag |= kCpuHasRVV;
+ }
+#endif
}
fclose(f);
return flag;