Войти
ПрограммированиеФорумГрафика

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

Страницы: 125 26 27 2830 Следующая »
#375
12:47, 7 дек. 2017

war_zes
> здесь речь об убогом нелогичном синтаксисе

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

#376
12:52, 7 дек. 2017

war_zes
> здесь речь об убогом нелогичном синтаксисе
Это ты не видел еще ati_fragment_shader  ))))

#377
12:55, 7 дек. 2017

barnes
> Это ты не видел еще ati_fragment_shader ))))
https://www.khronos.org/registry/OpenGL/extensions/ATI/ATI_fragment_shader.txt
ну да, тоже весело

#378
13:55, 7 дек. 2017

Andrey
> > Под мобилки 3.1 достаточно близок к 3.3-4.5
> 3.2, близок к 4.4, к примеру DSA(GL_EXT_direct_state_access) нету там.

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

#379
22:00, 7 дек. 2017

war_zes
> здесь речь об убогом нелогичном синтаксисе

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

#380
20:35, 4 апр. 2018

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

#381
20:39, 4 апр. 2018

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.

#382
20:43, 4 апр. 2018

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

#383
20:51, 4 апр. 2018

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

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

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

#384
20:52, 4 апр. 2018

Dampire
> Хм, а как оно работает?
Там используются не указатели, а смещения относительно начала буфера, тем более BufferSubData не реалоцирует память.

#385
20:55, 4 апр. 2018

MrShoor
Логично. Но я, наверное, перестрахуюсь, и при полной реаллокации будут переписывать атрибуты. Чтобы потом не искать бока, когда где-то что-то сломается. (или нет, может потом выпилю)
/A\
SubData понятно. BufferData реаллоцирует.

#386
20:57, 4 апр. 2018

Dampire
> BufferData реаллоцирует.
все равно:
> Там используются не указатели, а смещения относительно начала буфера

#387
22:05, 4 апр. 2018

Если буффер еще находится на отрисовке, то даже glBufferSubData может переаллоцировать память.

#388
22:24, 4 апр. 2018

}:+()___ [Smile]
> Если буффер еще находится на отрисовке, то даже glBufferSubData может переаллоцировать память.
Вроде как glBufferSubData локально копирует себе кусочек этой памяти, и обновляет его когда буфер перестает отрисовываться, не?

#389
22:37, 4 апр. 2018

MrShoor
> Вроде как glBufferSubData локально копирует себе кусочек этой памяти, и обновляет его когда буфер перестает отрисовываться, не?
А может частично обновляет таблицу страниц, относящихся к буферу.
В общем, я не в курсе, исходники драйверов не смотрел, но я не вижу смысла реализовывать glBufferData и glBufferSubData по разному.

Страницы: 125 26 27 2830 Следующая »
ПрограммированиеФорумГрафика