Pedro J. Estébanez
e07e9a08cb
spirv_to_dxil: Unify spirv_to_nir_options
...
Beyond the pure refactoring, this fixes spirv2dxil, which was using outdated values.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20884 >
2023-01-24 18:07:18 +00: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
3f0bbb19de
dzn: Fix independent blend check
...
Memcmp returns 0 on equal, so !memcmp means equal.
Fixes: c92729c3 ("dzn: Enable independent blending")
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
ad7157c1e8
dzn: A single sampler descriptor set needs to support 1024 samplers
...
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
c0d8838c30
dzn: Usage image view usage instead of image usage
...
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
ceb287a509
dzn: When rendering to 3D, don't treat layers as subresources for barriers
...
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
c8b9f70fca
dzn: Respect suspending/resuming flags to omit clears/resolves
...
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
0bae7a307c
dzn: Support vkCmdDispatchBase
...
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
8872d5d1dc
spirv2dxil: Use 32-bit shared offsets
...
nir_build_deref_var assumes that you're going to do so, and
there's no reason to use 64-bit types for Vulkan compute.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20777 >
2023-01-20 18:50:57 +00:00
Jesse Natalie
e8c8a94c2e
dzn: Rework meta blit VS
...
Some D3D12 drivers, like my PC's AMD driver, don't like using a
dynamic index to load from a constant buffer that's bound via
root constants. Instead, just go ahead and load the full set of
vertex data and just bcsel which one to use.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20778 >
2023-01-20 00:35:59 +00:00
Jesse Natalie
8de0c23ac9
dzn: Delete an unnecessary assert
...
As far as I can tell, having multiple levels in the view for a
color target just means to target the first one.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20778 >
2023-01-20 00:35:59 +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
Dylan Baker
7aca37fc28
meson: use [] instead of 'lib for !windows name_prefix
...
This is a poorly documented value that uses the default value, but
doesn't emit a warning. In the future Meson will fix this.
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20752 >
2023-01-19 23:06:07 +00:00
Dylan Baker
c31629ee78
meson: remove version checks for < 0.59
...
Which is now required, so these are useless
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20752 >
2023-01-19 23:06:07 +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
ebf2604562
dzn: Implement multiview queries
...
This is a weird way to do queries, but in multiview, each query
takes up N slots, where N is the number of views. D3D doesn't do
it that way, and only has one result, which fortunately is a valid
way to do Vulkan queries. We just need to take care to zero out
the other view results, and make sure they get "signaled" when
the cmdbuf is submitted.
Note that it is invalid in D3D to use ResolveQueryData on query
slots that have never actually been begun/ended, so we zero out
the data by copying zeroes into the buffer. This probably could
be optimized but oh well.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20650 >
2023-01-19 21:14:50 +00:00
Jesse Natalie
4586b308d8
dzn: Handle draws and clears for multiview rendering
...
For draws, when we're emulating multiview, we need to loop them
and set up the right sysval. For clears, we always need to loop.
When not emulating, we also need to set up the right view instance
mask.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20650 >
2023-01-19 21:14:50 +00:00
Jesse Natalie
6fca32cb38
dzn: Handle multiview pipeline creation
...
This handles both native and emulated pipeline creation
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20650 >
2023-01-19 21:14:50 +00:00
Jesse Natalie
ea9d092655
dzn: Put nir compilation options in a struct
...
The function signatures are getting unwieldly...
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
0069ac9e6e
dzn: Disable depth when the rasterizer is disabled due to no position output
...
D3D considers the rasterizer enabled if there's a pixel shader *or* if
depth is enabled, since you can do depth-only rendering. After parsing
shaders, if we find that there was supposed to be a pixel shader, but
we removed it because there was no output position, disable depth too.
Also, store this info in the cache, since we might not even load the
nir shaders if we'd seen this pipeline before.
Fixes dEQP-VK.synchronization.internally_synchronized_objects.pipeline_cache_graphics
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20617 >
2023-01-17 20:17:42 +00:00
Jesse Natalie
682605a99b
dzn: Add a zeroed zsa state when depth or raster is disabled
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20617 >
2023-01-17 20:17:42 +00:00
Jesse Natalie
25d460a818
dzn: Always align cached pipeline header size to input element align
...
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
1e0adac84a
dzn: Define a symbol that was present in older D3D headers
...
D3D12_BARRIER_SYNC_INPUT_ASSEMBLER was renamed to D3D12_BARRIER_SYNC_INDEX_INPUT,
so conditionally define the old name based on the version of the headers that are
being used.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20617 >
2023-01-17 20:17:42 +00:00
Jesse Natalie
2f4c7b5ccf
dzn: Use typeless format for creation of depth-only or stencil-only D24S8
...
When querying capabilities or creating views using a scoped aspect
mask, we want to return the format for the correct single-channel
format, but when actually creating the resource (aspect mask 0),
we want to use the typeless format, since the single-channel formats
don't report multisampling support.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20614 >
2023-01-17 12:47:16 +00:00
Jesse Natalie
9f928adf81
dzn: Set MultisampleEnable to enable MSAA lines
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20614 >
2023-01-17 12:47:16 +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
10282bbd96
dzn: Use R24G8_TYPELESS for 24/8 depth resources
...
This is the same that was already being done for R32G8X24, not sure
why it was missed for R24G8.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20614 >
2023-01-17 12:47:16 +00:00
Jesse Natalie
a3005ecb56
dzn: When changing root signature, dirty descriptors too
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20614 >
2023-01-17 12:47:16 +00:00
Jesse Natalie
14f0c85874
dzn: Support alpha blend factor
...
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
f1faf30a5f
dzn: Fix clear bind flag logic
...
This is the patch I had meant to merge
Fixes: 8b79e6fb ("dzn: No need to add another bind flag for clears if one is already present")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20361 >
2023-01-13 21:55:41 +00:00
GH Cao
af55e36d79
dzn: Declare debug only root_dwords as ASSERTED
...
Such variable is only used in assert(), so declare it as ASSERTED.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7885
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7234
Signed-off-by: GH Cao <driver1998.ms@outlook.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20676 >
2023-01-12 21:02:23 +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
Pedro J. Estébanez
9d814c405b
microsoft/spirv_to_dxil: Let linking report the need of runtime data
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20608 >
2023-01-10 13:43:01 +00:00
Jesse Natalie
8b79e6fb5e
dzn: No need to add another bind flag for clears if one is already present
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20400 >
2023-01-10 04:25:26 +00:00