lima: implement BO cache
authorVasily Khoruzhick <anarsoul@gmail.com>
Sun, 8 Sep 2019 02:33:07 +0000 (19:33 -0700)
committerVasily Khoruzhick <anarsoul@gmail.com>
Mon, 23 Sep 2019 02:20:59 +0000 (19:20 -0700)
commitd2147787534de87cd11015266293211b5188442f
tree823202fabe8f330fc6360a2a02dbc881e2280181
parent9f897a2b4cf2c0e222487470053a69de843f2084
lima: implement BO cache

Allocating BOs is expensive, so we should avoid doing that by caching
freed BOs.

BO cache is modelled after one in v3d driver and works as follows:

- in lima_bo_create() check if we have matching BO in cache and return
  it if there's one, allocate new BO otherwise.
- in lima_bo_unreference() (renamed from lima_bo_free()): put BO in
  cache instead of freeing it and remove all stale BOs from cache

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
src/gallium/drivers/lima/lima_bo.c
src/gallium/drivers/lima/lima_bo.h
src/gallium/drivers/lima/lima_context.c
src/gallium/drivers/lima/lima_program.c
src/gallium/drivers/lima/lima_resource.c
src/gallium/drivers/lima/lima_screen.c
src/gallium/drivers/lima/lima_screen.h
src/gallium/drivers/lima/lima_submit.c