Jesse Natalie
c6f01d6c45
d3d12: Swap the remainder of state tracking to new method
...
Uses a set of d3d12_bo on the context to track which bos are pending
a transition instead of an intrusive linked list, since the bo may
need to be pending on multiple contexts at once.
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17688 >
2022-07-22 14:42:56 +00:00
Jesse Natalie
70e7cb444e
d3d12: Track a global resource state for non-simultaneous-access resources
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17688 >
2022-07-22 14:42:56 +00:00
Jesse Natalie
f972a57b0b
d3d12: Treat depth/stencil as planar for plane count helper
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17688 >
2022-07-22 14:42:56 +00:00
Jesse Natalie
6a8070bcef
d3d12: Notify contexts about deletion of bos
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17688 >
2022-07-22 14:42:56 +00:00
Jesse Natalie
375e8b2f4b
d3d12: Hold lock when removing resources from residency list
...
Also, remove them from the list before releasing the ID3D12Resource.
Fixes: 671deb54
("d3d12: Add residency info to d3d12_bo")
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17688 >
2022-07-22 14:42:56 +00:00
Jesse Natalie
17c3f4f3e1
d3d12: Give bos a unique identifier to be used for state tracking
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17688 >
2022-07-22 14:42:56 +00:00
Jesse Natalie
2016dec6a4
d3d12: Move desired resource state to new files
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17688 >
2022-07-22 14:42:56 +00:00
Jesse Natalie
e14beaf05b
d3d12: Add helpers to build with correct ABI for MinGW
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17548 >
2022-07-15 16:27:11 +00:00
Yonggang Luo
d493e2ef7d
d3d12: Move shared code that include d3d12 headers into d3d12_common.h
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16767 >
2022-06-03 16:33:00 +00:00
Jesse Natalie
5b46ef9857
d3d12: Use a pipe_reference in d3d12_bo
...
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16182 >
2022-05-02 16:58:20 +00:00
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