Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / OpenGL Вопросы (26 стр)

OpenGL Вопросы (26 стр)

Страницы: 122 23 24 25 26 27 Следующая »
innuendoПостоялецwww7 дек. 201712:47#375
war_zes
> здесь речь об убогом нелогичном синтаксисе

ну так забудь и больше не пиши на этом убогом нелогичном синтаксисе

barnesПостоялецwww7 дек. 201712:52#376
war_zes
> здесь речь об убогом нелогичном синтаксисе
Это ты не видел еще ati_fragment_shader  ))))
innuendoПостоялецwww7 дек. 201712:55#377
barnes
> Это ты не видел еще ati_fragment_shader ))))
https://www.khronos.org/registry/OpenGL/extensions/ATI/ATI_fragment_shader.txt
ну да, тоже весело
innuendoПостоялецwww7 дек. 201713:55#378
Andrey
> > Под мобилки 3.1 достаточно близок к 3.3-4.5
> 3.2, близок к 4.4, к примеру DSA(GL_EXT_direct_state_access) нету там.

DSA это самое важное, куда без оного

innuendoПостоялецwww7 дек. 201722:00#379
war_zes
> здесь речь об убогом нелогичном синтаксисе

что тут нелогичного?

DampireУчастникwww4 апр. 201820:35#380
Гарантирует ли стандарт (который никто не соблюдает) , что если я подменяю данные в буфере (glBufferSubData), то у меня не сломается VAO state? У меня оно работает, но тестировать на сотнях устройств я не могу. Как VAO работает я понимаю, но не взбредет ли в голову драйверу переаллоцировать буфер?

Правка: 4 апр. 2018 20:37

MrShoorУчастникwww4 апр. 201820:39#381
Dampire
> Гарантирует ли стандарт (который никто не соблюдает) , что если я подменяю
> данные в буфере (glBufferSubData), то у меня не сломается VAO state?
Да, гарантирует. Он даже гарантирует если ты сделаешь glBufferData с другим размером.
Пруфы:
https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_vertex… ay_object.txt
(4) Can buffer objects attached to a VAO be modified?

    DISCUSSION: Operations such as updating the contents of a buffer object,
    either via mapping the buffer or calling BufferSubData, are not
    problematic.  However, operations that cause a change in the underlying
    data structure can be very problematic from a hardware / driver
    perspective.  Currently the only such operation is BufferData which causes
    the buffer to be reallocated.

    RESOLUTION: RESOLVED.  Yes.  Calling BufferData on a buffer attached
    to a VAO is allowed.

DampireУчастникwww4 апр. 201820:43#382
MrShoor
> Он даже гарантирует если ты сделаешь glBufferData с другим размером.
Хм, а как оно работает? Блок памяти же другой может выделиться? Про BufferSubData ок, но я не вижу, что можно BufferData. Вижу, что разрешается вызывать BufferData, но что лейаут не полетит - не написано.
В голову приходят только какие-нибудь vtable, но чот перебор ради сомнительного удобства.

Правка: 4 апр. 2018 20:49

MrShoorУчастникwww4 апр. 201820:51#383
Dampire
> Хм, а как оно работает?
Ну видимо драйвер знает, какие VBO к каким VAO приаттачены, и когда ты вызываешь glBufferData он проходит по VAO и обновляет информацию об аттаче. На правах предположения. А вообще тебе с таким вопросом к конкретным разработчикам драйверов надо.

> Вижу, что разрешается вызывать BufferData, но что лейаут не полетит - не
> написано.
Если VAO после glBufferData полетит, то этот вопрос и ответ можно считать бессмысленным. Иначе это как в анекдоте:

- Товарищ прапорщик, можно посмотреть телевизор?
- Можно, только не включать.

/A\Постоялецwww4 апр. 201820:52#384
Dampire
> Хм, а как оно работает?
Там используются не указатели, а смещения относительно начала буфера, тем более BufferSubData не реалоцирует память.
DampireУчастникwww4 апр. 201820:55#385
MrShoor
Логично. Но я, наверное, перестрахуюсь, и при полной реаллокации будут переписывать атрибуты. Чтобы потом не искать бока, когда где-то что-то сломается. (или нет, может потом выпилю)
/A\
SubData понятно. BufferData реаллоцирует.

Правка: 4 апр. 2018 20:56

/A\Постоялецwww4 апр. 201820:57#386
Dampire
> BufferData реаллоцирует.
все равно:
> Там используются не указатели, а смещения относительно начала буфера
}:+()___ [Smile]Постоялецwww4 апр. 201822:05#387
Если буффер еще находится на отрисовке, то даже glBufferSubData может переаллоцировать память.
MrShoorУчастникwww4 апр. 201822:24#388
}:+()___ [Smile]
> Если буффер еще находится на отрисовке, то даже glBufferSubData может переаллоцировать память.
Вроде как glBufferSubData локально копирует себе кусочек этой памяти, и обновляет его когда буфер перестает отрисовываться, не?
}:+()___ [Smile]Постоялецwww4 апр. 201822:37#389
MrShoor
> Вроде как glBufferSubData локально копирует себе кусочек этой памяти, и обновляет его когда буфер перестает отрисовываться, не?
А может частично обновляет таблицу страниц, относящихся к буферу.
В общем, я не в курсе, исходники драйверов не смотрел, но я не вижу смысла реализовывать glBufferData и glBufferSubData по разному.

Правка: 4 апр. 2018 22:38

Страницы: 122 23 24 25 26 27 Следующая »

/ Форум / Программирование игр / Графика

2001—2018 © GameDev.ru — Разработка игр