Rob Clark
dc43237d1a
freedreno/registers: Add c++ magic for register variants
...
For regs with multiple variants, generate a template'ized function to
pack the reg value. If the template param is known at compile time
(which is the expected usage) this will optimize to the same thing as
the "traditional" reg packing.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:24 +00:00
Rob Clark
d58af7b5c7
freedreno/registers: Split out regpair builder helper
...
We are going to want to re-use this in the next commit.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:24 +00:00
Rob Clark
d54edcfc72
freedreno/registers: Track varset
...
Track varset and assert that variants refer to a valid varset enum
value. This adds a bit of extra sanity checking, but becomes more
useful in the next commit.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:23 +00:00
Rob Clark
f011189642
freedreno/registers: Start adding stuff for a7xx
...
Start adding the bits needed for userspace.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:23 +00:00
Rob Clark
b90d4a0701
freedreno/decode: Start adding a7xx support
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:23 +00:00
Rob Clark
dd6e7041ab
freedreno/registers: Start adding a7xx pipe/control regs
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:23 +00:00
Rob Clark
56f9371f7e
freedreno/registers: Merge a6xx and a7xx regs
...
They have more similarities than differences, so merge them and use
"variant" attribute as needed to manage differences.
Note initially using "variant" conservatively when it comes to regs
known on a7xx but not a6xx. It could be that they exist also on later
versions of a6xx as well, for example. For ex, LPAC related regs/bits
likely existed on later a6xx (eg. a660 family) but BV stuff is not.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:23 +00:00
Rob Clark
684931166d
freedreno/registers: Add prefix="variant"
...
To merge a7xx and a6xx regs, using variant property to manage the
differences, we'll want regs/etc to be named according to the first
generation it is use rather than the domain name. Add a new prefix
type to accomplish this. By default, if no variant property, things
will still be named based on domain (ie. REG_A6XX_...), and things
that have variant="A6XX" will also end up as they currently are
(since the chip enum matches domain name), but things that have
variant="A7XX" will end up as REG_A7XX_...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:23 +00:00
Rob Clark
fadf76b938
freedreno/registers: Fix designator order
...
C++ is picky about order matching for some reason.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:23 +00:00
Rob Clark
4a528e8f5f
freedreno/a6xx: Convert to c++
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:23 +00:00
Rob Clark
ce336097f1
freedreno/a6xx: Fix designator initializer order
...
Clang seems more relaxed about this, allowing C99 style initializers
without requiring ordering. But unfortunately g++ is more picky :-/
TODO this doesn't completely fix everything with g++, namely sparse
array initialization.. for ir3 driver-params, I think we can convert
these to structs. But there are still one or two others to deal with.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:23 +00:00
Rob Clark
96ca37b9af
freedreno/a6xx: Add missing "inline"
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:22 +00:00
Rob Clark
af2f0c3d9b
freedreno/a6xx: Rework texture_clear fallback
...
C++ is more picky about a goto jumping over variable initialization,
even if unused after the goto label (presumably because of destructors
that can be called after a variable goes out of scope). Since there is
only a single fallback path, get rid of the goto.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:22 +00:00
Rob Clark
f921b7c09b
freedreno: c++-proofing
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:22 +00:00
Rob Clark
05958fa6c9
freedreno: Un-inline buffer-mask enum
...
Also, fix obsolete comment.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:22 +00:00
Rob Clark
37a036500a
freedreno/ir3: Add missing driver params
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:22 +00:00
Rob Clark
5eed59cc87
freedreno/ir3+tu: Calculate subgroup size in ir3
...
TBD if the size changes for a7xx, but at least let's have it in one
place instead of duplicating in turnip and gallium.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:22 +00:00
Rob Clark
c449e63809
freedreno/ir3: c++-proof the headers
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:22 +00:00
Rob Clark
bff0ff5ae3
freedreno/ir3: Don't use negative opc for meta instructions
...
Stricter compilers complain about this, ie:
error: left operand of shift expression ‘(-1 << 7)’ is negative [-fpermissive]
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:22 +00:00
Rob Clark
7c7761574e
freedreno/ir3: Un-inline enums
...
It seems to be a thing that c++ dislikes
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:22 +00:00
Rob Clark
69947b284e
freedreno: Quiet c++ warning about designated initializers
...
And various other things that c++ is more strict about. Perhaps we
re-instate a few of the more reasonable warnings over time.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:22 +00:00
Rob Clark
64e93ca9a1
freedreno/registers: Add regs for a690
...
New regs needed on kernel side.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:22 +00:00
Rob Clark
44d0365a4d
freedreno/registers: Schema validation for gen_header.py
...
Lets catch issues at build time, and not relying on someone remembering
to run the unit tests.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:22 +00:00
Rob Clark
963729af2a
freedreno: Nerf strict-aliasing warning for all of gcc
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21846 >
2023-03-13 17:31:21 +00:00
Samuel Pitoiset
4d03bf0f9d
radv: allow to cache optimized (LTO) pipelines with GPL
...
This should be working now, except PS epilogs that are still not
added to the cache.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21834 >
2023-03-13 13:35:24 +00:00
Samuel Pitoiset
532d63993f
radv: keep track of the retained NIR shaders sha1 for LTO pipelines
...
Otherwise the per pipeline cache key doesn't consider shaders at all
when they are imported from libs.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21834 >
2023-03-13 13:35:24 +00:00
Samuel Pitoiset
fbc7e8f3df
radv: determine if a graphics pipeline needs a noop FS earlier
...
Also introduce a helper.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21834 >
2023-03-13 13:35:24 +00:00
Samuel Pitoiset
86ab8c33ed
radv: fix the error code when the driver fails to create a PS epilog
...
It would have been returned VK_SUCCESS.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21834 >
2023-03-13 13:35:24 +00:00
Daniel Schürmann
481f78ab93
radv/rt: place any-hit scratch vars after intersection scratch vars
...
If both, any-hit and intersection shader, use scratch vars,
it could happen that they end up in the same location and
overwrite each other.
Found by inspection.
Fixes: c3d82a9622 ('radv: Add pass to lower anyhit shader into an intersection shader.')
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21863 >
2023-03-13 11:45:26 +00:00
Jordan Justen
48ff68820e
intel/dev: Enable MTL PCI ids
...
Ref: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/drm/i915_pciids.h?h=v6.0-rc4#n736
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18481 >
2023-03-13 10:17:51 +00:00
Mike Blumenkrantz
e28b982db8
radv: avoid a huge memset in radv_graphics_pipeline_compile()
...
this has a noticeable impact on pipeline creation
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20947 >
2023-03-13 08:11:10 +01:00
Samuel Pitoiset
1c286db14e
radv: zero-initialize radv_shader_info earlier for graphics pipeline
...
This should allow us to remove a big memset when compiling a
graphics pipeline. This is mostly for imported NIR stages which
don't go through radv_pipeline_stage_init().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20947 >
2023-03-13 08:11:10 +01:00
Samuel Pitoiset
67635bb3e3
radv: zero-initialize radv_shader_args right before declaring them
...
This should allow us to remove a big memset when compiling a
graphics pipeline. This is mostly for imported NIR stages which
don't go through radv_pipeline_stage_init().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20947 >
2023-03-13 08:11:10 +01:00
Mike Blumenkrantz
c505f892d4
radv: delete radv_graphics_pipeline_compile() asserts
...
validation should catch these by now
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20947 >
2023-03-13 08:11:10 +01:00
Vinson Lee
29c6a09887
pps: Fix build errors.
...
In file included from ../src/tool/pps/pps_device.cc:10:
../src/tool/pps/pps_device.h:23:11: error: ‘uint32_t’ does not name a type
23 | static uint32_t device_count();
| ^~~~~~~~
In file included from ../src/tool/pps/pps_counter.cc:10:
../src/tool/pps/pps_counter.h:22:4: error: ‘uint32_t’ does not name a type
22 | uint32_t id;
| ^~~~~~~~
Fixes: 1cc72b2aef ("pps: Gfx-pps v0.3.0")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8186
Signed-off-by: Vinson Lee <vlee@freedesktop.org >
Reviewed-by: Rob Clark <robclark@freedesktop.org >
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21714 >
2023-03-13 01:22:46 +00:00
Marek Olšák
c455ea6144
glthread: qualify the *cmd unmarshal parameter with restrict
...
This seems like a logical thing to do. Clearly the memory can't be
accessed with any other pointer.
Acked-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21777 >
2023-03-12 17:56:18 -04:00
Marek Olšák
862b00b795
mesa: put dispatch table initialization into one place
...
We have 3 new/changed functions with this commit:
1. _mesa_alloc_dispatch_tables creates all dispatch tables that are not
created on demand and sets them to nop. This operates on gl_dispatch,
so it's reusable (e.g. glthread will want to use it)
2. _mesa_free_dispatch_tables frees everything
3. _mesa_initialize_dispatch_tables initializes gl_dispatch for GL
(not glthread)
Acked-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21777 >
2023-03-12 17:56:16 -04:00
Marek Olšák
dae902e11e
mesa: rename CurrentClientDispatch to GLApi
...
I like this more. The name self-documents itself. It's always equal
to the dispatch set in glapi.
GLAPI is a definition, so can't use that.
Acked-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21777 >
2023-03-12 17:56:15 -04:00
Marek Olšák
6b22642e21
mesa: move ctx->Table -> ctx->Dispatch.Table except Client & MarshalExec
...
There is a new struct gl_dispatch, which I'd like to reuse in glthread.
This allows building code around gl_dispatch that can be shared between
mesa and glthread. This is only refactoring.
Acked-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21777 >
2023-03-12 17:56:11 -04:00
Marek Olšák
ef0e327d9f
glapi: inline the meson list files_mapi_util
...
so that people can easily tell where these files are used by searching
for the file names in the meson files.
Acked-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21777 >
2023-03-12 17:56:10 -04:00
Marek Olšák
eed145004b
glapi: move files specific to shared-glapi into the shared-glapi subdirectory
...
Acked-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21777 >
2023-03-12 17:56:03 -04:00
David Heidelberg
7cf7d497e7
ci/clover: disable the jobs
...
Prepare for Clover removal; don't waste resources on Clover anymore.
Acked-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21865 >
2023-03-12 20:50:14 +01:00
Daniel Schürmann
3d4f6a00b8
aco/spill: allow for disconnected CFG
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20853 >
2023-03-12 18:07:18 +00:00
Daniel Schürmann
caec48529b
aco/insert_exec_mask: allow for disconnected CFG
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20853 >
2023-03-12 18:07:18 +00:00
Daniel Schürmann
7f7a70778f
aco/dead_code_analysis: don't add artificial uses to p_startpgm
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20853 >
2023-03-12 18:07:18 +00:00
Daniel Schürmann
fb99bc5f30
aco/value_numbering: clear hashmap between disconnected CFGs
...
There is no dominance-relationship between two disconnected CFGs,
thus no CSE is possible.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20853 >
2023-03-12 18:07:18 +00:00
Daniel Schürmann
678aef9f06
aco/dominance: set immediate dominator for any BB without predecessors
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20853 >
2023-03-12 18:07:18 +00:00
Daniel Stone
8731721489
CI: Disable mingw job
...
mingw just hangs somewhere in Meson, with a totally unclear cause, when
trying to run winepath:
Program winepath found: YES (/usr/bin/winepath)
Running command: /usr/bin/winepath -w /builds/mesa/mesa/_build/src/util/process_test.exe
[... hangs forever ...]
root 27 0.0 0.0 4044 3232 ? S 17:10 0:00 bash .gitlab-ci/meson/build.sh
root 35 0.0 0.0 2811920 55800 ? Sl 17:10 0:00 Xvfb :0 -screen 0 1024x768x16
root 40 0.1 0.0 45484 40740 ? S 17:10 0:00 /usr/bin/python3 /usr/local/bin/meson setup _build --native-file=native.file --wrap-mode=nofallback --force-fallback-for perfetto -D prefix=/builds/mesa/mesa/install -D libdir=lib -D buildtype=debug -D build-tests=true -D c_args=-Wno-error=format -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=sign-compare -Wno-error=narrowing -D cpp_args=-Wno-error=format -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=sign-compare -Wno-error=narrowing -D enable-glcpp-tests=false -D libunwind=disabled -D gallium-opencl=icd -D gallium-rusticl=false -D opencl-spirv=true -D microsoft-clc=enabled -D static-libclc=all -D llvm=enabled -D gallium-va=enabled -D video-codecs=h264dec,h264enc,h265dec,h265enc,vc1dec -D gallium-drivers=swrast,d3d12,zink -D vulkan-drivers=swrast,amd,microsoft-experimental -D video-codecs=h264dec,h264enc,h265dec,h265enc,vc1dec -D werror=true -D min-windows-version=7 -D spirv-to-dxil=true -D gles1=enabled -D gles2=enabled -D osmesa=true -D cpp_rtti=true -D shared-glapi=enabled -D zlib=enabled --cross-file=.gitlab-ci/x86_64-w64-mingw32
root 1366 0.0 0.0 0 0 ? Z 17:10 0:00 [winepath.exe] <defunct>
root 1375 0.0 0.0 8544 7188 ? Ss 17:10 0:00 /usr/lib/wine/wineserver64 -p0
root 1381 0.0 0.0 2018764 11080 ? Ssl 17:10 0:00 C:\windows\system32\services.exe
root 1384 0.0 0.0 1821312 10044 ? Sl 17:10 0:00 C:\windows\system32\plugplay.exe
root 1386 0.0 0.0 1856096 23016 ? Sl 17:10 0:00 C:\windows\system32\explorer.exe /desktop
root 1393 0.0 0.0 1822712 11000 ? Sl 17:10 0:00 C:\windows\system32\winedevice.exe
root 1402 0.0 0.0 1778832 21456 ? S 17:10 0:00 winedbg --auto 26 80
root 1405 0.0 0.0 1891516 12192 ? Sl 17:11 0:00 C:\windows\system32\winedevice.exe
Disable it until we can figure it out.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21864 >
2023-03-12 17:25:12 +00:00
Daniel Stone
023d7e860e
CI: Disable Windows runners
...
They are currently being rebuilt, with no firm ETA for their return.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21864 >
2023-03-12 17:01:56 +00:00
Daniel Stone
5b697d1921
Revert "ci: Disable Collabora LAVA farm"
...
This reverts commit c1aa876747 .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21864 >
2023-03-12 17:01:44 +00:00