Yonggang Luo
4ead2f6579
win32: Fixes 32 bits visual studio module definition files by add script gen_vs_module_defs.py
...
Getting opengl32*.def consistence with Windows SDK.
Getting osmesa.mingw.def's gl* functions consistence with Windows SDK.
stw_* functions are cdecl, not stdcall, so there is no need mangling the symbol.
Fixes egl.def for x86
d3d10sw: Move the place of d3d10_sw.def to d3d10_sw.def.in
Fixes vulkan_lvp.def for x86
Fixes #5552
Remove stdcall-fixup
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/14041 >
2022-04-19 19:38:47 +00:00
Boris Brezillon
9eace7f2e4
dzn: refactor error-handling
...
Here's a couple of cleanups to the error-handling code, now that we're
no longer using ComPtr<T>.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
cfdaf1af9b
dzn: remove needless defines
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
2ca4e21df7
dzn: merge util sources
...
There, no more C and C++ sources of the same base-name. We can do both
in one source.
This is our last C++ source file, so let's also clean away the C++20
mess in meson.build.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
0551f8ed62
dzn: port code to plain c
...
This does quite a lot in one go, simply because C and C++ are too
different to cleanly move from one language to another. But hopefully
this won't create too many rebase-issues.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
b369e10d08
dzn: do not set unused default member initializer
...
These objects aren't allocated using C++ constructors, so these default
member initializers does nothing.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
c5e979f632
dzn: c-style casts
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
3d608de882
dzn: use c-style initialization
...
Here's a few cases where we can use C-style initialization up-front,
which reduces the diffs later on.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
05af6f0434
dzn: use c-style for-statement
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
502c36c07d
dzn: use define instead of constexpr
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
5a9571ee2c
dzn: no more reinterpret_cast
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
79119ac478
dzn: drop using references
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
bd8e8537cc
dzn: drop auto usage
...
The auto keyword isn't available in C, so let's drop it and just use
explicit types instead.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
d61c2e965b
dzn: add a bunch of missing struct-keywords
...
If we're going to have any chance of porting this code to C, we're
going to have to be better at spelling out structs.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
4903a7c051
dzn: port to d3d12 c-api
...
Using the vulkan-helpers from C++ code has turned out to have a lot of
friction, because no other driver uses C++ for this.
So let's bite the bullet and call the D3D12 C-API instead. The C-API
wasn't really around when we started out, but it's there now.
This is still far from ideal; we should really create some wrapping
macros to generate the extremely verbose COM calls.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
4753222e62
dzn: pass IDXGIAdapter1 to d3d12_create_device
...
The D3D12 C API doesn't know about the relationship between
IDXGIAdapter1 and IUnknown. And there's no good reason to care about it
here either. So let's just pass the right type all the way.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
3ba021cdd0
dzn: use ID3D10Blob instead of ID3DBlob
...
In the C interface, there's no such alias.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
8c6f50efdb
dzn: always use ID3D12GraphicsCommandList1
...
In the C-interface, ID3D12GraphicsCommandList1 and
ID3D12GraphicsCommandList are unrelated types. So let's make sure we
consistenly use the most up-to-date version.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
411dfc574c
dzn: always use ID3D12Device1
...
In the C-interface, ID3D12Device1 and ID3D12Device are unrelated types.
So let's make sure we consistenly use the most up-to-date version.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
5f17d070a9
dzn: remove all usage of ComPtr<T>
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Erik Faye-Lund
74228c32ee
dzn: fixup indent
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15816 >
2022-04-19 15:39:48 +00:00
Boris Brezillon
9fd02d49b8
dzn: Pass the right type to CreateCommandList() in the reset path
...
The Command allocator and command list type must match, but we
are forcing it to D3D12_COMMAND_LIST_TYPE_DIRECT in the reset path.
Fixes: a012b21964 ("microsoft: Initial vulkan-on-12 driver")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16023 >
2022-04-19 12:07:38 +00:00
Boris Brezillon
3e97d37c63
dzn: Add support for sampleRateShading
...
Forward the sample-rate shading info to spirv_to_dxil() so we can
claim to support sampleRateShading.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15916 >
2022-04-19 08:49:50 +00:00
Boris Brezillon
80a5deee62
microsoft/spirv_to_dxil: Allow forcing per-sample shading
...
Needed to support VkPipelineMultisampleStateCreateInfo::sampleShadingEnable.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15916 >
2022-04-19 08:49:50 +00:00
Boris Brezillon
cacc3f03e6
microsoft/compiler: Add a dunmmy SV_SampleIndex when needed
...
When per-sample shading is forced and all input variables have a flat
interpolation, DXIL validation detects a mismatch between the
SampleFrequency property and the fact that no variables are per-sample
and SV_SampleIndex is never read. When that happens, add a dummy
SV_SampleIndex.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15916 >
2022-04-19 08:49:50 +00:00
Jason Ekstrand
319d87846c
nir,microsoft: Move scale_fdiv into a common NIR pass
...
While we're at it, convert to nir_shader_instructions_pass() to get rid
of some boilerplate and get metadata correct.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15983 >
2022-04-16 02:10:25 +00:00
Enrico Galli
0c4d1762de
microsoft/compiler: Fix when using a shadow sampler more than once
...
Reusing the shadow sampler's variable causes problems when the sampler
is used more than once. The remaining `deref_var`s will be using the
wrong type.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14988 >
2022-04-15 00:19:55 +00:00
Enrico Galli
0e91dd2f3e
microsoft/compiler: Add support for unnamed ubos
...
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/14988 >
2022-04-15 00:19:55 +00:00
Enrico Galli
6073c74bfd
microsoft/compiler: Fix for arrays of 1 element
...
The DXIL validator doesn't like dynamic indexing into resources if the
resource was not declared as an array type. This commit makes it so that
we always generate array resource types if the original type was
declared as an array instead, not just when the number of elements is
greater than 1.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14988 >
2022-04-15 00:19:55 +00:00
Enrico Galli
0badd0547d
microsoft/spirv_to_dxil: Add pass to lower dynamic accesses on ubo[1]
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14988 >
2022-04-15 00:19:55 +00:00
Boris Brezillon
31ea1fcd14
dzn: Make sure sampler heaps don't contain more than 2048 samplers
...
The spec says "The maximum number of samplers in a shader visible
descriptor heap is 2048.". Let's make sure we follow this rule
in dozen.
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15884 >
2022-04-14 13:14:57 +00:00
Boris Brezillon
3becb2729a
dzn: Skip binding entries with zero descriptors
...
D3D12 doesn't like empty descriptor ranges, so let's skip those
at set layout creation time.
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15884 >
2022-04-14 13:14:57 +00:00
Louis-Francis Ratté-Boulianne
3017522e74
dzn: Add CI target for vulkan driver
...
A custom branch of `deqp` is used to have proper results when
crashing. See:
https://github.com/KhronosGroup/VK-GL-CTS/issues/311
A custom branch of `deqp-runner` with Windows support is also
used until the changes are merged into the main repository.
The `api`, `info`, `draw`, `query-pool` and `memory` test cases are
executed for now.
Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com >
Acked-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15742 >
2022-04-13 18:05:44 +00:00
Louis-Francis Ratté-Boulianne
fb24f34fc3
dzn: Add a debug flag to enable D3D12 debug layer
...
Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15742 >
2022-04-13 18:05:44 +00:00
Boris Brezillon
bc58b34087
dzn: Fix loop condition in dzn_descriptor_set_copy()
...
We need to make sure we still have descriptors to copy in the
while() condition. While at it, drop the assert() checking that
the number of descriptors already copied is less than the
requested number.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15828 >
2022-04-11 07:04:24 +00:00
Boris Brezillon
53e83b7031
dzn: Support independent depth/stencil access
...
Needed for VK_KHR_maintenance2. While at it, fix various places where
we were only issuing resource state transition on the first sub-resource
instead of doing it per-layer/aspect.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15698 >
2022-04-08 11:54:44 +00:00
Boris Brezillon
69e8a6042f
dzn: Fix 2D <-> 3D blits
...
layer_count == 1 doesn't imply image_is_3d. So let's add explicit
is_3d checks where appropriate.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15698 >
2022-04-08 11:54:44 +00:00
Boris Brezillon
451a43ae1e
dzn: Lower partial copy of multisample resources to blits
...
Unfortunately that won't work on transfer queues, but we don't have a
better option right now.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15698 >
2022-04-08 11:54:44 +00:00
Boris Brezillon
8d30204ca4
dzn: Drop extra blank line in dzn_CmdCopyImage2()
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15698 >
2022-04-08 11:54:43 +00:00
Boris Brezillon
653c362ca6
dzn: Check image view usage instead of image usage when creating an image view
...
So we take VkImageViewUsageCreateInfo extension instead of ignoring it.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15698 >
2022-04-08 11:54:43 +00:00
Boris Brezillon
7ecc22ccaa
dzn: Force sampleCounts to 1 for bgra4 images
...
Those are not expected to be used as render-target, and Vulkan mandates
that such formats get their sampleCounts set to VK_SAMPLE_COUNT_1_BIT.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15698 >
2022-04-08 11:54:43 +00:00
Boris Brezillon
84ad923482
dzn: Get rid of dzn_GetPhysicalDeviceProperties()
...
Rely on the vk_common_ wrapper.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15698 >
2022-04-08 11:54:43 +00:00
Boris Brezillon
9a804b6390
dzn: Get rid of dzn_GetPhysicalDeviceFeatures()
...
And rely on the vk_common_ wrapper to get it implemented.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15698 >
2022-04-08 11:54:43 +00:00
Boris Brezillon
e9c69fe39a
dzn: 3D array images don't exist
...
Let's force maxArrayLayers to one in that case.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15698 >
2022-04-08 11:54:43 +00:00
Boris Brezillon
ad0ac592be
dzn: Set bufferFeatures to zero on depth/stencil formats
...
Those are not supposed to advertise buffer features.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15698 >
2022-04-08 11:54:43 +00:00
Boris Brezillon
8dfab9b382
dzn: Make sure the properties are all zero when the format is not supported
...
Move one of the is_supported() check before we start filling the
structure so we don't end up with a partially filled object when
we return VK_ERROR_FORMAT_NOT_SUPPORTED (which deqp doesn't seem to like,
so it's probably coming from a spec requirement).
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15698 >
2022-04-08 11:54:43 +00:00
Boris Brezillon
dc3dd9690b
dzn: Return a valid imageFormatProperties.maxMipLevels
...
maxMipLevels is encoding the maximum number of MIP levels, but
dzn_physical_device_get_max_mip_levels() return the maximum MIP level.
Let's rename the function and add one to the returned value to fix
the problem.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15698 >
2022-04-08 11:54:43 +00:00
Boris Brezillon
cfd3dfc074
dzn: Fix 3D <-> 2D image copies
...
We just need to treat layers as slices when manipulating 3D resources
whose slices are coming from/going to 2D array layers.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15698 >
2022-04-08 11:54:43 +00:00
Boris Brezillon
94923021d7
dzn: Support 2Darray views on 3D images for color attachments
...
Those are declared as 3D RTVs in D3D12, and layers are treated as
slices.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15698 >
2022-04-08 11:54:43 +00:00
Boris Brezillon
3684cae58c
dzn: Fix dzn_image_get_rtv_desc() for 3D views
...
VK_REMAINING_ARRAY_LAYERS maps to -1 in the D3D12 world. Let's make sure
we set WSize to -1 in that case, because the layer_count calculated by
dzn_get_layer_count() won't work for 3D images which never have more
than one layer (in case of 3D images, we treat slices as layers).
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15698 >
2022-04-08 11:54:43 +00:00