Jesse Natalie
22fc534930
d3d12: Default newly-created resources to not-resident
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14959 >
2022-02-10 20:06:15 +00:00
Jesse Natalie
671deb541e
d3d12: Add residency info to d3d12_bo
...
This is all currently immutable, but will be used to manage the
residency of the underlying D3D objects in a future commit.
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14959 >
2022-02-10 20:06:15 +00:00
Jesse Natalie
96d68cb300
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 >
2022-02-08 20:36:29 +00:00
Jesse Natalie
9d6febad5d
d3d12: Actually suballocate and cache buffers
...
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14933 >
2022-02-08 20:36:29 +00:00
Jesse Natalie
caae9b0e1f
d3d12: Always respect offsets when mapping a bo, not just when there's a range
...
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14933 >
2022-02-08 20:36:29 +00:00
Jesse Natalie
b48aea0ec8
d3d12: Fix range calculation for suballocated buffers in d3d12_bo_unmap
...
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14933 >
2022-02-08 20:36:29 +00:00
Jesse Natalie
5c69c44a99
d3d12: Avoid a debug warning trying to unmap a not-mapped resource
...
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14294 >
2021-12-27 23:40:25 +00:00
Jesse Natalie
49cf325d82
d3d12: Always create buffers as UAV-capable
...
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14294 >
2021-12-27 23:40:24 +00:00
Marek Olšák
712b629abf
gallium/pb: change pb_buffer::alignment to alignment_log2
...
Alignments are always 2^n, so store n = log2(alignment). The next commit
will take advantage of the saved space.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9809 >
2021-04-06 22:31:15 +00:00
Marek Olšák
6c6a39682e
gallium/pb: pass an optional winsys pointer to the buffer destroy function
...
This will allow removing the winsys pointer from buffers.
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9809 >
2021-04-06 22:31:15 +00:00
Jesse Natalie
ee1463db3c
d3d12: Use buffer pipe usage to inform allocation
...
For non-CPU-accessible pipe resource types (DEFAULT/IMMUTABLE),
allocate non-CPU-accessible buffers directly from the cache_bufmgr.
Update the d3d12_bo creation to handle nonmappable buffers.
For CPU-write-only (DYNAMIC/STREAM), use the upload slab_bufmgr.
Update this slab manager to use CPU_WRITE | GPU_READ PB usage.
For CPU-read-write (STAGING), use the readback_slab_bufmgr.
Reviewed-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8095 >
2021-01-05 14:51:00 -08:00
Jesse Natalie
7319cabfb5
d3d12: Unused variable warning indicated bug in bo_unmap
...
Fixes: 2ea15cd6
("d3d12: introduce d3d12 gallium driver")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248 >
2021-01-03 23:07:21 +00:00
Jesse Natalie
af2e212c59
d3d12: Use IID_PPV_ARGS instead of __uuidof
...
We've been inconsistent between IID_PPV_ARGS,
__uuidof(var), and __uuidof(type). Since Linux doesn't
support the latter of these, they need to be changed.
While we're at it, switch all __uuidof to the more terse
IIV_PPV_ARGS option.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7937 >
2020-12-16 16:25:54 +00:00
Jesse Natalie
e1e05ad772
d3d12: Include dxguids/dxguids.h in files that need __uuidof
...
MSVC has an extension for getting IIDs (GUIDs) from types. Other
compilers can support this extension when targeting Windows, but
don't support it when targeting Linux. Instead, winadapter.h
defines __uuidof(var) to uuidof<decltype(var)>. Then dxguids.h
provides inline specialized definitions for the known D3D types.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7937 >
2020-12-16 16:25:54 +00:00
Jesse Natalie
bc5f69faee
d3d12: Use DirectX-Headers wrap for d3d12.h
...
This does 2 things for us:
1. Allows us to compile-time depend on any features from new headers,
instead of having to conditionally compile based on Windows SDK version.
2. Allows us to reference d3d12.h when compiling for non-Windows.
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-by: Dylan Baker <dylan@pnwbakers.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7937 >
2020-12-16 16:25:54 +00:00
Erik Faye-Lund
2ea15cd661
d3d12: introduce d3d12 gallium driver
...
This driver will allow running OpenGL and OpenCL on top of Gallium
for any hardware supporting Microsoft's Direct3D 12 on Windows 10.
This is the combination of a lot of commits from our development branch,
containing code from several authors.
Co-authored-by: Bill Kristiansen <billkris@microsoft.com >
Co-authored-by: Gert Wollny <gert.wollny@collabora.com >
Co-authored-by: Jesse Natalie <jenatali@microsoft.com >
Co-authored-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7477 >
2020-11-10 15:37:07 +00:00