-
Notifications
You must be signed in to change notification settings - Fork 18
ref_iface_IVDXPluginCallbacks_GetCPUFeatureFlags
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.
Setting up your development environment
Conventions
Plugin initialization
Dynamic loading
Reference counting
Using CPU extensions
Introduction
What's new
Breaking changes
Gotchas
Deprecated features
Migrating from the old Filter SDK
Programming model
Handling bitmaps
Creating a video filter
Setting filter parameters
Processing video frames
Managing filter data
Creating time-varying filters
Handling aspect ratio
Prefetching multiple source frames
Handling multiple sources
Making a filter configurable
Scripting support
CPU dependent optimization
VDXA index omitted
Getting started
Writing the module entry point
Creating a video filter
Adding configurability
Adding script support
Introduction
What's new
Autodetect
Direct mode
Video frames vs. samples
Video decodint model
Video decoder