MDP - mdp_cpuflags.h: CPU Flags

Mega Drive Plugins v1.0.0-draft

The MDP plugin interface provides a method to determine what CPU functionality is available on the host system, such as extra instruction sets. The system's CPU flags are provided to plugins in three ways:

  1. mdp_t. cpuFlagsRequired is compared against the system's CPU flags. If the system is missing any specified CPU flags, the plugin is not loaded.
  2. CPU flags are passed to renderer functions in the mdp_render_info_t struct.
  3. CPU flags can be obtained using host_srv. val_get(MDP_VAL_CPU_FLAGS).

CPU flags are architecture-dependent, and may be reused for different meanings on different architectures.

CPU flags for i386 / x86_64:

CPU Flag Description
MDP_CPUFLAG_X86_MMX CPU supports the MMX instruction set.
MDP_CPUFLAG_X86_MMXEXT CPU supports the extended MMX instruction set.
(Note: This is only a separate flag on AMD CPUs;
on Intel CPUs, this flag is implied by MDP_CPUFLAG_X86_SSE.)
MDP_CPUFLAG_X86_3DNOW CPU supports the 3DNOW! instruction set. (AMD only)
MDP_CPUFLAG_X86_3DNOWEXT CPU supports the extended 3DNOW! instruction set. (AMD only)
MDP_CPUFLAG_X86_SSE CPU supports the SSE instruction set.
MDP_CPUFLAG_X86_SSE2 CPU supports the SSE2 instruction set.
MDP_CPUFLAG_X86_SSE3 CPU supports the SSE3 instruction set.
MDP_CPUFLAG_X86_SSSE3 CPU supports the SSSE3 instruction set.
MDP_CPUFLAG_X86_SSE41 CPU supports the SSE4.1 instruction set.
MDP_CPUFLAG_X86_SSE42 CPU supports the SSE4.1 instruction set.
MDP_CPUFLAG_X86_SSE4A CPU supports the SSE4a instruction set. (AMD only)

CPU flags for additional architectures will be added in future versions of MDP.