Boris Brezillon
81fb1cfdad
dzn: Prepare support for pipeline variants
...
Some D3D12 states can't be updated dynamically and require the creation
of a new pipeline state. In order to support setting those dynamically
we will have to support creating pipeline variants at draw time.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16971 >
2022-06-15 00:10:42 +00:00
Icecream95
ec70291da9
panfrost: Stop using sparse_array for batch BOs
...
Iterating over a util_sparse_array is very expensive; replace this
with a standard dynarray.
Using the sparse 'nodearray' datastructure instead was tested, but
found to be slower in some cases.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16988 >
2022-06-14 23:44:02 +00:00
Connor Abbott
169e03800d
tu: Implement VK_EXT_color_write_enable
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16936 >
2022-06-14 23:18:17 +00:00
Connor Abbott
94be0dd0b8
tu: Implement extendedDynamicState2LogicOp
...
Because this impacts most of the registers in the BLEND draw state, we
make the entire draw state dynamic so that it all gets re-emitted when
the logicOp changes. This also lays the groundwork for
VK_EXT_color_write_enable.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16936 >
2022-06-14 23:18:17 +00:00
Connor Abbott
c23eb99357
tu: Fix partial-write LRZ determination
...
There were a few problems with this:
- It wasn't considering logic op at all, which is another source of
reading from the destination.
- It was conditioned on the blend_enable_mask, so it was missing the
case where there's no blending but some of the outputs were masked
out.
- It wasn't considering attachments with less than 4 components (for
example, normals in a typical deferred rendering setup) and would
always consider them partially written unless the user added extra
unnecessary components.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16936 >
2022-06-14 23:18:17 +00:00
Boris Brezillon
b3b53952b0
dzn: Vulkan 1.1 wants maxPerSetDescriptors >= 1024
...
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/16926 >
2022-06-14 22:44:42 +00:00
Boris Brezillon
59a6ddd85c
dzn: Implement GetDescriptorSetLayoutSupport()
...
The 2048 descriptors limit comes from the maximum number of samplers
per heap, but the limit for other descriptors is actually much bigger.
Let's implement GetDescriptorSetLayoutSupport() to reflect that.
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/16926 >
2022-06-14 22:44:42 +00:00
Boris Brezillon
1554ece8bd
dzn: Add a dzn_desc_type_has_sampler() helper
...
Add a dzn_desc_type_has_sampler() helper instead of duplicating
the SAMPLER || COMBINED_IMAGE_SAMPLER test everywhere.
Suggested-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
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/16926 >
2022-06-14 22:44:42 +00:00
Boris Brezillon
fb52be9376
dzn: Lower alignment requirements when allocating buffers or single-sample images
...
VkMemoryDedicatedAllocateInfo, when present, provides us with extra
information about the memory usage, which allow us to lower the alignment
requirements.
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/16926 >
2022-06-14 22:44:42 +00:00
Boris Brezillon
96a7f81072
dzn: Check that no export is requested in the memory allocation path
...
We don't support exporting memory objects yet, so let's make sure the
user doesn't request that.
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/16926 >
2022-06-14 22:44:42 +00:00
Boris Brezillon
8c23d9db0b
dzn: Add dummy {Create,Destroy}SamplerYcbcrConversion() implementations
...
We don't support Ycbcr sampler conversion. Add dummy implementations to
make us Vulkan 1.1 compliant.
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/16926 >
2022-06-14 22:44:42 +00:00
Boris Brezillon
439b1fc8e8
dzn: Add a dummy GetImageSparseMemoryRequirements2()
...
We don't support sparse memory yet, but this function needs to be
present.
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/16926 >
2022-06-14 22:44:42 +00:00
Boris Brezillon
cd8e322816
dzn: Add a dummy GetDeviceGroupPeerMemoryFeatures()
...
We don't support device groups, but Vulkan 1.1 requires a
GetDeviceGroupPeerMemoryFeatures() implementation, so let's just
advertise no peer-memory features.
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/16926 >
2022-06-14 22:44:42 +00:00
Boris Brezillon
cc7158fe2f
dzn: Return empty external properties
...
We don't support importing/exporting images yet, so let's zero out the
whole external properties struct, if present.
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/16926 >
2022-06-14 22:44:42 +00:00
Boris Brezillon
fa79d036f1
dzn: Decorrelate external image info and external image properties
...
One can be present without the other.
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/16926 >
2022-06-14 22:44:42 +00:00
Boris Brezillon
cd4bc4893b
microsoft/compiler: Support load_sample_id_no_per_sample
...
It's like load_sample_id except it shouldn't force per-sample shading
when not already enabled. In that case, we simply return 0.
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/16926 >
2022-06-14 22:44:42 +00:00
Boris Brezillon
65309dab45
microsoft/compiler: s/assert()/unreachable()/ in emit_intrinsic()
...
Use an unreachable() statement instead of the incorrect assertion in the
unsupported intrinsic path.
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/16926 >
2022-06-14 22:44:42 +00:00
Boris Brezillon
82d3433d2a
microsoft/compiler: Set typed_uav_load_additional_formats when appropriate
...
This flag should be set to true when the RWTexture is attached a vector,
and we always declare a vec4 right now, so it should always be true.
Might be worth reworking the dxil_module_get_res_type() to use a scalar
when the image only has one component.
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/16926 >
2022-06-14 22:44:42 +00:00
Boris Brezillon
303175cfec
microsoft/compiler: Images are no longer reprensented by uniform vars
...
emit_barrier_impl() was still checking the nir_var_uniform flag to
detect images, which is no longer correct.
Fixes: cfdc7ee066 ("spirv: Use nir_var_mem_image")
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/16926 >
2022-06-14 22:44:42 +00:00
Boris Brezillon
cdbc8a8c85
spirv: Add a dst/src type to image deref loads/stores coming from OpAtomic{Load,Store}
...
nir_to_dxil() uses those types to pick the right operation overload,
and atomic loads/stores are no different from their non-atomic
counterpart apart from the atomicity property, so it makes sense to
pass a type to the deref_{load,store} intrinsic in that case too.
Suggested-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16926 >
2022-06-14 22:44:42 +00:00
Boris Brezillon
b78d3ebe72
vulkan/util: Fill VkPhysicalDeviceIDProperties::deviceNodeMask
...
This field copy was missing in
vk_get_physical_device_core_1_1_property_ext().
Fixes: 19ff5019b7 ("vulkan: Add helpers for filling exts for core features and properties.")
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
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/16926 >
2022-06-14 22:44:42 +00:00
Yonggang Luo
e3a7ccba57
ci/vs2019: Convert mesa_build.ps1 to using PowerShell 7 && operator
...
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/16934 >
2022-06-14 21:14:34 +00:00
Yonggang Luo
47bce47736
ci/vs2019: Remove comment for windows_test_vs2019 that not true
...
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/16934 >
2022-06-14 21:14:34 +00:00
Yonggang Luo
97e7f6d068
ci/vs2019: Split install of vs2019 and choco into separate Docker image
...
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/16934 >
2022-06-14 21:14:34 +00:00
Yonggang Luo
cfa67ec750
ci/vs2019: Split choco install output
...
Compiling code should be done in docker containers using --isolation=process for efficiency,
but installing dependencies will fail when run that way. Split the "install" dependencies from
the "build" dependencies, so the former can be run in a container using --isolation=hyperv,
and the latter can use --isolation=process.
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/16934 >
2022-06-14 21:14:34 +00:00
Yonggang Luo
322c807b3c
ci/vs2019: Install all build artifacts into C:\mesa-deps
...
By building everything under `deps` directory, remove the `deps` after
them installed.
We can use spirv-as from Vulkan-SDK, so that test won't depends on mesa-deps
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/16934 >
2022-06-14 21:14:34 +00:00
Yonggang Luo
9ceb170cb1
ci/vs2019: ignore _build and _install directory by write * into .gitignore
...
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/16934 >
2022-06-14 21:14:33 +00:00
Yonggang Luo
33e5b08a7d
ci/vs2019: Reduce the vs2019 build tools components to be installed
...
NOTE:
Microsoft.VisualStudio.Component.Windows10SDK.19041 are part of
Microsoft.VisualStudio.Workload.NativeDesktop, so it's actually using Windows10SDK.19041 before,
not Windows10SDK.18362
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/16934 >
2022-06-14 21:14:33 +00:00
Yonggang Luo
6d23d87325
ci/vs2019: Show the total vs2019 install time
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16934 >
2022-06-14 21:14:33 +00:00
Yonggang Luo
d960151dc2
ci/vs2019: Split call to C:\vs_buildtools.exe into multiple lines
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16934 >
2022-06-14 21:14:33 +00:00
Yonggang Luo
a740b8430a
ci/vs2019: Add a dedicated script for entering VS dev shell
...
Then we can remove cmd.exe invocations, and spread those configure commands
over multiple lines since they're not strings anymore.
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/16934 >
2022-06-14 21:14:33 +00:00
Yonggang Luo
24e177aff2
ci/vs2019: Use shared VULKAN_SDK_VERSION for install and build vulkan related packages
...
Get `Vulkan-SDK` `Vulkan-Runtime` `SPIRV-Tools` and `SPIRV-Headers` to be consistence version
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/16934 >
2022-06-14 21:14:33 +00:00
Yonggang Luo
918dbc1fa8
ci/vs2019: Disable progess bar for pip3 install
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16934 >
2022-06-14 21:14:33 +00:00
Yonggang Luo
e301f31116
ci/vs2019: Disable progress when install python
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16934 >
2022-06-14 21:14:33 +00:00
Yonggang Luo
86d6e532b3
ci/vs2019: Ignore error when removing directory recursively
...
While we're at it, do the same thing when creating the llvm-project directory
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/16934 >
2022-06-14 21:14:33 +00:00
Yonggang Luo
5baaa3b361
ci/vs2019: Ignore cert install output, it's too long
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16934 >
2022-06-14 21:14:33 +00:00
Yonggang Luo
5608834068
ci/vs2019: Do not install subprojects
...
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/16934 >
2022-06-14 21:14:33 +00:00
Yonggang Luo
d1e7e58807
ci/vs2019: Rename to vsInstallPath
...
installPath is too generic
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16934 >
2022-06-14 21:14:33 +00:00
Yonggang Luo
0511f0eb8a
ci/vs2019: Give each option its own line in mesa_build.ps1
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16934 >
2022-06-14 21:14:33 +00:00
Yonggang Luo
f2aba8564c
ci/vs2019: Update editorconfig for ps1 files
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16934 >
2022-06-14 21:14:33 +00:00
Yonggang Luo
66eec65c5b
ci/vs2019: switch to powershell 7
...
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/16934 >
2022-06-14 21:14:33 +00:00
Yonggang Luo
6445379f04
ci/vs2019: There is no meaning to set $env:ErrorActionPreference
...
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/16934 >
2022-06-14 21:14:33 +00:00
Mike Blumenkrantz
b240be28e3
zink: check for pending clears to determine write status of zs attachments
...
as @Venemo discovered, zs layouts were being incorrectly set to readonly
in the case where the attachment was only used for an explicit clear,
so ensure that gets taken into account
cc: mesa-stable
fixes (radv):
dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_clear
dEQP-GLES31.functional.stencil_texturing.render.depth32f_stencil8_clear
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17033 >
2022-06-14 20:58:55 +00:00
Jose Maria Casanova Crespo
901f5e6a31
v3dv/ci: increase fraction to 10 on v3dv ci jobs.
...
We reduce the v3dv ci jobs time execution from ~20min to
8-11 min.
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17026 >
2022-06-14 20:33:34 +00:00
Mike Blumenkrantz
8c0f3cdfac
zink: clamp dynamic renderArea to framebuffer size
...
it's illegal to have a renderArea larger than the attachments, so perform
clamping to avoid that scenario
Fixes: c81cd989c8 ("zink: use dynamic rendering (most of the time)")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16947 >
2022-06-14 20:12:46 +00:00
Mike Blumenkrantz
87c7e75721
zink: fix cubemap lowering bit size
...
this isn't always 32
Fixes: 2d745904ca ("zink: add a gently mangled version of the d3d12 cubemap -> array compiler pass")
fixes:
dEQP-GL45-ES31.functional.program_uniform.by_pointer.render.struct_in_array.sampler2D_samplerCube_*
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17008 >
2022-06-14 19:57:40 +00:00
Mike Blumenkrantz
de6af39534
zink: fix cubemap lowering for array samplers
...
each sampler is 1 driver location, so use the base variable
Fixes: 2d745904ca ("zink: add a gently mangled version of the d3d12 cubemap -> array compiler pass")
fixes:
dEQP-GL45-ES31.functional.shaders.opaque_type_indexing.sampler.const_expression.*.samplercubearray
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17008 >
2022-06-14 19:57:40 +00:00
Mike Blumenkrantz
876bfb6bc3
zink: skip some emulated cube code if the extension is present
...
cuts down on some cpu overhead
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16944 >
2022-06-14 19:35:42 +00:00
Mike Blumenkrantz
d8b4ceb27a
zink: rename nonseamless struct members to emulate_nonseamless
...
make it clearer that this is separate from the gallium state
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16944 >
2022-06-14 19:35:42 +00:00
Mike Blumenkrantz
08858070b1
zink: use VK_EXT_non_seamless_cube_map when available
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16944 >
2022-06-14 19:35:42 +00:00