This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

[BUG] "Detected no AVX2 support"
#1
Hello! I just updated to "Hybrid_dev_2026.03.08-182859" and noticed the message "Detected no AVX2 support" in the logs. I don't recall seeing that before. My CPU is an Intel i7-5930K and it does support AVX2 (https://www.intel.com/content/www/us/en/...tions.html). I don't believe AVX2 can be toggled via BIOS, and it is shown as an instruction via CPU-Z (shown in the attached screenshot). I've uploaded the debug output in a zip file due to upload size restrictions. Let me know if there's anything I need to do on my end to fix! Thanks for your time!


Attached Files Thumbnail(s)
   

.zip   HybridDebugOutput.zip (Size: 22,61 KB / Downloads: 11)
Reply
#2
The used code:
bool HybridMainWindow::cpuSupportsAVX2() const
{
    unsigned int ebx = 0;

#ifdef _MSC_VER
    int cpuInfo[4];
    __cpuid(cpuInfo, 0);
    if (cpuInfo[0] < 7)
        return false;

    __cpuidex(cpuInfo, 7, 0);
    ebx = cpuInfo[1];
#elif Q_OS_WIN
    unsigned int eax, ecx, edx;
    unsigned int cpuInfo[4];
    __cpuid(0, eax, ebx, ecx, edx);
    if (eax < 7)
        return false;

    __cpuid_count(7, 0, eax, ebx, ecx, edx);
#endif

    // Bit 5 of EBX in CPUID leaf 7 subleaf 0 indicates AVX2 support
    return (ebx & (1 << 5)) != 0;
}
should be correct, so I suspect it's some detection or preset glitch.

Does this also happen if you:
a. restart Hybrid
b. clear the tools cache?
c. reset the defaults

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#3
Thank you for your response! That's very strange.
As for the questions:
a. Yes, restarted both Hybrid and my computer.
b. I'm assuming that is "Config -> Tools -> Clear all cached tool infos"? If so, then yes still happening.
c. Also yes after resetting to default.
Reply
#4
Just to be sure: You are not running some VM, right?
If you run some antivirus software aside from Microsofts Defender, does it make a difference if you disable it?
(afaik. only sandbox software, malware detection, antivirus detection, benchmarking or over-/underclocking tools might interfere with the above code)

Cu Selur

Ps.: I added that code on 2025-05-13 and haven't changed it since then. (so every version after that has this code)
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#5
Correct, this isn't a VM. It's a dual-boot system, Windows 11 and Linux.
No other anti-virus running, just Windows Defender. Tried disabling that as well but no change.

Edit: just tried booting Windows with both refind and Microsoft's bootloaders, no change.
Reply
#6
hmm,...
I created a Hybrid.exe for testing which uses:
#include <QStringList>
#include <QString>
#include <QByteArray>

#if defined(_MSC_VER)
#include <intrin.h>
#elif defined(__GNUC__) || defined(__clang__)
#include <cpuid.h>
#endif

static void cpuid(unsigned int leaf, unsigned int subleaf,
                  unsigned int &eax, unsigned int &ebx,
                  unsigned int &ecx, unsigned int &edx)
{
#if defined(_MSC_VER)
    int regs[4];
    __cpuidex(regs, leaf, subleaf);
    eax = regs[0];
    ebx = regs[1];
    ecx = regs[2];
    edx = regs[3];
#else
    __cpuid_count(leaf, subleaf, eax, ebx, ecx, edx);
#endif
}

QStringList getCpuInfo()
{
    QStringList info;

    unsigned int eax, ebx, ecx, edx;

    // Leaf 0 : Vendor + max leaf
    cpuid(0, 0, eax, ebx, ecx, edx);

    unsigned int maxLeaf = eax;

    char vendor[13];
    memcpy(vendor + 0, &ebx, 4);
    memcpy(vendor + 4, &edx, 4);
    memcpy(vendor + 8, &ecx, 4);
    vendor[12] = 0;

    info << QString("Vendor: %1").arg(vendor);
    info << QString("Max CPUID leaf: %1").arg(maxLeaf);

    // Leaf 1 : basic features
    cpuid(1, 0, eax, ebx, ecx, edx);

    info << QString("SSE: %1").arg((edx >> 25) & 1);
    info << QString("SSE2: %1").arg((edx >> 26) & 1);
    info << QString("SSE3: %1").arg((ecx >> 0) & 1);
    info << QString("SSSE3: %1").arg((ecx >> 9) & 1);
    info << QString("SSE4.1: %1").arg((ecx >> 19) & 1);
    info << QString("SSE4.2: %1").arg((ecx >> 20) & 1);
    info << QString("AVX: %1").arg((ecx >> 28) & 1);
    info << QString("FMA: %1").arg((ecx >> 12) & 1);

    // Leaf 7 : extended features
    if (maxLeaf >= 7)
    {
        cpuid(7, 0, eax, ebx, ecx, edx);

        info << QString("AVX2: %1").arg((ebx >> 5) & 1);
        info << QString("BMI1: %1").arg((ebx >> 3) & 1);
        info << QString("BMI2: %1").arg((ebx >> 8) & 1);
        info << QString("AVX512F: %1").arg((ebx >> 16) & 1);
        info << QString("SHA: %1").arg((ebx >> 29) & 1);
    }

    // CPU brand string
    char brand[49] = {0};

    if (maxLeaf >= 0x80000004)
    {
        unsigned int data[4];

        for (int i = 0; i < 3; ++i)
        {
            cpuid(0x80000002 + i, 0, data[0], data[1], data[2], data[3]);
            memcpy(brand + i * 16, data, 16);
        }

        info << QString("Brand: %1").arg(QString::fromLatin1(brand).trimmed());
    }

    return info;
}
=> https://www.mediafire.com/file/tluc424y8...st.7z/file (simply replace the Hybrid.exe with this one)
which should output something similar to:
CPU INFO:   Vendor: AuthenticAMD   Max CPUID leaf: 13   SSE: 1   SSE2: 1   SSE3: 1   SSSE3: 1   SSE4.1: 1   SSE4.2: 1   AVX: 1   FMA: 1   AVX2: 1   BMI1: 1   BMI2: 1   AVX512F: 1   SHA: 1
inside the normal log.
What does it show for you?

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#7
Ah, yeah that seems to recogise it now!
Quote:CPU INFO:   Vendor: GenuineIntel   Max CPUID leaf: 15   SSE: 1   SSE2: 1   SSE3: 1   SSSE3: 1   SSE4.1: 1   SSE4.2: 1   AVX: 1   FMA: 1   AVX2: 1   BMI1: 1   BMI2: 1   AVX512F: 0   SHA: 0
Reply
#8
Okay, but Hybrid still shows "Detected no AVX2 support" ?
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#9
Correct, it still shows that message, underneath the new one:
Quote:Finished startup, finished after 18.659s
CPU INFO:   Vendor: GenuineIntel   Max CPUID leaf: 15   SSE: 1   SSE2: 1   SSE3: 1   SSSE3: 1   SSE4.1: 1   SSE4.2: 1   AVX: 1   FMA: 1   AVX2: 1   BMI1: 1   BMI2: 1   AVX512F: 0   SHA: 0
Detected no AVX2 support,...
My apologies, I should have used clearer wording there.
Reply
#10
Okay, will look into it and report back with a new test version in a bit. Smile

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)