summaryrefslogtreecommitdiffstats
path: root/src/etnaviv/drm/etnaviv_priv.h
diff options
context:
space:
mode:
authorMarek Vasut <[email protected]>2019-06-03 19:49:14 +0200
committerLucas Stach <[email protected]>2019-08-14 10:36:04 +0200
commitcf92074277f5d12a6812ead77c5a73419b4cbb83 (patch)
tree75934b34241880298b3967e91bfbde494ef33d2b /src/etnaviv/drm/etnaviv_priv.h
parent23f5f126d5afc7224e0a67398acec7edb3c4941f (diff)
etnaviv: Use hash table to track BO indexes
Use hash table instead of ad-hoc arrays. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Lucas Stach <[email protected]>
Diffstat (limited to 'src/etnaviv/drm/etnaviv_priv.h')
-rw-r--r--src/etnaviv/drm/etnaviv_priv.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/etnaviv/drm/etnaviv_priv.h b/src/etnaviv/drm/etnaviv_priv.h
index 527cee30dc3..d8f053771e9 100644
--- a/src/etnaviv/drm/etnaviv_priv.h
+++ b/src/etnaviv/drm/etnaviv_priv.h
@@ -99,12 +99,10 @@ struct etna_bo {
uint64_t offset; /* offset to mmap() */
int refcnt;
- /* in the common case, a bo won't be referenced by more than a single
- * command stream. So to avoid looping over all the bo's in the
- * reloc table to find the idx of a bo that might already be in the
- * table, we cache the idx in the bo. But in order to detect the
- * slow-path where bo is ref'd in multiple streams, we also must track
- * the current_stream for which the idx is valid. See bo2idx().
+ /*
+ * To avoid excess hashtable lookups, cache the stream this bo was
+ * last emitted on (since that will probably also be the next ring
+ * it is emitted on).
*/
struct etna_cmd_stream *current_stream;
uint32_t idx;
@@ -154,6 +152,8 @@ struct etna_cmd_stream_priv {
/* notify callback if buffer reset happened */
void (*reset_notify)(struct etna_cmd_stream *stream, void *priv);
void *reset_notify_priv;
+
+ void *bo_table;
};
struct etna_perfmon {