diff options
author | Jesse Natalie <jenatali@microsoft.com> | 2022-02-07 14:13:20 -0800 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2022-02-08 20:36:29 +0000 |
commit | 9d6febad5d4b75fddff52c9cf60a1c8f431fdf14 (patch) | |
tree | 0942ca831b808bc29d64120f54a86f9ae99b009f | |
parent | d0f4f8efae1e7220b377ca026b4881d931a72201 (diff) |
d3d12: Actually suballocate and cache buffers
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 | 2 | ||||
-rw-r--r-- | src/gallium/drivers/d3d12/d3d12_resource.cpp | 2 | ||||
-rw-r--r-- | src/gallium/drivers/d3d12/d3d12_screen.cpp | 8 |
3 files changed, 7 insertions, 5 deletions
diff --git a/src/gallium/drivers/d3d12/d3d12_bufmgr.cpp b/src/gallium/drivers/d3d12/d3d12_bufmgr.cpp index c9b15aef21f..07a0742e15e 100644 --- a/src/gallium/drivers/d3d12/d3d12_bufmgr.cpp +++ b/src/gallium/drivers/d3d12/d3d12_bufmgr.cpp @@ -95,7 +95,7 @@ d3d12_bo_new(ID3D12Device *dev, uint64_t size, const pb_desc *pb_desc) D3D12_RESOURCE_DESC res_desc; res_desc.Dimension = D3D12_RESOURCE_DIMENSION_BUFFER; res_desc.Format = DXGI_FORMAT_UNKNOWN; - res_desc.Alignment = pb_desc->alignment; + res_desc.Alignment = 0; res_desc.Width = size; res_desc.Height = 1; res_desc.DepthOrArraySize = 1; diff --git a/src/gallium/drivers/d3d12/d3d12_resource.cpp b/src/gallium/drivers/d3d12/d3d12_resource.cpp index 791e3638583..691cb173751 100644 --- a/src/gallium/drivers/d3d12/d3d12_resource.cpp +++ b/src/gallium/drivers/d3d12/d3d12_resource.cpp @@ -155,7 +155,7 @@ init_buffer(struct d3d12_screen *screen, if (templ->bind & PIPE_BIND_SAMPLER_VIEW) bufmgr = screen->cache_bufmgr; - buf_desc.alignment = D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT; + buf_desc.alignment = D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT; res->dxgi_format = DXGI_FORMAT_UNKNOWN; buf = bufmgr->create_buffer(bufmgr, templ->width0, &buf_desc); if (!buf) diff --git a/src/gallium/drivers/d3d12/d3d12_screen.cpp b/src/gallium/drivers/d3d12/d3d12_screen.cpp index 32cb94b1033..516c484e08b 100644 --- a/src/gallium/drivers/d3d12/d3d12_screen.cpp +++ b/src/gallium/drivers/d3d12/d3d12_screen.cpp @@ -1198,12 +1198,14 @@ d3d12_init_screen(struct d3d12_screen *screen, struct sw_winsys *winsys, IUnknow desc.usage = (pb_usage_flags)(PB_USAGE_CPU_WRITE | PB_USAGE_GPU_READ); screen->bufmgr = d3d12_bufmgr_create(screen); - screen->cache_bufmgr = pb_cache_manager_create(screen->bufmgr, 0xfffff, 2, 0, 64 * 1024 * 1024); - screen->slab_bufmgr = pb_slab_range_manager_create(screen->cache_bufmgr, 16, 512, + screen->cache_bufmgr = pb_cache_manager_create(screen->bufmgr, 0xfffff, 2, 0, 512 * 1024 * 1024); + screen->slab_bufmgr = pb_slab_range_manager_create(screen->cache_bufmgr, 16, + D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT, 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, + screen->readback_slab_bufmgr = pb_slab_range_manager_create(screen->cache_bufmgr, 16, + D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT, D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT, &desc); |