Mike Blumenkrantz [Mon, 25 Oct 2021 16:22:11 +0000 (12:22 -0400)]
zink: add another compiler pass to convert 64bit vertex attribs
gallium always provides uint types, so rewrite the shader to load a 64bit
attrib and then cast back to whatever it was before
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13566>
Mike Blumenkrantz [Mon, 25 Oct 2021 15:29:06 +0000 (11:29 -0400)]
zink: simplify 64bit vertex attrib lowering
this was a cool myfirstcompilerpass.exe but there's easier ways to do
things like this
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13566>
Mike Blumenkrantz [Mon, 25 Oct 2021 15:06:19 +0000 (11:06 -0400)]
zink: declare int/float size caps inline with type usage
this is much more accurate than trying to use shader info
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13566>
Bas Nieuwenhuizen [Wed, 15 Sep 2021 19:20:47 +0000 (21:20 +0200)]
ci: Add RADV to Android CI.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13164>
Bas Nieuwenhuizen [Tue, 9 Nov 2021 10:57:28 +0000 (11:57 +0100)]
util: Add support for clang::fallthrough.
Looks like the __attribute__ version doesn't work for C++ in the
Android build. Only found now because we don't enable
-Wimplicit-fallthrough by default project wide for C++. Only
ACO enables it.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13164>
Bas Nieuwenhuizen [Tue, 9 Nov 2021 10:35:39 +0000 (11:35 +0100)]
amd/addrlib: Ignore self-assign warnings.
There was a preference to not fix addrlib to make syncing with
upstream easier.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13164>
Bas Nieuwenhuizen [Mon, 25 Oct 2021 22:27:53 +0000 (00:27 +0200)]
meson: Check arguments before adding.
-static-libstdc++ doesn't exist on the Android NDK, casuing all
later has_argument calls to return false even though the compiler
supports that argument.
Fixes:
3aee462781a "meson: add windows compiler checks and libraries"
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13164>
Bas Nieuwenhuizen [Mon, 25 Oct 2021 21:46:12 +0000 (23:46 +0200)]
aco: Remove useless sub-expr.
../src/amd/compiler/aco_instruction_selection.cpp:11915:83: error: expression result unused [-Werror,-Wunused-value]
bld.vop2(aco_opcode::v_lshrrev_b32, fetch_index_def, div_info, instance_id).instr;
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13164>
Bas Nieuwenhuizen [Sun, 3 Oct 2021 22:11:36 +0000 (00:11 +0200)]
radv: Always use linker script when possible.
Also without LLVM. Useful for Android with statically linked libelf.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13164>
Bas Nieuwenhuizen [Sun, 3 Oct 2021 19:43:09 +0000 (21:43 +0200)]
radv: Remove android build warning.
Shadowed variable.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13164>
Bas Nieuwenhuizen [Mon, 4 Oct 2021 22:08:56 +0000 (00:08 +0200)]
amd/addrlib: Use alternative ADDR_C_ASSERT definition.
Copied from mesa util/macros.h Avoids unused-local-typedef warnings.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13164>
Bas Nieuwenhuizen [Sun, 3 Oct 2021 15:34:29 +0000 (17:34 +0200)]
ci: Add libelf to the Android image.
Needed for RADV.
The mirror situation is kinda messy since the library is not
maintained and the original website is offline. Put a mirror
in that seemed to be used by some non-fdo CIs already, but
if reliability is still a concern we can discuss more mirrors.
There is an alternative implementation that is maintained in
elfutils, but that doesn't build on Android:
1) Doesn't build with clang (resolved in git, so next release probably)
2) Needs argp_parse with is a glibc specific feature.
There is a version of elfutils in AOSP but instead of fixing upstream
they just made an Android.bp that avoids building most stuff, which
isn't really usable here.
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13164>
Bas Nieuwenhuizen [Sun, 3 Oct 2021 13:04:11 +0000 (15:04 +0200)]
ci: Bump libdrm for the android image.
Seems I bumped the tag previously but not the script. Let us do
better this time.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13164>
Jesse Natalie [Thu, 4 Nov 2021 00:05:05 +0000 (17:05 -0700)]
d3d12: Don't wait for GPU reads to do CPU reads
Reviewed By: Bill Kristiansen <billkris@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13669>
Jesse Natalie [Wed, 3 Nov 2021 22:25:18 +0000 (15:25 -0700)]
d3d12: Don't wait for *all* batches when synchronizing a resource
Reviewed By: Bill Kristiansen <billkris@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13669>
Samuel Pitoiset [Tue, 9 Nov 2021 15:23:58 +0000 (16:23 +0100)]
zink: update the CI lists for RADV
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13726>
Hyunjun Ko [Mon, 27 Sep 2021 03:42:43 +0000 (03:42 +0000)]
vulkan/util: Move helper functions for depth/stencil images to vk_iamge
Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12785>
Hyunjun Ko [Fri, 17 Sep 2021 02:10:22 +0000 (02:10 +0000)]
radv: Fix to honor the spec to get stencil layout.
Fixes:
3ef89b245e3e ("radv: fix separate depth/stencil layout in render pass")
Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12785>
Hyunjun Ko [Fri, 17 Sep 2021 02:07:14 +0000 (02:07 +0000)]
anv: Fix to honor the spec to get stencil layout.
Fixes:
28207669d0 ("anv: Fix stencil layout in render passes")
Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12785>
Samuel Pitoiset [Mon, 8 Nov 2021 09:03:28 +0000 (10:03 +0100)]
radv/winsys: use same IBs padding as the kernel
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13703>
Samuel Pitoiset [Mon, 8 Nov 2021 13:28:33 +0000 (14:28 +0100)]
ac/rgp: add support for clock calibration
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13709>
Samuel Pitoiset [Fri, 5 Nov 2021 14:42:43 +0000 (15:42 +0100)]
ac/rgp: add support for queue event timings
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13709>
Samuel Pitoiset [Fri, 15 Oct 2021 10:18:43 +0000 (12:18 +0200)]
radv: only emit PGM_LO for the vertex prolog
Shaders are allocated in the 32-bit address space.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13551>
Samuel Pitoiset [Mon, 8 Nov 2021 14:01:10 +0000 (15:01 +0100)]
ac/rgp: fix alignment of code object records to follow the RGP spec
Should be aligned to 4 bytes.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13711>
Samuel Pitoiset [Mon, 8 Nov 2021 07:50:14 +0000 (08:50 +0100)]
radv: do not expose buffer features for depth/stencil formats
The Vulkan spec got clarified recently and it's invalid (hw can support
it though). Fixes new CTS dEQP-VK.api.buffer.invalid_buffer_features.*.
Cc: 21.3 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13701>
Samuel Pitoiset [Mon, 8 Nov 2021 15:38:03 +0000 (16:38 +0100)]
radv/sqtt: stop calling radv_cs_add_buffer() for the thread trace BO
It's resident, so global.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13717>
Samuel Pitoiset [Fri, 5 Nov 2021 19:35:57 +0000 (20:35 +0100)]
radv/sqtt: reserve a VMID for better profiling
To avoid capturing other processes work. PAL always requests a VMID
when capturing with SQTT too.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5051
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13695>
Dave Airlie [Thu, 4 Nov 2021 23:52:05 +0000 (09:52 +1000)]
meson: allow building with vulkan beta extensions enabled.
This is just a precursor to anyone enabling beta stuff later.
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13685>
Dave Airlie [Thu, 4 Nov 2021 23:51:39 +0000 (09:51 +1000)]
vulkan: add new image types undef beta define to switch statements.
This fixes some warnings when building with beta extensions enabled.
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13685>
Dave Airlie [Thu, 4 Nov 2021 23:42:03 +0000 (09:42 +1000)]
vulkan/include: import the video codec headers.
I'd like to allow mesa builds with beta headers enabled,
this requires importing these.
v2: add video headers to khronos update
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13685>
Jesse Natalie [Tue, 2 Nov 2021 17:10:01 +0000 (10:10 -0700)]
util/libsync: Fix timeout handling if poll() wakes up early
Check how long poll waited, and use a smaller timeout on the next
iteration through the loop.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12268>
Jesse Natalie [Tue, 2 Nov 2021 17:02:57 +0000 (10:02 -0700)]
d3d12: Handle non-infinite wait timeouts > 49.7 days as infinite
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12268>
Jesse Natalie [Sun, 8 Aug 2021 02:27:41 +0000 (19:27 -0700)]
d3d12: Fix Linux fence wait return value
zero is for success, nonzero is failure.
Fixes:
0b60d6a2 ("d3d12: Support Linux eventfds for fences")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12268>
Hyunjun Ko [Fri, 1 Oct 2021 02:00:11 +0000 (02:00 +0000)]
turnip: expose VK_KHR_driver_properties
Now that we have a conformance version to advertise, we can expose the
extension.
Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6251>
Emma Anholt [Tue, 2 Nov 2021 20:55:29 +0000 (13:55 -0700)]
turnip: Claim 1.2.7.1 CTS conformance.
I submitted a conformance package for A618 today, so let's stop doing all
this warning about non-conformance.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6251>
Jason Ekstrand [Thu, 4 Nov 2021 14:44:20 +0000 (09:44 -0500)]
anv: Add an anv_bo_is_pinned helper
If we ever want to stop depending on the EXEC_OBJECT_PINNED to detect
when something is pinned (like for VM_BIND), having a helper will reduce
the code churn. This also gives us the opportunity to make it compile
away to true/false when we can figure it out just based on compile-time
GFX_VERx10.
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13610>
Jason Ekstrand [Wed, 3 Nov 2021 12:32:37 +0000 (07:32 -0500)]
anv: Stop checking for HAS_EXEC_FENCE
Starting with
3b363d5b552d ("anv: Assume syncobj support"), we assume
syncobj support and no longer use the execbuf sync_file API directly so
there's no point in checking for it. For the one physical device check
this deletes, we can assume has_exec_fence is always true because every
kernel with syncobj support also has sync_file.
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13610>
Jason Ekstrand [Wed, 3 Nov 2021 12:23:22 +0000 (07:23 -0500)]
anv: Add a use_relocations physical device bit
This is more the bit of information we want to be carrying around
long-term.
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13610>
Jason Ekstrand [Tue, 2 Nov 2021 17:28:43 +0000 (12:28 -0500)]
anv: Add a anv_use_relocations helper and use it
Soft-pin is but one possible mechanism for pinning buffers. We're
working on another called VM_BIND. Most of the time, the real question
we're asking isn't "are we using soft-pin?" but rather "are we using
relocations?" because it's relocations, and not soft-pin, that cause us
all the extra pain we have to write code to handle. This commit flips
the majority of those checks around. The new helper is currently just
the exact inverse of the old use_softpin helper.
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13610>
Jason Ekstrand [Tue, 2 Nov 2021 17:28:43 +0000 (12:28 -0500)]
anv: Int64 atomics don't need to depend on softpin
Ever since
04ccfeae98f2 ("anv: Require softpin on Gen8+"), softpin has
been a hard requirement on BDW+ so there's no reason for SKL+ code to
have a relocation path.
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13610>
Jason Ekstrand [Tue, 2 Nov 2021 17:25:13 +0000 (12:25 -0500)]
anv: Always set bindless surface base on SKL+
Ever since
04ccfeae98f2 ("anv: Require softpin on Gen8+"), softpin has
been a hard requirement on BDW+ so there's no reason for SKL+ code to
have a relocation path.
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13610>
Jason Ekstrand [Sat, 30 Oct 2021 22:02:41 +0000 (17:02 -0500)]
anv: Add helpers in anv_allocator for mapping BOs
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13610>
Jason Ekstrand [Sat, 30 Oct 2021 21:57:02 +0000 (16:57 -0500)]
anv: Fix FlushMappedMemoryRanges for odd mmap offsets
When the client calls vkMapMemory(), we have to align the requested
offset down to the nearest page or else the map will fail. On platforms
where we have DRM_IOCTL_I915_GEM_MMAP_OFFSET, we always map the whole
buffer. In either case, the original map may start before the requested
offset and we need to take that into account when we clflush.
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13610>
Jason Ekstrand [Sat, 30 Oct 2021 21:32:47 +0000 (16:32 -0500)]
anv: Add a couple more checks in MapMemory
Reviwed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13610>
Jason Ekstrand [Sat, 30 Oct 2021 20:47:38 +0000 (15:47 -0500)]
anv: Add get/set_tiling helpers
These are only required WSI cases and Android but still better to have
them in a central place.
Reviwed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13610>
Jason Ekstrand [Sat, 30 Oct 2021 20:30:37 +0000 (15:30 -0500)]
anv: Rename anv_bo::index to exec_obj_index
This is more descriptive of its very specific purpose.
Reviwed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13610>
Jason Ekstrand [Sat, 30 Oct 2021 20:28:53 +0000 (15:28 -0500)]
anv/allocator: Use anv_device_release_bo in anv_block_pool_finish
This is left-over from the days where we didn't use BO pointers and had
them embedded and we didn't have a nice allocation API. Now that block
pools get their memory via anv_device_alloc_bo(), they really should be
using anv_device_release_bo() to tear it down. This is equivalent in
this case because anv_device_release_bo() does the following:
1. Decrements refcount. The pool holds the only reference so it will
proceed onto the clean-up steps
2. Unmaps it, if needed. This is the same as the tear-down code today
except anv_device_release_bo() will avoid doing an unmap if it's
been created via userptr. The current code probably unmaps the
userptr which is wrong but pretty harmless since it happens on a
tear-down path.
3. Unmaps the CCS range from the AUX-TT, if any. There is none, so
this is a no-op.
4. Frees the VA range if it's not pinned and doesn't have a fixed VA
assignment. These BOs always either have a fixed VA range (softpin)
or aren't pinned (relocations).
5. Closes the GEM handle. Same as the current code.
In short, anything created using the BO API should probably be destroyed
that way. We were getting away with hand-rolling it because this is a
simple case. Why did we do it this way? It dates back to before the
more formlized BO cache and BO API in ANV.
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13610>
Jason Ekstrand [Sat, 30 Oct 2021 19:04:30 +0000 (14:04 -0500)]
anv: Pull aperture size from devinfo
Reviwed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13610>
Jason Ekstrand [Thu, 30 Jan 2020 22:07:45 +0000 (16:07 -0600)]
anv/allocator: Add a couple of helpers
The anv_bo_finish helper is explicitly supposed to be capable of tearing
down partially completed BOs as long as the flag and metadata parameters
are set correctly.
Reviwed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13610>
Enrico Galli [Wed, 3 Nov 2021 18:36:01 +0000 (11:36 -0700)]
ci/windows: Add validation tests for spriv_to_dxil
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13655>
Enrico Galli [Wed, 3 Nov 2021 18:18:30 +0000 (11:18 -0700)]
microsoft/spirv_to_dxil: Add DXIL validation to spirv2dxil
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13655>
Jesse Natalie [Mon, 8 Nov 2021 20:41:39 +0000 (12:41 -0800)]
d3d12: Fully init primconvert config
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13670>
Jesse Natalie [Wed, 3 Nov 2021 20:12:42 +0000 (13:12 -0700)]
d3d12: Hook up threaded context
Reviewed By: Bill Kristiansen <billkris@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13670>
Jesse Natalie [Thu, 4 Nov 2021 17:15:56 +0000 (10:15 -0700)]
d3d12: Pass explicit context to pre/post draw surface blits
Reviewed By: Bill Kristiansen <billkris@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13670>
Jesse Natalie [Wed, 3 Nov 2021 17:32:04 +0000 (10:32 -0700)]
d3d12: Use thread safe slab allocators in transfer_map handling
Reviewed By: Bill Kristiansen <billkris@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13670>
Jesse Natalie [Wed, 3 Nov 2021 17:27:09 +0000 (10:27 -0700)]
d3d12: Inherit from threaded_transfer
Reviewed By: Bill Kristiansen <billkris@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13670>
Jesse Natalie [Wed, 3 Nov 2021 17:23:14 +0000 (10:23 -0700)]
d3d12: Resources inherit from threaded_resource
Reviewed By: Bill Kristiansen <billkris@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13670>
Jesse Natalie [Wed, 3 Nov 2021 17:20:44 +0000 (10:20 -0700)]
d3d12: Inherit from threaded_query
Reviewed By: Bill Kristiansen <billkris@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13670>
Jesse Natalie [Wed, 3 Nov 2021 17:22:56 +0000 (10:22 -0700)]
u_threaded_context: Support including from C++
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Marek Ol\9aák <marek.olsak@amd.com>
Reviewed By: Bill Kristiansen <billkris@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13670>
Connor Abbott [Mon, 11 Oct 2021 15:02:28 +0000 (17:02 +0200)]
ir3/spill: Initial implementation of rematerialization
This only handles moves from immedates/constants. The next step would be
to rematerialize ALU instructions whose sources are available.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13650>
Connor Abbott [Sun, 31 Oct 2021 15:01:02 +0000 (16:01 +0100)]
ir3/spill: Mark root as non-spillable after inserting
We have to mark the root as non-spillable in case the interval is the
child of some other interval, but we can't know whether it's the child
of some other interval until it's been inserted. Move the setting of
cant_spill below the insertion. This prevents us from using a bogus
parent value.
Fixes:
613eaac7b53 ("ir3: Initial support for spilling non-shared registers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13650>
Jordan Justen [Mon, 1 Nov 2021 06:22:42 +0000 (23:22 -0700)]
anv,blorp,iris: Set MOCS for COMPUTE_WALKER post-sync operation
We don't current enable post sync operations, but it is probably
better to set them to "internal" MOCS than to remove the non-zero
checking for this genxml field.
Reworks:
* Fix COMPUTE_WALKER in cmd_buffer_trace_rays (s-b Jason)
Fixes:
7b78b2fcac6 ("intel/genxml: Assert that all MOCS fields are non-zero on Gfx7+")
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13624>
Jordan Justen [Mon, 1 Nov 2021 07:24:51 +0000 (00:24 -0700)]
intel/genxml/125: Update COMPUTE_WALKER POSTSYNC_DATA struct
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13624>
Jason Ekstrand [Wed, 27 Oct 2021 06:40:36 +0000 (01:40 -0500)]
anv,iris: Advertise a max 3D workgroup size of 1024^3
On GFX version 12.5+ with COMPUTE_WALKER, this is the limit based on the
size of the HW packet. On older HW, we can technically go a bit bigger
but there's not much point. Technically, some hardware can support a
scalar workgroup size up to 2048 but most apps don't go any bigger than
1024.
As discussed on the merge request page, the current limit assumes
SIMD32, but it is unclear if we want to encourage applications to use
SIMD32 if it may lead to additional register spilling in shader
programs. Many applications have likely tuned for a limit of 1024
based on the OpenGL minimum limit, so it might not gain much by
advertising more than 1024.
Reworks:
* Jordan: Use MIN2 and limit total invocations as well.
* Jordan: Add second paragraph to commit message based on merge
request discussion.
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13538>
Mike Blumenkrantz [Fri, 5 Nov 2021 14:15:00 +0000 (10:15 -0400)]
zink: flatten out draw templates a bit
having this be super granular was a neat idea, but really I don't care
even a little bit about a driver that's weirdly implementing *only*
dynamic vertex input or *only* dynamic state2
this massively cuts down the combinatorics and provides a more accurate
gauge of driver feature levels, since this is the general level of support
that they're likely to have
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13715>
Marek Olšák [Sat, 30 Oct 2021 11:09:22 +0000 (07:09 -0400)]
radeonsi: enable nir_group_loads for better performance
The best case I have is one viewperf subtest getting +9% performance.
56979 shaders in 34726 tests
Totals:
SGPRS: 2667522 -> 2669178 (0.06 %)
VGPRS: 1543608 -> 1553472 (0.64 %)
Spilled SGPRs: 4090 -> 4100 (0.24 %)
Spilled VGPRs: 1600 -> 1791 (11.94 %)
Private memory VGPRs: 256 -> 256 (0.00 %)
Scratch size: 1872 -> 2076 (10.90 %) dwords per thread
Code Size:
59443980 ->
59479804 (0.06 %) bytes
Max Waves: 867280 -> 865634 (-0.19 %)
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
v2: No change in pixels but the hash changed.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13604>
Marek Olšák [Wed, 27 Oct 2021 00:00:58 +0000 (20:00 -0400)]
nir: add new SSA instruction scheduler grouping loads into indirection groups
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13604>
Mike Blumenkrantz [Mon, 8 Nov 2021 15:39:04 +0000 (10:39 -0500)]
zink: update radv ci passes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13716>
Gert Wollny [Wed, 3 Nov 2021 13:54:21 +0000 (14:54 +0100)]
virgl: obtain supported number of shader sampler views from host
Modern games may use more than 16 sampler views, so get what the host
actually supports, and default to 16 on old hosts that don't pass the
value.
Since the possible maximal value of PIPE_MAX_SHADER_SAMPLER_VIEWS doesn't
fit into an uint32_t remove the binding flags, they were only used for
releasing the sampler views, and this can be achieved differently.
v2: Fix compilation error
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: John Bates <jbates@chromium.org> (v1)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13646>
Caio Oliveira [Fri, 5 Nov 2021 00:41:33 +0000 (17:41 -0700)]
pan/bi: Drop unused test helpers
With the tests moved to use gtest, some helpers are not needed
anymore.
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13684>
Caio Oliveira [Thu, 4 Nov 2021 21:33:09 +0000 (14:33 -0700)]
pan/bi: Use gtest for test-constant-fold
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13684>
Caio Oliveira [Fri, 5 Nov 2021 00:41:18 +0000 (17:41 -0700)]
pan/bi: Use gtest for test-optimizer
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13684>
Caio Oliveira [Thu, 4 Nov 2021 21:32:38 +0000 (14:32 -0700)]
pan/bi: Use gtest for test-pack-formats
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13684>
Caio Oliveira [Thu, 4 Nov 2021 22:01:58 +0000 (15:01 -0700)]
pan/bi: Use gtest for test-packing
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13684>
Caio Oliveira [Thu, 4 Nov 2021 23:45:00 +0000 (16:45 -0700)]
pan/bi: Use gtest for test-scheduler-predicates
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13684>
Caio Oliveira [Thu, 4 Nov 2021 21:28:01 +0000 (14:28 -0700)]
pan/bi: Make some headers compilable with C++
This will allow have tests that use gtest (which is C++) for.
Note the reordering of designated initializers in structs is
because C++ requires them to follow the order that they were
defined in the struct.
The table `bifrost_reg_ctrl_lut` is not used by the tests at the
moment, so bailed out trying to replace the C syntax designated
initializer for arrays (that doesn't have an equivalent in C++), and
simply #ifdef it out when including from C++ code.
Also, use not_mod instead of not. not is a keyword in C++ and can't be
used. Luckily, the naming is not determined by the XML, so we can freely
rename.
[Alyssa: squash in not_mod]
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13684>
Eric Engestrom [Sat, 9 Oct 2021 11:07:44 +0000 (12:07 +0100)]
meson: automatically define `HAVE_{some}_PLATFORM`
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13278>
Eric Engestrom [Sat, 9 Oct 2021 11:05:00 +0000 (12:05 +0100)]
meson: always define `HAVE_{X11,XCB}_PLATFORM` when it's enabled
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13278>
Eric Engestrom [Sat, 9 Oct 2021 10:31:24 +0000 (11:31 +0100)]
meson: drop impossible `if no platform` branch
We've already ensured a few lines above that there is at least
`surfaceless` in the list.
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13278>
Eric Engestrom [Sat, 9 Oct 2021 10:29:45 +0000 (11:29 +0100)]
meson: move `egl_native_platform` definition inside the `with_egl` block
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13278>
Eric Engestrom [Sat, 9 Oct 2021 10:14:55 +0000 (11:14 +0100)]
meson: drop duplicate addition of surfaceless & drm to the list of platforms
This is already done on lines 475-480, resulting in them appearing twice
in the summary.
Fixes:
47946855f19cc7d082fd ("meson: allow egl_native_platform to be specified")
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13278>
Eric Engestrom [Mon, 8 Nov 2021 14:43:48 +0000 (14:43 +0000)]
release-calendar: fix date for next 21.3 rc
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13713>
Samuel Pitoiset [Mon, 8 Nov 2021 08:03:19 +0000 (09:03 +0100)]
radv: remove unused parameter in radv_emit_subpass_barrier()
It got introduced by "radv: optimize subpass barrier flushes for
imageless framebuffers" but never used in the final version.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13702>
Caio Oliveira [Thu, 4 Nov 2021 06:22:50 +0000 (23:22 -0700)]
util: Change blob_test to use macro from mesa-gtest-extras.h
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13672>
Caio Oliveira [Thu, 4 Nov 2021 06:22:39 +0000 (23:22 -0700)]
gtest: Add mesa-gtest-extras.h with array ASSERT/EXPECT macros
There are no similar macros in gtest. They do recommend pulling
another library (gmock) and use that, but having our own let us
control the output more precisely. Extracted the code from a similar
existing macro in blob_test.cpp, making changes to the output.
A check like
ASSERT_U8_ARRAY_EQUAL(expected_u8, result_u8, 32);
that fails will output
```
Expected 32 values to be equal but found 1 that differ:
expected_u8 values are:
[000] 29 44 00 00 44 60 cb 80 93 65 07 c0 08 00 40 29
[016] 03 81 00 00 5c a0 21 87 *b0 31 00 00 00 00 00 60
result_u8 values are:
[000] 29 44 00 00 44 60 cb 80 93 65 07 c0 08 00 40 29
[016] 03 81 00 00 5c a0 21 87 *af 31 00 00 00 00 00 60
```
and a check like
ASSERT_U64_ARRAY_EQUAL(expected_u64, result_u64, 4);
```
Expected 4 values to be equal but found 1 that differ:
expected_u64 values are:
[000]
80cb604400004429 29400008c0076593
[002]
8721a05c00008103 *
60000000000031b0
result_u64 values are:
[000]
80cb604400004429 29400008c0076593
[002]
8721a05c00008103 *
60000000000031af
```
Note the asterisk indicating wrong values.
The new header for extra macros is in src/gtest/include/ so it
doesn't get in the way when updating the real gtest headers that are
in src/gtest/include/gtest/.
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13672>
Pierre-Eric Pelloux-Prayer [Mon, 8 Nov 2021 09:58:14 +0000 (10:58 +0100)]
radeonsi/sqtt: reserve a vmid when sqtt is enabled
Based on https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13695
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13696>
Pierre-Eric Pelloux-Prayer [Mon, 8 Nov 2021 09:51:15 +0000 (10:51 +0100)]
radeonsi/sqtt: fix FINISH_DONE / BUSY usage
They're using more than a single bit so use the proper mask.
Based on https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13694
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13696>
Pierre-Eric Pelloux-Prayer [Fri, 5 Nov 2021 21:00:33 +0000 (22:00 +0100)]
radeonsi/sqtt: fix shader stage values
shader_stages_mask and others expect MESA_SHADER_* based values,
not PIPE_SHADER_*...
Without this the fragment shader wouldn't appear in the "Pipelines"
pane of RGP.
Fixes:
c276bde34ae ("radeonsi/sqtt: export shader code to RGP")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13696>
Lionel Landwerlin [Fri, 5 Nov 2021 11:06:37 +0000 (13:06 +0200)]
intel/dev: also test crocus & i915 pci-ids
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12981>
Lionel Landwerlin [Wed, 22 Sep 2021 12:06:58 +0000 (15:06 +0300)]
intel: move away from booleans to identify platforms
v2: Drop changes around GFX_VERx10 == 75 (Luis)
v3: Replace
(GFX_VERx10 < 75 && devinfo->platform != INTEL_PLATFORM_BYT)
by
(devinfo->platform == INTEL_PLATFORM_IVB)
Replace
(devinfo->ver >= 5 || devinfo->platform == INTEL_PLATFORM_G4X)
by
(devinfo->verx10 >= 45)
Replace
(devinfo->platform != INTEL_PLATFORM_G4X)
by
(devinfo->verx10 != 45)
v4: Fix crocus typo
v5: Rebase
v6: Add GFX3, ILK & I965 platforms (Jordan)
Move ifdef to code expressions (Jordan)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12981>
Lionel Landwerlin [Fri, 22 Oct 2021 07:52:50 +0000 (10:52 +0300)]
intel: remove 2 preproduction pci-id for ADLS
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes:
d399c3e861a7c4 ("intel/dev: Add device info for ADL-S")
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13476>
Filip Gawin [Wed, 15 Sep 2021 22:19:22 +0000 (00:19 +0200)]
nir: assert that variables in optimize_atomic are initialized
If you gonna view context of function parse_atomic_op,
then you gonna know that index for array (data_src)
can be unitialized. Imho this approach is cleaner
than doing stuff inside parse_atomic_op.
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12995>
Mike Blumenkrantz [Thu, 4 Nov 2021 14:33:58 +0000 (10:33 -0400)]
zink: set new point/line caps
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13676>
Marek Olšák [Thu, 4 Nov 2021 12:50:30 +0000 (08:50 -0400)]
st/mesa: use new point and line CAPs
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13676>
Marek Olšák [Thu, 4 Nov 2021 13:23:55 +0000 (09:23 -0400)]
radeonsi: set correct point and line limits
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13676>
Marek Olšák [Thu, 4 Nov 2021 12:47:21 +0000 (08:47 -0400)]
gallium: add missing point and line CAPs
The returned values are the same as the GL frontend.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13676>
Marek Olšák [Thu, 4 Nov 2021 12:26:31 +0000 (08:26 -0400)]
gallium: rename PIPE_CAPF_MAX_POINT_WIDTH -> MAX_POINT_SIZE
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13676>
Marek Olšák [Thu, 21 Oct 2021 19:47:18 +0000 (15:47 -0400)]
driconf: disallow 10-bit pbuffers for viewperf2020/maya due to X errors
Cc: 21.2 21.3 <mesa-stable@lists.freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13472>
Daniel Stone [Mon, 8 Nov 2021 13:08:48 +0000 (13:08 +0000)]
Revert "CI: Disable Windows jobs"
They're fixed now, just in time.
This reverts commit
7b44e7d7bb77051913ce24ea177d06820c40304c.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13708>
Daniel Stone [Mon, 8 Nov 2021 12:29:14 +0000 (12:29 +0000)]
CI: Disable Windows jobs
The runner is broken, perhaps after an upgrade.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13707>