Я сижу с приложением OpenGL 3.2 в Delphi 2009. При использовании FastMM 4.97 с FullDebugMode определено, что UBO не получают свои данные должным образом.С FullDebugMode undefined все работает как шарм.
Пример: установка размеров области просмотра, указывающих на два приватных целочисленных поля, FWidth и FHeight, в нашем классе фрейма рендеринга.
glBufferSubData(GL_UNIFORM_BUFFER, VUniform.Offset, VUniform.Size, @FWidth);
У меня естьуже несколько дней тяну меня за волосы, и я действительно не знаю, что делать дальше.Я не ожидаю полной поддержки OpenGL здесь, но, надеюсь, кто-то может прийти с некоторым предложением, основанным на известных различиях между выполнением в FullDebugMode и не.
Настройки проекта:
[Compiling]
Optimization False
Stack frames True
Use debug .dcus True
[Linking]
Debug info True
Map file Detailed
ОС - Windows 764 бит.
Редактировать: Найдено!Это никак не связано с OpenGL.В другом месте нашей кодовой базы функция возвращала PAnsiChar, используя Result := @AnsiString(Object.Name)[1];
. В большинстве случаев это работало нормально, так как память была только освобождена, но не изменилась.В FullDebugMode данные были перезаписаны с последовательностью $ 80 при освобождении.