diff options
author | Marek Vasut <[email protected]> | 2019-06-03 19:49:14 +0200 |
---|---|---|
committer | Lucas Stach <[email protected]> | 2019-08-14 10:36:04 +0200 |
commit | cf92074277f5d12a6812ead77c5a73419b4cbb83 (patch) | |
tree | 75934b34241880298b3967e91bfbde494ef33d2b /src/etnaviv/drm/etnaviv_priv.h | |
parent | 23f5f126d5afc7224e0a67398acec7edb3c4941f (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.h | 12 |
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 { |