mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-22 09:40:40 +02:00
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 <lfrb@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8095>
This commit is contained in:
parent
47125bce8b
commit
be19eb771a
2 changed files with 6 additions and 0 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue