Wenn OpenGL Compute Shader unterstützt, kann man auch gleich
glClearTexImage verwenden.
Das stimmt natürlich. Idealerweise tut dann einfach der Driver nix andres als einen entsprechenden Kernel launchen. Müsste man mal messen. Normale memsets sind (bzw. waren das letzte Mal als wir das gemessen haben) interessanterweise langsamer als ein entsprechender Kernel...
Andernfalls könnte man ein FBO erstellen und mittels glClear leeren.
Ob das schneller ist will ich aber mal stark bezweifeln. Bei sehr großen Texturen aber vielleicht schon.
Würde mich stark wundern. Ich würde erwarten, dass ein
glClear() im Fall eines Renderbuffer extrem schnell ist (sollte nur ein paar clear Bits setzen müssen), im Fall einer Texture aber bestenfalls gleich schnell wie ein entsprechender Kernel (die Texture muss mir – sobald das Rendern fertig ist – praktisch jederzeit Random Access gewähren, was bedeutet, dass die Farbwerte
wirklich überall im Speicher stehen müssen)...