Python Kivy OpenGL要求是否适合部署?

Python Kivy OpenGL要求是否适合部署?,python,opengl,ubuntu,nvidia,kivy,Python,Opengl,Ubuntu,Nvidia,Kivy,我目前正在为我的新项目寻找一个不错的GUI框架,而Kivy看起来相当不错 这里有很多关于Kivy需要OpenGL>2.0(不接受1.4)的问题,以及由此产生的问题。据我所知,提供一个像样的OpenGL版本是图形驱动程序的事情 我关心的是,将我的应用程序部署到具有特定配置的用户时会遇到哪些问题,这些用户不愿意或无法在桌面上使用OpenGL>2.0 首先,在Windows上部署OpenGL不会有问题。。那里有很好的支持 但我特别担心的是,有人(像我一样)在Ubuntu上安装了最新的Nvidia二进制

我目前正在为我的新项目寻找一个不错的GUI框架,而Kivy看起来相当不错

这里有很多关于Kivy需要OpenGL>2.0(不接受1.4)的问题,以及由此产生的问题。据我所知,提供一个像样的OpenGL版本是图形驱动程序的事情

我关心的是,将我的应用程序部署到具有特定配置的用户时会遇到哪些问题,这些用户不愿意或无法在桌面上使用OpenGL>2.0

首先,在Windows上部署OpenGL不会有问题。。那里有很好的支持

但我特别担心的是,有人(像我一样)在Ubuntu上安装了最新的Nvidia二进制驱动程序(14.4 LTS)。它只是目前最好的车手,有最好的表现(仍然远远优于新伊姆霍)

这个驱动程序只提供OpenGL 1.4,这似乎(或者我错了吗?那太好了)

name of display: :0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions: [...]
所以我的问题是双重的

我可能错了英伟达二进制驱动程序只支持OpenGL 1.4?< /LI>
  • 如果是的话,这难道不就排除了很多使用我的Kivy应用程序的用户中有一个非常普通的配置(所有使用Nvidia卡的Ubuntu用户)吗? 有什么办法可以避免吗
  • 我知道OpenGL 1.4是一个愚蠢的老东西,但是驱动程序是最新的,硬件也是(GTX 770,相当一个野兽…)

    已安装的驱动程序:

    root@host:/home/user# apt-cache policy nvidia-331-updates
    nvidia-331-updates:
    Installed: 331.38-0ubuntu7
    Candidate: 331.38-0ubuntu7
    Version table:
    
    Nvidia信息:

    Version:    331.38
    Release Date:   2014.1.13 
    
    我真希望我错了

    编辑有人说1.4是GLX版本,而不是OpenGL版本。。我现在已经看到了,但我认为它是1.4,因为当我尝试从dist执行一个示例时,我得到了以下错误:

    vagrant@ubuntu-14:/usr/local/share/kivy-examples/guide/firstwidget$ python 1_skeleton.py 
    [WARNING] [Config      ] Older configuration version detected (0 instead of 10)
    [WARNING] [Config      ] Upgrading configuration in progress.
    [INFO   ] [Logger      ] Record log in /home/vagrant/.kivy/logs/kivy_14-06-28_0.txt
    [INFO   ] Kivy v1.8.1-dev
    [INFO   ] [Python      ] v2.7.6 (default, Mar 22 2014, 22:59:56) 
    [GCC 4.8.2]
    [INFO   ] [Factory     ] 169 symbols loaded
    [INFO   ] [Image       ] Providers: img_tex, img_dds, img_pygame, img_gif (img_pil ignored)
    [INFO   ] [Window      ] Provider: pygame(['window_egl_rpi'] ignored)
    libGL error: failed to load driver: swrast
    [INFO   ] [GL          ] OpenGL version <1.4 (2.1.2 NVIDIA 331.38)>
    [INFO   ] [GL          ] OpenGL vendor <NVIDIA Corporation>
    [INFO   ] [GL          ] OpenGL renderer <GeForce GTX 770/PCIe/SSE2>
    [INFO   ] [GL          ] OpenGL parsed version: 1, 4
    [CRITICAL] [GL          ] Minimum required OpenGL version (2.0) NOT found!
    
    OpenGL version detected: 1.4
    
    Version: 1.4 (2.1.2 NVIDIA 331.38)
    Vendor: NVIDIA Corporation
    Renderer: GeForce GTX 770/PCIe/SSE2
    
    Try upgrading your graphics drivers and/or your graphics hardware in case of problems.
    
    vagrant@ubuntu-14:/usr/local/share/kivy examples/guide/firstwidget$python 1_skeleton.py
    [警告][配置]检测到较旧的配置版本(0而不是10)
    [警告][配置]正在升级配置。
    [INFO][Logger]记录登录/home/vagrant/.kivy/logs/kivy_14-06-28_0.txt
    [信息]Kivy v1.8.1-dev
    [INFO][Python]v2.7.6(默认,2014年3月22日,22:59:56)
    [GCC 4.8.2]
    [信息][工厂]加载了169个符号
    [信息][图片]提供商:img_-tex、img_-dds、img_-pygame、img_-gif(img_-pil忽略)
    [INFO][Window]提供者:pygame(['Window\u egl\u rpi']已忽略)
    libGL错误:无法加载驱动程序:swrast
    [信息][GL]OpenGL版本
    [信息][GL]OpenGL供应商
    [INFO][GL]OpenGL渲染器
    [信息][GL]OpenGL解析版本:1,4
    [关键][GL]未找到所需的最低OpenGL版本(2.0)!
    检测到OpenGL版本:1.4
    版本:1.4(2.1.2 NVIDIA 331.38)
    供应商:英伟达公司
    渲染器:GeForce GTX 770/PCIe/SSE2
    如果出现问题,请尝试升级图形驱动程序和/或图形硬件。
    
    所以它实际上将我的OpenGL版本解析为1.4


    编辑2:从今天(6月28日)起,我在github(master branch)运行Kivy,因此这应该是相当新的;-)

    那不是OpenGL版本!这是版本。 AFAIK GLX 1.4是最新版本。您可以使用
    glxinfo
    命令检查所有版本号。在我的机器上,我得到:

    $glxinfo | grep 'GLX version'
    GLX version: 1.4
    $glxinfo | grep OpenGL
    OpenGL vendor string: Intel Open Source Technology Center
    OpenGL renderer string: Mesa DRI Intel(R) Ironlake Mobile 
    OpenGL version string: 2.1 Mesa 10.1.3
    OpenGL shading language version string: 1.20
    OpenGL extensions:
    
    有关更多详细信息,请参见


    概要:您不必担心OpenGL 2.0的兼容性。现在几乎所有设备都支持OpenGL 2.0。例如,仅支持OpenGL版本1.1。

    这是而不是OpenGL版本!这是版本。 AFAIK GLX 1.4是最新版本。您可以使用
    glxinfo
    命令检查所有版本号。在我的机器上,我得到:

    $glxinfo | grep 'GLX version'
    GLX version: 1.4
    $glxinfo | grep OpenGL
    OpenGL vendor string: Intel Open Source Technology Center
    OpenGL renderer string: Mesa DRI Intel(R) Ironlake Mobile 
    OpenGL version string: 2.1 Mesa 10.1.3
    OpenGL shading language version string: 1.20
    OpenGL extensions:
    
    有关更多详细信息,请参见


    概要:您不必担心OpenGL 2.0的兼容性。现在几乎所有设备都支持OpenGL 2.0。例如,仅支持OpenGL 1.1版。

    我以前回答过一个非常类似的问题。答案粘贴在下面以供参考:

    对于Kivy,OpenGL 2.0似乎是强制性的

    严格来说,Kivy将OpenGLES2.0作为最低要求。这 与OpenGL 2.0不同

    问题很简单。在家里,我有三台电脑,其中两台相当旧,带有集成显卡,但没有 支持OpenGL 2.0

    这在当今是相当不寻常的。即使是移动设备也几乎拥有所有功能 多年来一直支持它(需要明确的是,“它”是kivy所依赖的opengl es 2特性)

    您往往会看到缺少支持的唯一地方是较旧的机器 使用集成图形,就像你的一样,尽管我没有这方面的统计数据 这些是多么普遍。任何带有“适当”图形卡的机器,或 过去几年的集成图形(例如英特尔的集成 与沙桥等),几乎肯定会工作良好

    我在较新的机器上看到过偶尔出现的问题,例如一些上网本 特别是支持较差的图形芯片,但这些芯片非常 这在很大程度上是一种例外,而不是常态

    编辑:作为参考,谷歌似乎声称 支持OpenGL ES 2(在编写本文时)


    总的来说,您(或者使用您的应用程序的任何人)不太可能遇到与此相关的任何问题。

    我以前回答过一个非常类似的问题。答案粘贴在下面以供参考:

    对于Kivy,OpenGL 2.0似乎是强制性的

    严格来说,Kivy将OpenGLES2.0作为最低要求。这 与OpenGL 2.0不同

    问题很简单。在家里,我有三台电脑,其中两台相当旧,带有集成显卡,但没有 支持OpenGL 2.0

    这在当今是相当不寻常的。即使是移动设备也几乎拥有所有功能 多年来一直支持它(需要明确的是,“它”是kivy relie的opengl es 2功能