список вершин pyglet не отображается (драйвер AMD?) - PullRequest
1 голос
/ 21 февраля 2012

Моя машина, очевидно, не будет рисовать списки вершин в pyglet. Следующий код отображает две одинаковые фигуры в разных позициях в окне, один из которых использует список вершин, а другой - прямую draw(). Тот, который нарисован напрямую, отрисовывается нормально, а список вершин вообще не рендерится.

import pyglet 

window = pyglet.window.Window()
w, h = window.get_size()
vl = pyglet.graphics.vertex_list( 4,
                                  ('v2i', (100,0, 100,h, 200,h, 200,0)),
                                  ('c3B', (255,255,255, 255,0,0,
                                           0,255,0, 0,0,255)) )

@window.event
def on_draw():
    window.clear()
    vl.draw( pyglet.gl.GL_QUADS )
    pyglet.graphics.draw( 4, pyglet.gl.GL_QUADS,
                          ('v2i', (300,0, 300,h, 400,h, 400,0)),
                          ('c3B', (255,255,255, 255,0,0,
                                   0,255,0, 0,0,255)) )

pyglet.app.run()

Это pyglet 1.1.2 в Ubuntu Lucid, использующий карту AMD Radeon HD 6450 с новейшим драйвером Catalyst 12.1. Я предполагаю, что это должно быть как-то связано с драйверами и т. Д., Потому что этот код работал три года назад на нескольких картах NVIDIA, и это почти прямо из документации Pyglet. Кто-нибудь знает, с какими настройками мне нужно работать или правильно работает конкретная версия драйвера?

1 Ответ

1 голос
/ 21 марта 2012

Кажется, у меня та же проблема при запуске Catalyst 12.2 на Windows 7 с Radeon HD 4870. Некоторый мой предыдущий код перестал работать частично после того, как я перешел на эту карту со своего более старого Geforce 8800 GTX, в частности, с fps_counter и меткойрисование все еще работало, рисование пакета не получалось.

После того, как я понизил драйвер видео до Catalyst 11.5, проблемы исчезли (как с вашим фрагментом выше, так и с моим более ранним кодом).

Позжеверсии Catalyst могут работать.Сначала я попробовал этот вариант, потому что он упоминается как работающий как следует: http://groups.google.com/group/pyglet-users/msg/ae317c37ce54c107

Обновление: Протестированный Catalyst 11.12 (последний выпуск 11.x, версия видеодрайвера 8.920.0.0000)и проблема вернулась.

Обновление 2: Некоторое дальнейшее тестирование позже, похоже, эта проблема начала возникать с Catalyst 11.9 (видеодрайвер 8.892.0.0000).Catalyst 11.8 (видеодрайвер 8.881.0.0000) работал как ожидалось.

Обходной путь должен использовать v2f вместо v2i согласно этому комментарию в трекере проблем pyglet.

Последнее обновление: Эта проблема, похоже, исправлена ​​в Catalyst 12.4 (видеодрайвер 8.961.0.0).

...