Jason Ekstrand
44ab076fea
vulkan: Add a vk_command_buffer_ops struct
...
This is the standard pattern in the kernel for providing vfunc tables
for C objects. We're using it in the pipeline cache code but we're
about to start adding more stuff and so it really helps if we have it
for command buffers as well.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18324 >
2022-09-01 20:17:25 +00:00
Jason Ekstrand
5c143b132a
vulkan: Re-order arguments to vk_command_buffer_init
...
Most other init functions follow the Vulkan API convention of putting
the parent object first.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18324 >
2022-09-01 20:17:25 +00:00
Dave Airlie
8318f73384
dozen: move to use common command buffer result code.
...
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16918 >
2022-09-01 14:11:55 +00:00
Jason Ekstrand
cc6ad491ea
vulkan/cmd_queue: Drop vk_cmd_queue::error
...
Instead, we return errors from each of the enqueue functions and record
those errors (if any) in vk_command_buffer::record_result. This also
involves some awkward changes to each of the three drivers that uses
vk_cmd_queue but those are resolved in later commits as we convert those
drivers to the common error tracking.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16918 >
2022-09-01 14:11:55 +00:00
Jesse Natalie
d66e840ab4
dzn: Get max supported shader model
...
Reviewed-by: Giancarlo Devich <gdevich@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18022 >
2022-08-25 21:22:49 +00:00
Jason Ekstrand
7077b72d60
vulkan,anv,dozen: Use VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
...
This has basically identical semantics to the pseudo-ext enum we were
using before. Also, now that it's in the actual Vulkan enum, we can get
rid of all the #pragma garbage to avoid compiler warnings.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18084 >
2022-08-23 16:41:55 +00:00
Michael Tang
55b3980e78
microsoft/compiler: Add dxil_logger type and parameter to nir_to_dxil
...
v2 (jenatali): Add a default logger which aborts via unreachable,
and use NULL from GL/Vulkan to use the default logger.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12510 >
2022-08-11 16:17:46 +00:00
Jesse Natalie
32d0dfc462
dzn: Use D3D12 constants instead of naked numbers for device limits
...
Reviewed-by: Giancarlo Devich <gdevich@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17915 >
2022-08-08 21:49:42 +00:00
Jesse Natalie
d48ce281f8
dzn: Disable extensions that require multi-view
...
Reviewed-by: Giancarlo Devich <gdevich@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17915 >
2022-08-08 21:49:42 +00:00
Jesse Natalie
bdf91b25d9
dzn: Retrieve validator version
...
For platforms where there's no validator available, leave the field zero-initialized
to let the DXIL backend choose whatever target validator version it wants.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17603 >
2022-07-23 14:48:17 +00:00
Jesse Natalie
6af22121cf
microsoft/compiler: Add a max validator version
...
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17603 >
2022-07-23 14:48:17 +00:00
Jesse Natalie
c8f63e07da
microsoft/compiler: Add a max shader model option
...
Reviewed-by: Enrico Galli <enrico.galli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17603 >
2022-07-23 14:48:17 +00:00
Erik Faye-Lund
e630637eab
dzn: expose VK_KHR_driver_properties
...
We're not quite conformant with the extension, because we don't have
a valid conformance version.
That's not a quick-fix, so we should probably just accept some failures
for now.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16998 >
2022-07-18 17:10:52 +02:00
Erik Faye-Lund
e5da067384
dzn: fill misc props
...
This is just a bag of misc properties that we should fill in.
Not all of them are filled out super accurately, but this is the best we
can do for now.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16998 >
2022-07-18 16:49:42 +02:00
Erik Faye-Lund
053e2fd9d0
dzn: fill in minmax props
...
This should be possible to support, but we don't support minmax blending
at all yet, so let's leave these as unsupported for now.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16998 >
2022-07-18 16:49:42 +02:00
Erik Faye-Lund
18c590e0b3
dzn: fill in depth/stencil resolve props
...
Before enabling Vulkan 1.2 support, we need to fix the TODO in here.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16998 >
2022-07-18 16:49:42 +02:00
Erik Faye-Lund
141e715f29
dzn: fill in bindless props
...
These might not be exactly right, but they are good enough for now.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16998 >
2022-07-18 16:49:42 +02:00
Erik Faye-Lund
34b0828cdc
dzn: fill in non-uniform-indexing props
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16998 >
2022-07-18 16:49:42 +02:00
Erik Faye-Lund
8e9191cd24
dzn: fill in float-control details
...
We can do better here in the future, but this is what's supported right
now.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16998 >
2022-07-18 16:49:42 +02:00
Erik Faye-Lund
4d7403d4dc
dzn: fill in driver name and info
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16998 >
2022-07-18 16:49:42 +02:00
Jesse Natalie
489ab1aa3b
dzn: Remove the cast when the SDK version is high enough
...
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
Jesse Natalie
b9fb14da06
dzn: Missed ABI fixes for GetCustomHeapProperties
...
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-by: Sil Vilerino <sivileri@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17548 >
2022-07-15 16:27:11 +00:00
Eric Engestrom
a96ddc3803
dzn: use updated tokens from vk.xml
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17342 >
2022-07-12 15:53:11 +00:00
Jesse Natalie
5a59211acd
dzn: Use fabs on floating point input
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17423 >
2022-07-09 14:04:48 +00:00
Jesse Natalie
2ace7832f9
dzn: Re-order dzn_physical_device_desc so = { 0 } doesn't initialize a struct
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17423 >
2022-07-09 14:04:48 +00:00
Jesse Natalie
e0ebae8dca
dzn: Fix comparison order for format enums
...
Fixes: 53a352e1 ("dzn: Provide a helper to check if 2 formats are compatible")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17423 >
2022-07-09 14:04:48 +00:00
Jesse Natalie
6c1ab8fdeb
dzn: Disable Wunused-value for C++ files
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17423 >
2022-07-09 14:04:48 +00:00
Jesse Natalie
10e8e0b9d6
dzn: Only add Werror flags that the compiler supports
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17423 >
2022-07-09 14:04:48 +00:00
Jesse Natalie
4ea58cf35f
dzn: Re-order includes in dzn_nir to prevent TRUE redefinition
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17423 >
2022-07-09 14:04:48 +00:00
Jesse Natalie
f7c741c058
dzn: Add for condition to break nested loop
...
Fixes: d132ec92 ("dzn: Support native image copies when formats are compatible")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17377 >
2022-07-08 19:17:53 +00:00
pal1000
36516b869e
dzn: Fix incompatible pointer type error affecting MSYS2 MINGW32
...
Suggested-by: Yonggang Luo <luoyonggang@gmail.com >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6807
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17414 >
2022-07-08 18:53:24 +00:00
Jesse Natalie
b16f9f8ba4
dzn: Only support high/normal queue priorities
...
D3D uses an int which seems like it'd support value between 0 and 100,
but in reality it only accepts values of exactly 0, or 100. The space
is left in case future values were to be added, so that comparisons
would work (e.g. MEDIUM_HIGH < HIGH).
Treat higher than 0.5 to be HIGH, and anything less to be NORMAL.
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17406 >
2022-07-08 03:09:11 +00:00
Jesse Natalie
6ee9002ff6
dzn: Fix winsys reporting
...
For Windows we don't support using the DISPLAY winsys,
and for WSL we should add the ones that support software
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17346 >
2022-07-07 23:02:00 +00:00
Jason Ekstrand
0b92636b62
dozen: Stop asking for semaphore/fence signaling
...
Dozen is currently a SW driver as far as WSI is concerned so it's going
to wait on a fence anyway. Also, I highly doubt it's actually hooked
these up properly. It's probably just a copy+paste from ANV.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 11:44:20 -05:00
Jason Ekstrand
14dd5bd2cb
dozen: Increase optimalBufferCopy*Alignment
...
D3D12 requires the offset to be 512B-aligned and row pitch to be
256B-aligned for copy commands. There will need to be a fallback
written eventually because Vulkan has no such requirements but these
will remain the optimal limits as they allow using the D3D12 copy
commands directly.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 11:44:19 -05:00
Jesse Natalie
53565c9929
dzn: Add ABI helpers for D3D12 functions returning structs
...
The currently available D3D12 API headers have incorrect C function
prototypes for these functions when compiling for non-Windows platforms.
Future changes here will move these helpers into the DirectX-Headers
project, but:
* The process of getting a fix into the headers is still ongoing
* I'd prefer to avoid taking an immediate dependency on just-published
headers again
So, for now add some helpers to work around this problem in Dozen
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17340 >
2022-07-06 12:18:55 +00:00
Jesse Natalie
074275d911
dzn: Add a DXCore enumeration path
...
WSL doesn't have DXGI, but it does have DXCore. DXCore also has a nice
property that it filters to only D3D12-capable adapters. We can rely
on DXCore as a first option even for Windows, because we'll be able
to let the Vulkan loader do preference sorting, instead of having to
rely on DXGI to do it for us.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17340 >
2022-07-06 12:18:55 +00:00
Jesse Natalie
49967ea306
dzn: Move DXGI code to a separate file and only build it on Windows
...
The prototypes for physical device enumeration are moved to a new
dedicated header so that it can be included from a DXCore path,
which will C++, in the next commit
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17340 >
2022-07-06 12:18:55 +00:00
Jesse Natalie
68c65de264
dzn: Use a custom adapter desc instead of DXGI adapter desc
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17340 >
2022-07-06 12:18:55 +00:00
Jesse Natalie
9a2ab661b7
dzn: Don't hash adapter LUID as part of device UUID
...
Per the Vulkan spec, the device UUID should be identical between reboots.
It should also uniquely identify different instances of the same device,
e.g. 2 identical GPUs connected to different PCI ports, but D3D doesn't
currently expose a way to do both of these things. Prefer persistence
over uniqueness here.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17340 >
2022-07-06 12:18:55 +00:00
Jesse Natalie
236282559e
dzn: Use IUnknown instead of IDXGIAdapter1 as the stored adapter
...
WSL doesn't support DXGI, and DirectX-Headers used to build for WSL
doesn't have the DXGI headers, so we need to isolate DXGI usage
and only build it on Windows
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17340 >
2022-07-06 12:18:55 +00:00
Jesse Natalie
17c0888cfe
dzn: Skip dxil validator and some Windows-only debug flags for Linux
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17340 >
2022-07-06 12:18:55 +00:00
Jesse Natalie
72a9e66b20
dzn: Fix maybe-uninitialized warning
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17340 >
2022-07-06 12:18:55 +00:00
Jesse Natalie
45ad8125f5
dzn: Add an eventfd sync implementation
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17340 >
2022-07-06 12:18:55 +00:00
Jesse Natalie
c7d8f1a7b8
dzn: Use u_dl to load D3D12
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17340 >
2022-07-06 12:18:55 +00:00
Jesse Natalie
b31c0775e6
dzn: Use os_time_sleep instead of Win32 Sleep
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17340 >
2022-07-06 12:18:55 +00:00
Jesse Natalie
1a01187e1b
dzn: Define COBJMACROS before any includes
...
Otherwise the IUnknown definition might get included before it.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17340 >
2022-07-06 12:18:55 +00:00
Jesse Natalie
f47e42fdba
dzn: Annotate sometimes-unused variables.
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17340 >
2022-07-06 12:18:55 +00:00
Boris Brezillon
99352b87dc
dzn: Take VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT into account
...
Use a typeless format when VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT is
set, so we can cast to compatible types at least. Still doesn't
work when formats are of the same size but from incompatible
types (like R32_FLOAT and RGBA8_UNORM), which Vulkan considers
as compatible while D3D12 doesn't, but it gets us closer to what
the Vulkan API wants.
D3D12_FEATURE_DATA_D3D12_OPTIONS12::RelaxedFormatCastingSupported
should address the remaining limitations.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17368 >
2022-07-06 06:15:46 +00:00
Boris Brezillon
d132ec924d
dzn: Support native image copies when formats are compatible
...
CopyTextureRegion() works fine if the formats belong to the
same group (matching the same _TYPELESS type), so let's avoid
creating a temporary resource in that case.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17368 >
2022-07-06 06:15:46 +00:00