OpenGL 版本太旧 - 但不是吗?

OpenGL version is too old - but it is not?

我正在尝试 运行 cocos2dx 应用程序,但我收到以下错误。

OpenGL version is too old

OpenGL 1.5 or higher is required [your version is [null]]. Please upgrade the driver of your video card.

我的电脑不是很旧,不是最好的电脑,但是 opengl 版本是 4.4,我的显卡是 AMD Radeon R5。

我需要做什么才能让它工作?


显示设备

      Card name: AMD Radeon(TM) R5 Graphics
   Manufacturer: Advanced Micro Devices, Inc.
      Chip type: AMD Radeon Graphics Processor (0x9851)
       DAC type: Internal DAC(400MHz)
    Device Type: Full Device
     Device Key: Enum\PCI\VEN_1002&DEV_9851&SUBSYS_2268103C&REV_05
 Display Memory: 8652 MB


> Dedicated Memory: 1004 MB
>       Shared Memory: 7647 MB
>        Current Mode: 1366 x 768 (32 bit) (60Hz)
>         Driver Name: aticfx64.dll,aticfx64.dll,aticfx64.dll,amdxc64.dll,aticfx32,aticfx32,aticfx32,amdxc32,atiumd64.dll,atidxx64.dll,atidxx64.dll,atiumdag,atidxx32,atidxx32,atiumdva,atiumd6a.cap,atitmm64.dll
> Driver File Version: 8.17.0010.1404 (English)
>      Driver Version: 15.201.1101.0
>         DDI Version: 12
>      Feature Levels: 11.1,11.0,10.1,10.0,9.3,9.2,9.1
>        Driver Model: WDDM 2.0 Graphics Preemption: DMA  Compute Preemption: DMA
>            Miracast: Not Supported by Graphics driver Hybrid Graphics GPU: Not Supported
>      Power P-states: Not Supported   Driver Attributes: Final Retail    Driver Date/Size: 06/08/2015 00:00:00, 1494528 bytes
>         WHQL Logo'd: Yes
>     WHQL Date Stamp:    Device Identifier: {D7B71EE2-DB11-11CF-F076-6202BBC2C535}
>           Vendor ID: 0x1002
>           Device ID: 0x9851
>           SubSys ID: 0x2268103C
>         Revision ID: 0x0005  Driver Strong Name: oem44.inf:cb0ae414426d398f:ati2mtag_MullinsPA_Mobile:15.201.1101.0:pci\ven_1002&dev_9851&subsys_2268103c&rev_05
>      Rank Of Driver: 00D10000
>         Video Accel: ModeMPEG2_A ModeMPEG2_C ModeVC1_C ModeWMV9_C 
>         DXVA2 Modes: DXVA2_ModeMPEG2_VLD  DXVA2_ModeMPEG2_IDCT  DXVA2_ModeH264_VLD_NoFGT  DXVA2_ModeH264_VLD_Stereo_Progressive_NoFGT 
> DXVA2_ModeH264_VLD_Stereo_NoFGT  DXVA2_ModeVC1_VLD 
> DXVA2_ModeMPEG4pt2_VLD_AdvSimple_NoGMC  DXVA2_ModeVC1_IDCT 
> DXVA2_ModeWMV9_IDCT      Deinterlace Caps:
> {6E8329FF-B642-418B-BCF0-BCB6591E255F}: Format(In/Out)=(YUY2,YUY2)
> Frames(Prev/Fwd/Back)=(0,0,1) Caps=VideoProcess_YUV2RGB
> VideoProcess_StretchX VideoProcess_StretchY
> DeinterlaceTech_PixelAdaptive 
>                      {335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(YUY2,YUY2) Frames(Prev/Fwd/Back)=(0,0,0)
> Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
> DeinterlaceTech_BOBVerticalStretch 
>                      {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(YUY2,YUY2) Frames(Prev/Fwd/Back)=(0,0,0)
> Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY 
>                      {6E8329FF-B642-418B-BCF0-BCB6591E255F}: Format(In/Out)=(UYVY,UYVY) Frames(Prev/Fwd/Back)=(0,0,1)
> Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
> DeinterlaceTech_PixelAdaptive 
>                      {335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(UYVY,UYVY) Frames(Prev/Fwd/Back)=(0,0,0)
> Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
> DeinterlaceTech_BOBVerticalStretch 
>                      {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(UYVY,UYVY) Frames(Prev/Fwd/Back)=(0,0,0)
> Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY 
>                      {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(YV12,0x32315659) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
>                      {3C5323C1-6FB7-44F5-9081-056BF2EE449D}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,2)
> Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
> DeinterlaceTech_PixelAdaptive 
>                      {552C0DAD-CCBC-420B-83C8-74943CF9F1A6}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,2)
> Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
> DeinterlaceTech_PixelAdaptive 
>                      {6E8329FF-B642-418B-BCF0-BCB6591E255F}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,1)
> Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
> DeinterlaceTech_PixelAdaptive 
>                      {335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,0)
> Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY
> DeinterlaceTech_BOBVerticalStretch 
>                      {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,0)
> Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY 
>                      {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(IMC1,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
>                      {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(IMC2,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
>                      {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(IMC3,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
>                      {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(IMC4,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
>                      {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(S340,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
>                      {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(S342,UNKNOWN) Frames(Prev/Fwd/Back)=(0,0,0) Caps=
>        D3D9 Overlay: Not Supported
>             DXVA-HD: Not Supported
>        DDraw Status: Enabled
>          D3D Status: Enabled
>          AGP Status: Enabled

       MPO Caps: Not Supported
    MPO Stretch: Not Supported
MPO Media Hints: Not Supported
    MPO Formats: Not Supported

答案不多,但希望能有所帮助:

相关错误消息在 this file 内,暗示 glGetString(GL_VERSION) 正在返回 NULL。这似乎几乎肯定意味着您没有有效的上下文,但是所涉及的方法 — GLViewImpl::initWithRect — 创建了一个 window 并在到达版本检查之前验证成功。所以 glfw 中出现问题的可能性更大。

你能单步调试那个文件吗?如果您在 Windows,您确定您没有遇到加速驱动程序对您的程序不可用的边缘情况之一吗?如果没记错的话,软件驱动程序是一些史前的固定功能实现。