1
0
Fork 0
forked from suyu/suyu
suyu/src/common
Wunkolo d248c1203e cpu_detect: Add additional x86 flags and telemetry
Adds detection of additional CPU flags to cpu_detect and additions to telemetry output.

This is not exhaustive but guided by features that [dynarmic utilizes](bcfe377aaa/src/dynarmic/backend/x64/host_feature.h (L12-L33)) as well as features that are currently utilized but not reported to telemetry(invariant_tsc). This is intended to guide future optimizations.

AVX512 in particular is broken up into its individual subsets and some other processor features such as [sha](https://en.wikipedia.org/wiki/Intel_SHA_extensions) and [gfni](https://en.wikipedia.org/wiki/AVX-512#GFNI) are added to have some forward-facing data-points.

What used to be a single `CPU_Extension_x64_AVX512` telemetry field
is also broken up into individual `CPU_Extension_x64_AVX512{F,VL,CD,...}` fields.
2022-03-11 10:27:00 -08:00
..
fs common: fs_util: Add buffer to string view utility functions 2022-02-13 18:53:21 -05:00
logging backend: Ensure backend_thread is destructed before message_queue 2022-03-10 10:49:15 +00:00
x64 cpu_detect: Add additional x86 flags and telemetry 2022-03-11 10:27:00 -08:00
algorithm.h
alignment.h common/alignment: Fix VS2022 compilation 2021-10-20 01:22:00 -04:00
assert.cpp common: Move settings to common from core. 2021-04-14 16:24:03 -07:00
assert.h assert: Verify formatting 2021-08-05 17:46:22 +00:00
atomic_ops.h X86/NativeClock: Reimplement RTDSC access to be lock free. 2021-01-02 04:00:27 +01:00
bit_cast.h
bit_field.h
bit_set.h
bit_util.h bit_util: Add bit utility function 2022-03-09 13:57:47 -08:00
cityhash.cpp common/cityhash: Use common types 2021-02-18 00:45:17 -03:00
cityhash.h common: add missing header after f3805376f7 2021-02-23 00:04:32 +00:00
CMakeLists.txt general: Rename NewUUID to UUID, and remove the previous UUID impl 2022-02-05 13:56:21 -05:00
common_funcs.h common_funcs: Add enum flag bitwise shift operator overloads 2021-09-13 16:01:20 -04:00
common_types.h common_types: Remove NonCopyable struct 2022-02-02 13:19:01 -05:00
concepts.h
detached_tasks.cpp common/detached_tasks: Wait for tasks before shutting down 2021-06-22 04:27:44 -03:00
detached_tasks.h
div_ceil.h general: Update style to clang-format-12 2021-09-24 15:52:05 -04:00
dynamic_library.cpp
dynamic_library.h
error.cpp common: Move error handling to error.cpp/h 2021-09-11 17:19:14 -04:00
error.h common: Move error handling to error.cpp/h 2021-09-11 17:19:14 -04:00
expected.h common: Implement a subset of P0323 (std::expected) 2021-11-02 15:20:35 -04:00
fiber.cpp common: fiber: YieldTo: Avoid hard crash on nullptr previous_fiber. 2022-01-14 16:17:19 -08:00
fiber.h common: Fiber: use a reference for YieldTo. 2021-03-07 13:46:53 -08:00
hash.h
hex_util.cpp
hex_util.h hex_util: Fix incorrect array size in AsArray 2021-08-04 22:16:29 -04:00
host_memory.cpp host_memory: Fix fastmem crashes in debug builds 2022-03-02 18:36:59 -05:00
host_memory.h common/host_memory: Implement a fallback if fastmem fails. 2021-06-11 17:27:17 +02:00
input.h general: Rename NewUUID to UUID, and remove the previous UUID impl 2022-02-05 13:56:21 -05:00
intrusive_red_black_tree.h general: Update style to clang-format-12 2021-09-24 15:52:05 -04:00
literals.h common: Replace common_sizes into user-literals 2021-06-24 09:27:40 -07:00
lru_cache.h Garbage Collection: Adress Feedback. 2021-08-29 18:19:53 +02:00
lz4_compression.cpp lz4_compression: Make use of std::span 2021-05-24 15:00:59 -04:00
lz4_compression.h lz4_compression: Make use of std::span 2021-05-24 15:00:59 -04:00
math_util.h Video Core: fix building for GCC. 2021-11-16 22:11:31 +01:00
memory_detect.cpp
memory_detect.h
microprofile.cpp
microprofile.h
microprofileui.h
nvidia_flags.cpp common: fs: Rework the Common Filesystem interface to make use of std::filesystem (#6270) 2021-05-25 19:32:56 -04:00
nvidia_flags.h nvidia_flags: Add missing header guard 2021-04-12 19:18:48 -04:00
page_table.cpp fixup! core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory. 2022-02-19 00:14:27 -08:00
page_table.h fixup! core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory. 2022-02-19 00:14:27 -08:00
param_package.cpp common/logging: Reduce scope of fmt include 2021-10-01 20:48:49 -04:00
param_package.h
parent_of_member.h parent_of_member: Make sign conversion explicit in OffsetOfImpl() 2021-05-10 08:07:33 -04:00
point.h common: Extract point into a common struct 2021-05-28 08:12:49 -04:00
quaternion.h
ring_buffer.h ring_buffer: Remove granularity template argument 2021-02-06 19:16:00 +00:00
scm_rev.cpp.in cmake: Remove shader cache version 2021-07-22 21:51:40 -04:00
scm_rev.h
scope_exit.h common: scope_exit: Add a cancellable ScopeExit macro. 2021-02-05 14:03:36 -08:00
settings.cpp dynarmic: Inline exclusive memory accesses 2022-02-27 19:40:05 +00:00
settings.h dynarmic: Inline exclusive memory accesses 2022-02-27 19:40:05 +00:00
settings_input.cpp common: Move settings to common from core. 2021-04-14 16:24:03 -07:00
settings_input.h settings: Add debug setting to enable all controllers 2021-11-27 20:24:37 -06:00
spin_lock.cpp
spin_lock.h
stream.cpp
stream.h
string_util.cpp string_util: Make use of std::string_view and add bounds checking 2021-10-14 14:09:34 -04:00
string_util.h string_util: Make use of std::string_view and add bounds checking 2021-10-14 14:09:34 -04:00
swap.h general: Fix various spelling errors 2021-01-02 10:23:41 -05:00
telemetry.cpp cpu_detect: Add additional x86 flags and telemetry 2022-03-11 10:27:00 -08:00
telemetry.h common/telemetry: Update AddField name type to string_view 2022-03-11 10:26:59 -08:00
thread.cpp common: Move error handling to error.cpp/h 2021-09-11 17:19:14 -04:00
thread.h
thread_queue_list.h
thread_worker.h shader_recompiler,video_core: Cleanup some GCC and Clang errors 2021-07-22 21:51:26 -04:00
threadsafe_queue.h threadsafe_queue: Add std::stop_token overload to PopWait 2021-09-15 20:49:07 -04:00
time_zone.cpp
time_zone.h
tiny_mt.h common: Add implementation of TinyMT (Mersenne Twister RNG). 2021-02-18 16:16:24 -08:00
tree.h common: tree: Avoid a crash on nullptr dereference. 2021-05-20 21:41:51 -07:00
uint128.h common: wall_clock: Fix integer overflow with StandardWallClock. 2021-02-19 18:04:23 -08:00
unique_function.h common: Add unique function 2021-07-08 19:03:19 -03:00
uuid.cpp common: uuid: Use sizeof(u64) instead of 8 in Hash() 2022-02-10 15:03:49 -05:00
uuid.h general: Rename NewUUID to UUID, and remove the previous UUID impl 2022-02-05 13:56:21 -05:00
vector_math.h general: Update style to clang-format-12 2021-09-24 15:52:05 -04:00
virtual_buffer.cpp
virtual_buffer.h
wall_clock.cpp common: wall_clock: Check precision against the emulated CPU and CNTFRQ 2022-01-30 12:57:23 -05:00
wall_clock.h common: wall_clock: Check precision against the emulated CPU and CNTFRQ 2022-01-30 12:57:23 -05:00
zstd_compression.cpp zstd_compression: Make use of std::span 2021-05-24 15:01:04 -04:00
zstd_compression.h zstd_compression: Make use of std::span 2021-05-24 15:01:04 -04:00