Module: Mesa Branch: master Commit: be19eb771acd77843bf463a12d37510ca0070ce3 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=be19eb771acd77843bf463a12d37510ca0070ce3
Author: Jesse Natalie <[email protected]> Date: Mon Dec 14 11:45:16 2020 -0800 d3d12: Add a slab bufmgr for readback buffers Readback (GPU write, CPU read) should use different CPU page properties compared to upload (write-back vs write-combined). A future commit will start to respect these PB usage flags. Reviewed-by: Louis-Francis Ratté-Boulianne <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8095> --- src/gallium/drivers/d3d12/d3d12_screen.cpp | 5 +++++ src/gallium/drivers/d3d12/d3d12_screen.h | 1 + 2 files changed, 6 insertions(+) diff --git a/src/gallium/drivers/d3d12/d3d12_screen.cpp b/src/gallium/drivers/d3d12/d3d12_screen.cpp index b3bd1f40be0..0cb388277e2 100644 --- a/src/gallium/drivers/d3d12/d3d12_screen.cpp +++ b/src/gallium/drivers/d3d12/d3d12_screen.cpp @@ -603,6 +603,7 @@ d3d12_destroy_screen(struct pipe_screen *pscreen) { struct d3d12_screen *screen = d3d12_screen(pscreen); slab_destroy_parent(&screen->transfer_pool); + screen->readback_slab_bufmgr->destroy(screen->readback_slab_bufmgr); screen->slab_bufmgr->destroy(screen->slab_bufmgr); screen->cache_bufmgr->destroy(screen->cache_bufmgr); screen->bufmgr->destroy(screen->bufmgr); @@ -869,6 +870,10 @@ d3d12_init_screen(struct d3d12_screen *screen, struct sw_winsys *winsys, IUnknow screen->slab_bufmgr = pb_slab_range_manager_create(screen->cache_bufmgr, 16, 512, D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT, &desc); + desc.usage = (pb_usage_flags)(PB_USAGE_CPU_READ_WRITE | PB_USAGE_GPU_WRITE); + screen->readback_slab_bufmgr = pb_slab_range_manager_create(screen->cache_bufmgr, 16, 512, + D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT, + &desc); screen->have_load_at_vertex = can_attribute_at_vertex(screen); return true; diff --git a/src/gallium/drivers/d3d12/d3d12_screen.h b/src/gallium/drivers/d3d12/d3d12_screen.h index 75555211b99..347a6c5ce5d 100644 --- a/src/gallium/drivers/d3d12/d3d12_screen.h +++ b/src/gallium/drivers/d3d12/d3d12_screen.h @@ -48,6 +48,7 @@ struct d3d12_screen { struct pb_manager *bufmgr; struct pb_manager *cache_bufmgr; struct pb_manager *slab_bufmgr; + struct pb_manager *readback_slab_bufmgr; /* capabilities */ D3D_FEATURE_LEVEL max_feature_level; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
