【问题标题】:Kivy ui is very slow on a RPIKivy ui 在 RPI 上非常慢
【发布时间】:2018-09-28 10:34:51
【问题描述】:

我使用带有 Raspbian Stretch Desktop 的 Pi 3 Model B+。我用 kivy ui 在 python3 中编写了一个应用程序。稍后,该应用程序将在 rpi 触摸屏上运行。但是,kivy 非常慢。当我按下微调器时,它需要 3 秒才能做出反应。

这里建议Raspberry Pi Python (Kivy) extremely slow with sudo 我添加了

  import os
  os.environ['KIVY_WINDOW'] = 'egl_rpi'

但它没有帮助。

如何加速kivy?还是 rpi 无法更快地渲染 kivy?

这是我的 config.ini

[kivy]
keyboard_repeat_delay = 300
keyboard_repeat_rate = 30
log_dir = logs
log_enable = 1
log_level = info
log_name = kivy_%y-%m-%d_%_.txt
window_icon = 
keyboard_mode = 
keyboard_layout = qwerty
desktop = 1
exit_on_escape = 1
pause_on_minimize = 0
kivy_clock = default
default_font = ['Roboto', 'data/fonts/Roboto-Regular.ttf', 'data/fonts/Roboto-Italic.ttf', 'data/fonts/Roboto-Bold.ttf', 'data/fonts/Roboto-BoldItalic.ttf']
log_maxfiles = 100
window_shape = data/images/defaultshape.png
config_version = 20

[graphics]
display = -1
fullscreen = 0
height = 600
left = 0
maxfps = 60
multisamples = 2
position = auto
rotation = 0
show_cursor = 1
top = 0
width = 800
resizable = 1
borderless = 0
window_state = visible
minimum_width = 0
minimum_height = 0
min_state_time = .035
allow_screensaver = 1
shaped = 0

[input]
mouse = mouse
%(name)s = probesysfs,provider=hidinput

[postproc]
double_tap_distance = 20
double_tap_time = 250
ignore = []
jitter_distance = 0
jitter_ignore_devices = mouse,mactouch,
retain_distance = 50
retain_time = 0
triple_tap_distance = 20
triple_tap_time = 375

[widgets]
scroll_timeout = 250
scroll_distance = 20
scroll_friction = 1.
scroll_stoptime = 300
scroll_moves = 5

[modules]

【问题讨论】:

    标签: python python-3.x kivy raspberry-pi3 raspbian


    【解决方案1】:

    导致您的应用运行缓慢的原因可能有很多,但首先,请检查它是否适用于所有应用,或者它是否是您的特定应用。为此,我鼓励您尝试使用简单的应用程序。

    from kivy.app import App
    from kivy.uix.button import Button
    
    class TestApp(App):
        def build(self):
            return Button(text='test')
    
    TestApp().run()
    

    按下这个按钮很慢吗?如果是这样,我鼓励一般查看 kivy 配置,也许尝试在配置中将多重采样设置为 0 或 1,检查日志以使用正确的窗口提供程序等。

    如果它的性能不错,然后尝试简化您的应用程序,直到性能再次不错,您可以启用监视器模块轻松检查帧速率,并启用调试器模块(需要烧瓶)来监视内存使用情况。几乎不可能对这个问题给出一个一般性的答案,因此需要更多的细节,大概是在你进一步缩小问题范围之后。

    【讨论】:

    • 我是 kivi 和 pi 的新手,这个测试应用程序我可以看到按钮绘图。对我来说,这似乎真的很慢,有时会出现屏幕撕裂效果,因为一半按钮被绘制在一个屏幕刷新上,另一半是一瞬间刷新,但它是慢还是 pi 能做到的最好?它是 pi 3b+,带有 7 英寸触摸屏 1024x600 分辨率
    • 这似乎是驱动程序问题,或者在这种情况下使用效率低下的窗口提供程序,尝试使用 egl_rpi 和 X11 以及 SDL2 并进行比较。跨度>
    • 是的,我没有在 raspi-config 中启用 OpenGL,这样做之后速度会快很多
    【解决方案2】:

    您可以尝试增加 gpu 内存(通过 raspi-config)。对我来说,这有助于使 kivy 应用程序顺利运行。

    【讨论】:

      猜你喜欢
      • 2015-10-25
      • 2010-12-17
      • 2015-04-14
      • 2018-08-21
      • 2018-06-14
      • 2013-06-19
      • 2015-06-11
      • 2018-06-29
      • 2016-02-28
      相关资源
      最近更新 更多