[Mesa-dev] [PATCH 00/10] vbo: introduce a minmax_index cache (v3)

Nicolai Hähnle nhaehnle at gmail.com
Mon Jan 11 18:32:37 PST 2016


Hi,

here is a new version of the series. I'm calling it v3 even though I never
sent v2 because it contains v3 of the main patch. Changes relative to v1:

- disable cache on USAGE_TEXTURE_BUFFER and bool/GLboolean nit
- disable cache only temporarily when a persistent writable mapping exists
- add a MESA_NO_MINMAX_CACHE environment variable that disables caches
  completely
- track hits and misses and disable the cache on a per-BO basis if the
  hit rate is low

The last point is on a per-BO basis because applications don't always have
the same usage pattern for all BOs.

There is also a new util/hash_table patch which I added for an idea that I
ultimately rejected, but it turns out to be useful elsewhere, so I'm
sending it along while I'm at it.

I benchmarked this series with a couple of tests from PTS, using low
resolutions in an attempt to emphasize CPU usage. Their performance is
unaffected, with averages with/without this series within the measurement
tolerance of each other. That there's no regression is good news, and that
there's no improvement is to be expected - if one of these tests had been
affected by the problem this series addresses, someone else would probably
have done it much earlier ;)

Please review!

Thanks,
Nicolai
--
 docs/envvars.html                     |   1 +
 src/mesa/Makefile.sources             |   1 +
 src/mesa/main/bufferobj.c             |  59 +++-
 src/mesa/main/hash.c                  |   4 +-
 src/mesa/main/mtypes.h                |   9 +
 src/mesa/main/transformfeedback.h     |   3 +
 src/mesa/vbo/vbo.h                    |   3 +
 src/mesa/vbo/vbo_exec_array.c         | 148 ----------
 src/mesa/vbo/vbo_minmax_index.c       | 378 ++++++++++++++++++++++++
 src/util/hash_table.c                 |  25 ++
 src/util/hash_table.h                 |   7 +
 src/util/tests/hash_table/Makefile.am |   1 +
 src/util/tests/hash_table/clear.c     |  91 ++++++
 13 files changed, 570 insertions(+), 160 deletions(-)



More information about the mesa-dev mailing list