Hi,
I ran into an unexpected performance issue with clearing 2d texture arrays, so I tried some work-arounds. The huge differences in gpu time seem to indicate there's something wrong with the implementation of clears (clearbuffer, cleartexsubimage) for 2d arrays. Here are the results:
rgba16f, 64x64x192:
- glClearBufferfv(): 400us
- glClearTexSubImage: 400us
- Draw 192 slices: 136us
- Compute: 35us
depth24s8, 64x64x192:
- glClearBufferfi(): 334us
- glClearSubTexImage(): 334us
- Draw 192 slices: 27us
- Compute: no image store avail for depth-stencil =(
Also worth noting is that clearbuffer and clearsubteximage take about ~40us cpu setup time compared to compute setup of ~15us.
cheers,
-mh