Jesse Natalie
c93dda6bee
dzn: Add a debug option for enabling bindless mode
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21913 >
2023-03-23 21:48:44 +00:00
Jesse Natalie
4c4431b674
dzn: Add initial bindless infrastructure
...
When operating in "bindless" mode, the device will own 2 descriptor
heaps, one for views, and one for samplers. Every time a view is
created (image view, buffer view), a slot is allocated for it out
of the device view heap for each usage type (sampled vs storage).
Then, in a future change, descriptor sets will just contain view/
sampler indices instead of actual descriptors. Instead of copying
these to a cmdbuf-owned descriptor heap, we can directly bind the
descriptor set as a buffer. We'll also modify shaders to perform
an indirection and index into the device heap.
Buffers also get views set up on creation. In a perfect world, we
could just put addresses/sizes in the descriptor set, but DXIL
doesn't support loading from addresses, we need descriptors. When
robust buffer access is disabled *or* descriptor set buffer views
reference the remainder of the buffer, we can just re-use a view
from the buffer and use an offset.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21913 >
2023-03-23 21:48:44 +00:00
Jesse Natalie
599abf5b1a
dzn: Remove device pointers from descriptor heaps
...
A future change is going to add descriptor heaps *to* the dzn_device,
and having 3x ID3D12Device pointers in a single object just seems
wrong. All of the callers already had a device, so just pass it
along where needed.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21913 >
2023-03-23 21:48:43 +00:00
Jesse Natalie
3ce2b71193
dzn: Claim the arithmetic subgroup bit
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21996 >
2023-03-18 02:33:42 +00:00
Jesse Natalie
87e83ce58e
dzn: Enable KHR_storage_buffer_storage_class
...
It's required for VK1.1 and Mesa's SPIR-V parser handles it for us.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21261 >
2023-02-14 23:28:29 +00:00
Jesse Natalie
7ead717393
dzn: Enable 16bit types when supported
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21029 >
2023-02-11 06:12:23 +00:00
Jesse Natalie
d7f9e2db59
dzn: Get options4
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21029 >
2023-02-11 06:12:23 +00:00
Jesse Natalie
cc906c0eed
dzn: Enable get_surface_capabilities2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21029 >
2023-02-11 06:12:23 +00:00
Jesse Natalie
237e12c2df
dzn, driconf: Add a driconf entry for NMS to claim wide line support
...
Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20959 >
2023-01-30 21:17:25 +00:00
Jesse Natalie
cdd1588d55
dzn: Don't recursively lock the physical device enum mutex
...
Fixes: cfa260cd27 ("dzn: Use common physical device list/enumeration helpers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20939 >
2023-01-26 19:00:31 +00:00
Jesse Natalie
40a2b50599
dzn: Fix Windows WSI
...
This was a merge conflict from the Win32 WSI DXGI swapchain changes.
I missed moving a new line of code that was added when rearranging
things for using the common helpers.
Fixes: cfa260cd ("dzn: Use common physical device list/enumeration helpers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20944 >
2023-01-26 18:03:50 +00:00
Jesse Natalie
a08d6d8b59
dzn: Support Vulkan 1.2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20919 >
2023-01-26 03:16:50 +00:00
Jesse Natalie
948ff5b8e2
dzn: Support float control
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20919 >
2023-01-26 03:16:50 +00:00
Jesse Natalie
f391c2db62
dzn: Cache GPUVA for buffers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20919 >
2023-01-26 03:16:50 +00:00
Jesse Natalie
34f372c47c
dzn: Handle separate stencil usage
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20919 >
2023-01-26 03:16:50 +00:00
Jesse Natalie
81b5f6a3fd
dzn: Use core feature matching logic instead of rolling our own
...
This will print nice messages on unsupported features
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20801 >
2023-01-24 11:00:05 -08:00
Jesse Natalie
db083070f0
dzn: Implement subgroup size control extension
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20801 >
2023-01-24 11:00:05 -08:00
Jesse Natalie
a041cd48f4
dzn: Support more subgroup/quad ops
...
See the comment around supported shader stages - to avoid
introducing CTS failures, vertex/geometry support for
subgroups are turned off since they cannot support quads.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20801 >
2023-01-24 11:00:05 -08:00
Jesse Natalie
12a471afac
dzn: Enable Vulkan 1.1
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20823 >
2023-01-24 17:22:25 +00:00
Jesse Natalie
602a54a083
dzn: Don't expose variable pointers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20823 >
2023-01-24 17:22:25 +00:00
Jesse Natalie
884d870929
dzn: Descriptor limits are based on binding tier, not heap tier
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20823 >
2023-01-24 17:22:25 +00:00
Jesse Natalie
9f13a4a10a
dzn: Usage MULTISAMPLE_LOAD support instead of RT/DS support for MSAA
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20823 >
2023-01-24 17:22:25 +00:00
Jesse Natalie
29a0bcdd84
dzn: Support EXTENDED_USAGE bit
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20823 >
2023-01-24 17:22:25 +00:00
Jesse Natalie
1041e0d281
dzn: Use SHADER_LOAD to indicate SAMPLED_IMAGE support
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20823 >
2023-01-24 17:22:25 +00:00
Jesse Natalie
cfc05566ab
dzn: Move patched vertex buffer capability check up a level
...
Some of these patched formats are also needed as (trivial) image
formats, so we can't just report vertex buffer as the only supported
operation.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20823 >
2023-01-24 17:22:25 +00:00
Jesse Natalie
232c598e79
dzn: Set dynamic rendering caps
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20823 >
2023-01-24 17:22:25 +00:00
Jesse Natalie
cfa260cd27
dzn: Use common physical device list/enumeration helpers
...
Implements EnumeratePhysicalDeviceGroups for us for free
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20823 >
2023-01-24 17:22:25 +00:00
Jesse Natalie
bfd891fe66
dzn: Support basic subgroups
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20777 >
2023-01-20 18:50:57 +00:00
Jesse Natalie
c92729c3ce
dzn: Enable independent blending
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20778 >
2023-01-20 00:35:59 +00:00
Jesse Natalie
8c0531cf91
dzn: Enable multiview
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20650 >
2023-01-19 21:14:50 +00:00
Jesse Natalie
ca8c8f2fc1
dzn: Remove cmdbuf query 'wait' list
...
From the Vulkan spec, the WAIT flag on vkCmdCopyQueryPoolResults only
serves to increase the first synchronization scope to include query end
commands, but either way, the synchronization scope only includes
commands that occur earlier in submission order. In other words, we
don't need to enforce queue ordering, a pipeline barrier is all that's
needed.
Fixes deadlocks in the timestamp.misc_tests.two_cmd_buffers_primary test.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20617 >
2023-01-17 20:17:42 +00:00
Jesse Natalie
261102bd9c
dzn: Fix format support checks for storage/uniform texel buffers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20617 >
2023-01-17 20:17:42 +00:00
Jesse Natalie
4565490b71
dzn: Support unnormalized coordinate samplers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20617 >
2023-01-17 20:17:42 +00:00
Jesse Natalie
552ab9c2f7
dzn: Support root signature 1.2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20617 >
2023-01-17 20:17:42 +00:00
Jesse Natalie
ca20577622
dzn: Storage buffer sizes need to be 4-byte-aligned
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20614 >
2023-01-17 12:47:16 +00:00
Jesse Natalie
b948a5db4f
dzn: Support int border colors
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20614 >
2023-01-17 12:47:16 +00:00
Jesse Natalie
aa3fc8753d
dzn: Get options13
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20614 >
2023-01-17 12:47:16 +00:00
Jesse Natalie
dee97e7b99
dzn: Allow multiple graphics queues
...
There's no real reason not to, WDDM supports it. It's not really that
useful, but I don't expect most apps to really want to do it anyway.
It does enable some useful synchronization scenarios sometimes.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16200 >
2023-01-11 09:31:02 +00:00
Boris Brezillon
5f1b8b3e6c
dzn: Use DXGI swapchains
...
Makes things so much faster than doing CPU copies using StretchBlt().
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16200 >
2023-01-11 09:31:02 +00:00
Jesse Natalie
22bb768a8e
dzn: Remove spammy logging during device create
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20364 >
2023-01-04 11:12:34 -08:00
Jesse Natalie
a0b9e5a93e
dzn: Flip on enhanced barrier code paths based on D3D capability
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20324 >
2023-01-04 18:20:26 +00:00
Jesse Natalie
b9df7f0a27
dzn: Store valid BARRIER_ACCESS flag masks for a few objects
...
A subset of total access flags are valid based on command list
type and resource flags, so store that set during object creation.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20324 >
2023-01-04 18:20:26 +00:00
Jesse Natalie
d7f5563907
dzn: Create all buffers in COMMON state
...
Since they promote/decay, there's no point in using any
other initial state value.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20324 >
2023-01-04 18:20:26 +00:00
Jesse Natalie
76e72ed452
dzn: Delete initial_state which is always COMMON
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20324 >
2023-01-04 18:20:26 +00:00
Jesse Natalie
e1ea140d77
dzn: Get options15
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20346 >
2022-12-16 18:40:47 +00:00
Jan Alexander Steffens (heftig)
b513389400
dzn: Don't crash when libd3d12.so can't be found
...
`dzn_instance_create` will call `dzn_instance_destroy` when the d3d12
library fails to load. Just like the issue in `d3d12_screen`, this will
lead to a crash because `d3d12_mod` is NULL.
To fix this, only close the library after if it was actually opened.
Cc: mesa-stable
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20145 >
2022-12-04 01:07:08 +00:00
Jesse Natalie
c5b6d0c882
dzn: Get options14
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19537 >
2022-11-17 00:13:33 +00:00
Jesse Natalie
f3b631f1dc
dzn: Upgrade baseline from ID3D12Device2 to 4
...
This is pretty old already and we'll want to use CreateCommandList1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19537 >
2022-11-17 00:13:33 +00:00
Boris Brezillon
bda14ae998
dzn: Try to get a ID3D12Device10 object
...
Will be needed to support format casting.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17339 >
2022-11-04 17:39:46 +00:00
Boris Brezillon
bbc4b4f59a
dzn: Query D3D12_FEATURE_DATA_D3D12_OPTIONS12
...
Needed to detect whether relaxed format casting is supported or not.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17339 >
2022-11-04 17:39:46 +00:00