The program info contains all sorts of flags concerning the compilation state of
the program, and those need to be reset when the program is going to be recompiled
when its source changes.
For example, before this change, after info.flrp_lowered got set following the
first call to glProgramStringARB, flrp lowering would not happen for any subsequent
updates to the program string, leading to compilation failures.
Signed-off-by: Charlotte Pabst <cpabst@codeweavers.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35523>
This looks like a hw bug on GFX10.3-GFX11.5 because RB+ seems to only
work as expected when all channels (RGBA) are written. With that format,
RGB channels must be all set or unset but setting the A channel is
legal so far.
This will reduce rendering performance with that format but it's the
less intrusive solution for now. This might be revisited in the near
future, also with more VKCTS coverage.
This has been tested and verified on GFX10.3 (NAVI21) and GFX11
(NAVI31) and GFX12 (NAVI48), unfortunately I don't have GFX11.5 but
let's assume it's broken there too.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13371
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35631>
A cooperative matrix can only be constructed from a single
scalar value. Print that value, wrapped by a function call that
looks like a type-constructor.
This adds a test case that will otherwise assert out in spirv2nir.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35757>
This changed in 76c6157902f1 ("nil/copy: Base swizzling on the per-plane
pipe_format") but I missed the case for linear render targets.
Fixes: 76c6157902f1 ("nil/copy: Base swizzling on the per-plane pipe_format")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35887>
This was only used to answer the DRI components attrib request, which
was made unused as of the previous commit to move knowledge of the enum
to wayland-drm server-side code.
In theory, this makes the format mapping a little less flexible, however
in practice wayland-drm was neither extensible nor extended, and has
been deprecated in favour of explicit user awareness of format
properties.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35856>
wayland-drm is the bit of EGL which implements
EGL_WL_bind_wayland_display, used as a legacy path by pre-dmabuf Wayland
compositors to handle buffer exchange with clients. This allows the
client (platform_wayland) and server (wayland-drm) sides to negotiate
buffer exchange behind the scenes.
In this model, the server is unaware of what the format means and how it
should be bound to an image, so we have to query how the image should be
set up, bound to textures, and sampled. To do this, they have to query
the EGL implementation to find out.
We had a bunch of generic DRI infrastructure to support this, but now
that the DRI interface is no longer a hard one, and wl_drm is deprecated
in favour of dmabuf anyway, we can get rid of a lot of this
pseudo-generic support code.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35856>
Versions prior to the r1p0 revision of Mali-T760 has a bug that prevents
16x MSAA from working properly. Let's detect this GPU, and disable the
functionality for it.
It's a bit awkward that we can't easily do this as part of the pan_model
infrastructure, but we'd otherwise have to introduce a new quirk that
depends on the GPU revision, which isn't something the current pan_model
infrastructure is prepared for. So let's just do it in get_max_msaa()
instead.
And while we're at it, let's also make the max_4x_msaa quirk do the
MIN2() properly. This can currently only happen on V4 GPUs when the
pan_allow_128bit_rts_v4 driconf is enabled, but it should be fixed in
either case.
Fixes: 423f3fd485 ("panfrost: enable 8x and 16x msaa modes when supported")
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35871>
This allows us to get better error messages in cases where LLVM has been
explicitly disabled but not found, as well making use of the feature
object for the required argument to dependency. This in turn can give
better error messages when the object is used incorrectly.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35840>
An unintended consequence of !35203 is that when container jobs are not
there, nothing depends on the `sanity` job anymore.
Fix this by making all the jobs using a container image we generate also
depend on `sanity` through the `.use-$distro/$variant` templates.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35857>
Extend the deqp-runner suite to run a fractional set of VKCTS tests
on Cuttlefish with Venus on ANV. This involved:
- Introducing a skip list for tests incompatible with this setup
- Increasing the parallelism of the pre-merge job on CML
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35786>