diff options
author | Dave Airlie <airlied@redhat.com> | 2010-09-17 13:37:31 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-09-17 15:29:31 +1000 |
commit | a927d0477a47e29d72e518880979e11e8c0f98e7 (patch) | |
tree | 2f77bc4606b176c52bd8fdb86798059c476e7a35 /src/gallium/winsys/r600/drm/radeon_ws_bo.c | |
parent | da96313afe3cff66d8ae0c9675a6299b3d7510f9 (diff) |
r600g: add winsys bo caching.
this adds the bo caching layer and uses it for vertex/index/constant bos.
ctx needs to take references on hw bos so the flushing works okay, also
needs to flush the maps.
Diffstat (limited to 'src/gallium/winsys/r600/drm/radeon_ws_bo.c')
-rw-r--r-- | src/gallium/winsys/r600/drm/radeon_ws_bo.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gallium/winsys/r600/drm/radeon_ws_bo.c b/src/gallium/winsys/r600/drm/radeon_ws_bo.c index c63e926dab..ccaedb4777 100644 --- a/src/gallium/winsys/r600/drm/radeon_ws_bo.c +++ b/src/gallium/winsys/r600/drm/radeon_ws_bo.c @@ -15,7 +15,9 @@ struct radeon_ws_bo *radeon_ws_bo(struct radeon *radeon, if (radeon->use_mem_constant && (usage & PIPE_BIND_CONSTANT_BUFFER)) { man = radeon->mman; - } else + } else if (usage & (PIPE_BIND_CONSTANT_BUFFER | PIPE_BIND_VERTEX_BUFFER | PIPE_BIND_INDEX_BUFFER)) + man = radeon->cman; + else man = radeon->kman; ws_bo->pb = man->create_buffer(man, size, &desc); |