glbench: improve buffer_streaming tests

TestFunc is called multiple times with different iteration counts.
We should call glBufferData in TestFunc, not before RunTest, to make
sure we always stream data to a new buffer.

Really enable culling such that the tests are not FS nor I/O bound.

The new numbers are

native: buffer_streaming_subdata           = 40.88 mbytes_sec
        buffer_streaming_subdata_overwrite = 6.03 mbytes_sec

virgl:  buffer_streaming_subdata           = 29.95 mbytes_sec
        buffer_streaming_subdata_overwrite = 0.01 mbytes_sec

Note that there are better ways to stream data, such as making use
of glInvalidateBufferData and GL_MAP_UNSYNCHRONIZED_BIT.  But the
current tests are equally, if not more, valuable exactly because
they are worse ways to stream data: they require a smarter driver to
perform well.

BUG=chromium:959432
TEST=glbench -notemp -tests buffer_streaming

Change-Id: I4fe7a3ab73cbd21e3d4c52a3acf58c7ddd60ed27
Reviewed-on: https://chromium-review.googlesource.com/1615585
Commit-Ready: Chia-I Wu <olv@google.com>
Tested-by: Ilja H. Friedel <ihf@chromium.org>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Po-Hsien Wang <pwang@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
1 file changed