ref_iface_IVDXPluginCallbacks_GetCPUFeatureFlags - shekh/VirtualDub2 GitHub Wiki
VirtualDub Plugin SDK 1.2
IVDXPluginCallbacks interface
Retrieves the set of currently enabled CPU instruction set extensions.
uint32 GetCPUFeatureFlags();
This method is not thread-safe.
Errors may not be returned from this function (see SetError()).
A bitfield indicating which extensions are active:
kVDXCPUF_MMX | MMX is enabled. |
kVDXCPUF_ISSE | The integer portion of Streaming SIMD Extensions (SSE) is enabled. This is the portion of SSE also supported by the original Athlon, including shufw, pinsrw, pextrw, pavgb, pavgw, pmulhuw, movntq, maskmovq, prefetcht0, prefetcht1, prefetcht2, prefetchnta, and sfence. |
kVDXCPUF_SSE | Streaming SIMD Extensions (SSE) is available, including floating-point vector instructions. |
kVDXCPUF_SSE2 | Streaming SIMD Extensions 2 (SSE2) is available, including 128-bit integer vector instructions. |
kVDXCPUF_3DNOW | 3DNow! is available, including 64-bit floating-point instructions. |
kVDXCPUF_3DNOW_EXT | 3DNow! Professional is available. |
kVDXCPUF_SSE3 | Streaming SIMD Extensions 3 (SSE3) is available, including horizontal add/subtract instructions. |
kVDXCPUF_SSSE3 | Supplemental Streaming SIMD Extensions 3 (SSSE3) is available, including absolute value and double-width shift instructions. |
kVDXCPUF_SSE4.1 | Streaming SIMD Extensions 4.1 (SSE4.1) is available. |
kVDXCPUF_AVX | Advanced Vector Extensions (AVX) is available and supported by the OS, allowing for 256-bit floating point vector operations. |
This function returns the set of currently enabled CPU extensions, which is not always the same as the available extensions. Usually these will be the same, but it is possible for the user to override the enabled CPU extensions.
The enabled set can change between calls. If this is a problem, the value should be cached appropriately.
VirtualDub only detects SSE3 and SSSE3 starting with V1.7.1, SSE4.1 starting with V1.8.1, and AVX starting with V1.10.1.
Copyright (C) 2007-2012 Avery Lee.