diff options
author | Jesse Natalie <jenatali@microsoft.com> | 2022-02-07 17:14:33 -0800 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2022-02-08 20:36:29 +0000 |
commit | 96d68cb300d58a340fcfcf416fc7ba722ae7fb62 (patch) | |
tree | b13928845203342dc3bd77ff8ee2ae6de86224bc | |
parent | 9d6febad5d4b75fddff52c9cf60a1c8f431fdf14 (diff) |
d3d12: Add a buffer busy callback to the bufmgr
Not all cached buffers can be mapped, so using map with do-not-wait
is a terrible heuristic. Use an explicit buffer busy callback which
is always false, since buffers are only put into the cache once they're
free.
Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14933>
-rw-r--r-- | src/gallium/drivers/d3d12/d3d12_bufmgr.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/drivers/d3d12/d3d12_bufmgr.cpp b/src/gallium/drivers/d3d12/d3d12_bufmgr.cpp index 07a0742e15e..91ec2c9eac9 100644 --- a/src/gallium/drivers/d3d12/d3d12_bufmgr.cpp +++ b/src/gallium/drivers/d3d12/d3d12_bufmgr.cpp @@ -320,6 +320,13 @@ d3d12_bufmgr_destroy(struct pb_manager *_mgr) FREE(mgr); } +static boolean +d3d12_bufmgr_is_buffer_busy(struct pb_manager *_mgr, struct pb_buffer *_buf) +{ + /* We're only asked this on buffers that are known not busy */ + return false; +} + struct pb_manager * d3d12_bufmgr_create(struct d3d12_screen *screen) { @@ -332,6 +339,7 @@ d3d12_bufmgr_create(struct d3d12_screen *screen) mgr->base.destroy = d3d12_bufmgr_destroy; mgr->base.create_buffer = d3d12_bufmgr_create_buffer; mgr->base.flush = d3d12_bufmgr_flush; + mgr->base.is_buffer_busy = d3d12_bufmgr_is_buffer_busy; mgr->dev = screen->dev; |