Можно ли изменить размер VBO?

Название говорит все, но для ясности я добавлю несколько дополнительных слов.

В данном случае, изменить размер означает:

  • получить больше места в конце старого vbo
  • , сохраняя старые данные спереди
  • (надеюсь, не копируя, но, по крайней мере, не со стороны процессора, то есть драйвер должен с этим справиться)

EDIT

Что бы объяснить некоторые подробности и обосновать мой вопрос:
Я буду хранить данные (на переднем плане) неизвестного VBO размера, но я знаю только верхний предел, который является очень грубой оценкой (10 - 100 раз больше или даже больше в необычных условиях).

Конечно, я знаю, сколько данных я хранил, когда закончу с ними, поэтому было бы неплохо хранить данные до тех пор, пока я не найду свое VBO слишком маленьким и не изменю его размер, а затем продолжу хранить.

Вот почему я не хочу копировать (особенно на стороне процессора):
. Я делаю все это на GPU, чтобы получить интерактивную частоту кадров. Когда мне приходится копировать, это очень медленно или даже невозможно, потому что не хватает места. Хуже всего копировать данные на CPU, а значит, передавать все по шине, в новую область памяти, имеющую достаточный размер, затем glBufferDataing VBO с новым размером и новой областью памяти в качестве источника. Это будет убийца производительности.

обошел

я обошел проблему с точной оценкой необходимого пространства. Но я позволю этому вопросу остаться без ответа в течение недели, чтобы посмотреть, есть ли у кого-нибудь другой намек на это, так как я не очень доволен решением.

11
задан b1nary.atr0phy 23 September 2014 в 22:22
поделиться