Icecream95 [Thu, 16 Jul 2020 02:16:11 +0000 (14:16 +1200)]
pan/mdg: Do per-sample framebuffer loads
EXT_shader_framebuffer_fetch requires the fetched value to be per-sample, so we
need to load the sample id when in a fragment shader.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5930>
Icecream95 [Thu, 16 Jul 2020 02:12:18 +0000 (14:12 +1200)]
panfrost: Rename lower_store to is_blend in pan_lower_framebuffer
The bool will be used for deciding whether to do a per-sample load.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5930>
Icecream95 [Fri, 17 Jul 2020 10:34:04 +0000 (22:34 +1200)]
pan/mdg: Don't disassemble blit shaders
There are a lot of them and they are mostly uninteresting, so don't
disassemble them or print shader-db results.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5948>
Michel Dänzer [Wed, 15 Jul 2020 08:59:54 +0000 (10:59 +0200)]
gitlab-ci: Only trigger test-docs job automatically for MRs
Follow-up to
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5898 .
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5918>
Elie Tournier [Thu, 16 Jul 2020 12:41:15 +0000 (13:41 +0100)]
virgl: set PIPE_CAP_BLEND_EQUATION_ADVANCED
Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>
Elie Tournier [Wed, 8 Jul 2020 11:02:31 +0000 (12:02 +0100)]
virgl: Encode barrier for blend_equation_advanced
Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>
Elie Tournier [Wed, 24 Jun 2020 20:43:40 +0000 (21:43 +0100)]
virgl: Use alpha_src_factor to store blend_equation_advenced value
Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>
Elie Tournier [Tue, 2 Jun 2020 13:03:14 +0000 (14:03 +0100)]
glsl_to_ir: do lower_blend_equation if PIPE_CAP_FBFETCH
Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>
Elie Tournier [Wed, 3 Jun 2020 09:32:47 +0000 (10:32 +0100)]
st: expose KHR_blend_equation_advanced if PIPE_CAP_BLEND_EQUATION_ADVANCED
With virgl, we want to expose KHR_blend_equation_advanced even if EXT_shader_framebuffer_fetch
is not available.
Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>
Elie Tournier [Tue, 2 Jun 2020 10:24:34 +0000 (11:24 +0100)]
gallium: Add PIPE_CAP_BLEND_EQUATION_ADVANCED
Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>
Elie Tournier [Mon, 13 Jul 2020 08:23:33 +0000 (09:23 +0100)]
virgl: Reserved last caps of capability_bits
This cap is used by virglrenderer but not by Mesa.
Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>
Elie Tournier [Wed, 10 Jun 2020 10:29:24 +0000 (11:29 +0100)]
glsl_to_tgsi: Set TGSI_PROPERTY_FS_BLEND_EQUATION_ADVANCED
In virgl, when fbfetch extention is not available but blend_equation_advanced is,
we didn't call lower_blend_equation_advanced. So we need to pass the blend value
to the host in order to recreate the shader correctly.
Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>
Elie Tournier [Tue, 9 Jun 2020 10:41:41 +0000 (11:41 +0100)]
gallium: add TGSI_PROPERTY_FS_BLEND_EQUATION_ADVANCED
For virgl, we don't lower advanced equation to fbfetch
So we need to pass the blend equation info in the TGSI to the host
Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>
Erik Faye-Lund [Wed, 24 Jun 2020 13:47:01 +0000 (15:47 +0200)]
mesa: treat Color._AdvancedBlendMode as enum
Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>
Erik Faye-Lund [Wed, 24 Jun 2020 13:40:34 +0000 (15:40 +0200)]
mesa: do not use bitfields for advanced-blend state
Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5516>
Karol Herbst [Thu, 16 Jul 2020 18:22:58 +0000 (20:22 +0200)]
st/mesa: fix st_CopyPixels without support for stencil exports
Fixes: f611af35948e ("st/mesa: use fragment shader to copy stencil buffer")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5940>
Rhys Kidd [Wed, 15 Jul 2020 15:30:44 +0000 (01:30 +1000)]
nvc0_2d: Document SET_PIXELS_FROM_MEMORY_CORRAL_SIZE from rnndb
Present in both cl502d and cl902d.
Based on envytools commit
889f8fb4445863c19336c31dd13ecbdd3b19a196
Signed-off-by: Rhys Kidd <rhyskidd@gmail.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5922>
Rhys Kidd [Wed, 15 Jul 2020 15:10:12 +0000 (01:10 +1000)]
nv50_2d,nvc0_2d: Document SET_PIXELS_FROM_MEMORY_SAFE_OVERLAP from rnndb
Present in both cl502d and cl902d.
Based on envytools commit
0b9d3e717828a06be6937395464c34dfc870a6dc
Signed-off-by: Rhys Kidd <rhyskidd@gmail.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5922>
Alyssa Rosenzweig [Thu, 16 Jul 2020 23:19:08 +0000 (19:19 -0400)]
docs/features: Mark trivial missed feature
It's right there in GLES.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5943>
Eric Engestrom [Mon, 13 Jul 2020 09:08:53 +0000 (11:08 +0200)]
egl: mark the rest of the callbacks as mandatory or optional
Suggested-by: Frank Binns <frank.binns@imgtec.com>
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>
Eric Engestrom [Fri, 10 Jul 2020 22:44:22 +0000 (00:44 +0200)]
egl: drop now empty egl_dri2_fallbacks.h
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>
Eric Engestrom [Fri, 10 Jul 2020 22:42:08 +0000 (00:42 +0200)]
egl: inline fallback for get_sync_values
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>
Eric Engestrom [Fri, 10 Jul 2020 22:41:35 +0000 (00:41 +0200)]
egl: inline fallback for create_wayland_buffer_from_image
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>
Eric Engestrom [Fri, 10 Jul 2020 22:40:57 +0000 (00:40 +0200)]
egl: inline fallback for query_buffer_age
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>
Eric Engestrom [Fri, 10 Jul 2020 22:40:20 +0000 (00:40 +0200)]
egl: inline fallback for copy_buffers
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>
Eric Engestrom [Fri, 10 Jul 2020 22:39:41 +0000 (00:39 +0200)]
egl: inline fallback for post_sub_buffer
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>
Eric Engestrom [Fri, 10 Jul 2020 22:38:38 +0000 (00:38 +0200)]
egl: inline fallback for swap_buffers_region
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>
Eric Engestrom [Fri, 10 Jul 2020 22:36:08 +0000 (00:36 +0200)]
egl: inline fallback for swap_buffers_with_damage
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>
Eric Engestrom [Fri, 10 Jul 2020 22:33:53 +0000 (00:33 +0200)]
egl: drop unused fallback function
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>
Eric Engestrom [Fri, 10 Jul 2020 22:31:32 +0000 (00:31 +0200)]
egl: inline fallback for create_pbuffer_surface
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>
Eric Engestrom [Fri, 10 Jul 2020 22:29:17 +0000 (00:29 +0200)]
egl: inline fallback for create_pixmap_surface
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5861>
Rob Clark [Wed, 15 Jul 2020 00:32:11 +0000 (17:32 -0700)]
driconf: allowlist/denylist
I think this is the one user facing use of blacklist/whitelist. But we
like all of our users, so lets be more inclusive.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5938>
Icecream95 [Thu, 16 Jul 2020 04:12:13 +0000 (16:12 +1200)]
pan/decode: Open the dump file later
Opening the dump file in pandecode_jc instead of doing it in
pandecode_next_frame avoids creating zero sized files when
applications exit.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5931>
Tomeu Vizoso [Thu, 16 Jul 2020 08:24:35 +0000 (10:24 +0200)]
gitlab-ci: Run all of GLES3 tests for Panfrost
We have enough capacity now and Panfrost should be very near to GLES3
compliance.
v2: Update fails list (Alyssa)
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5932>
Samuel Pitoiset [Tue, 14 Jul 2020 19:46:17 +0000 (21:46 +0200)]
radv: split fence into two parts as enum+union.
To be consistent with semaphores and for clean up.
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/5921>
Samuel Pitoiset [Tue, 14 Jul 2020 19:23:17 +0000 (21:23 +0200)]
radv: optimize creating signaled syncobj with amdgpu_cs_create_syncobj2()
This creates a syncobj and sets it as signaled with one ioctl
instead of two.
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/5921>
Samuel Pitoiset [Tue, 14 Jul 2020 21:15:55 +0000 (23:15 +0200)]
radv: fix the error code when allocating a fresh imported syncobj fails
It can only be an OOM error.
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/5921>
Samuel Pitoiset [Tue, 14 Jul 2020 20:59:58 +0000 (22:59 +0200)]
radv: fix the error code when exporting a semaphore/fence fails
VK_ERROR_INVALID_EXTERNAL_HANDLE is not a valid Vulkan error code
for these functions and it's likely that too many objects are
created instead.
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/5921>
Samuel Pitoiset [Tue, 14 Jul 2020 20:55:04 +0000 (22:55 +0200)]
radv: fix destroying the syncobj when exporting a fence FD
It's invalid and the temporary syncobj was never actually destroyed.
Cc: 20.1 <mesa-stable@lists.freedesktop.org>
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/5921>
Connor Abbott [Thu, 16 Jul 2020 13:49:36 +0000 (15:49 +0200)]
tu: Enable VK_EXT_shader_stencil_export
This passes the grand total of 3 CTS tests (2 actually enabled due to
missing D32_SFLOAT_S8_UINT support) under
dEQP-VK.pipeline.shader_stencil_export.*
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5936>
Connor Abbott [Thu, 16 Jul 2020 13:47:27 +0000 (15:47 +0200)]
ir3: Handle gl_FragStencilRefARB
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5936>
Connor Abbott [Thu, 16 Jul 2020 13:48:41 +0000 (15:48 +0200)]
freedreno/a6xx: Add stencilref register info
Found by guessing.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5936>
Alyssa Rosenzweig [Thu, 16 Jul 2020 18:07:09 +0000 (14:07 -0400)]
panfrost: Revert "Disable frame throttling"
This reverts commit
4fee7b30c0ecc56d7659ecad1d8b140ab253f0db, which was
intended to be a temporary workaround for a leak introduced in
a65e29ccb26 ("gallium: simplify throttle implementation"). However, that
leak was then fixed in
023282a4f667695ea1dbbe9fbe1cd3a9d550a426 and we
forgot to revert this hack.
Closes: #2108
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>
Alyssa Rosenzweig [Wed, 15 Jul 2020 23:22:53 +0000 (19:22 -0400)]
panfrost: Enable Chromium
With the latest batch of fixes, Chromium works (including WebGL support,
although performance is still WIP).
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>
Alyssa Rosenzweig [Wed, 15 Jul 2020 22:38:02 +0000 (18:38 -0400)]
panfrost: Report CAPs more honestly
We're overreporting on some chips and underreporting on others. Let's be
more honest.
This exposes OpenGL ES 3.0 on Mali T760 through T860.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>
Alyssa Rosenzweig [Thu, 16 Jul 2020 17:33:32 +0000 (13:33 -0400)]
panfrost: Fix faults with RASTERIZER_DISCARD
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>
Alyssa Rosenzweig [Tue, 14 Jul 2020 22:55:07 +0000 (18:55 -0400)]
panfrost: Honour cso->compare_mode
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>
Alyssa Rosenzweig [Tue, 14 Jul 2020 21:08:54 +0000 (17:08 -0400)]
panfrost: Avoid integer underflow in rt_count_1
If rt_count = 0, this underflows to MAX_MRT. The hw doesn't seem to care
but it's semantically incorrect and confuses pandecode.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>
Alyssa Rosenzweig [Thu, 9 Jul 2020 20:22:38 +0000 (16:22 -0400)]
panfrost: Abort on unsupported blit
Instead of silently failing.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>
Alyssa Rosenzweig [Thu, 9 Jul 2020 20:34:00 +0000 (16:34 -0400)]
panfrost: Implement Z32F_S8 blits
Requires the ability to texture the stencil-only portion, and then
u_blitter kicks in for the rest.
v2: Fix dEQP-GLES31.functional.stencil_texturing.*
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>
Alyssa Rosenzweig [Thu, 9 Jul 2020 19:21:32 +0000 (15:21 -0400)]
panfrost: Fix sRGB clear colour packing
It should be sRGB transformed first, which the generic path handles but
the RGBA8 special path does not.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>
Alyssa Rosenzweig [Thu, 9 Jul 2020 18:39:51 +0000 (14:39 -0400)]
panfrost: Set PIPE_CAP_MIXED_COLORBUFFER_FORMATS
Missed that this is needed, fixes fbo.completeness.*
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>
Alyssa Rosenzweig [Thu, 9 Jul 2020 21:35:24 +0000 (17:35 -0400)]
panfrost: Overhaul tilebuffer allocations
Based on the colour buffers in use, we need to select a tile size
allowing either 128-bits of storage per pixel or 512-bits. Based on the
size chosen, we scale the offsets into the tilebuffer. Likewise, we need
to calculate offsets based on bpp (with special cases) rather than
picking an average case.
Fixes regressions that otherwise would be caused by the next commit.
v2: Fix colour clears (Icecream95).
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>
Alyssa Rosenzweig [Tue, 14 Jul 2020 20:58:57 +0000 (16:58 -0400)]
panfrost: Call util_blitter_save_fragment_constant_buffer_slot
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858>
Dave Airlie [Mon, 13 Jul 2020 05:44:24 +0000 (15:44 +1000)]
llvmpipe: fix position offset interpolation
pos offset only applies to the gl_FragPos input, when I refactored
I messed that up, only use pos_offset for the position inputs
and use 0.5 otherwise.
This fixes:
GTF-GL45.gtf30.GL3Tests.fragment_coord_conventions.fragment_coord_conventions_multisample
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5926>
Dave Airlie [Tue, 3 Dec 2019 06:01:37 +0000 (16:01 +1000)]
llvmpipe: fix stencil only formats.
Currently the test crashes with LLVM errors
Stored value type does not match pointer operand type!
store <8 x i32> %s_dst, <8 x i8>* %261
Change the stored type for 8-bit stencil formats.
Fixes:
GTF-GL45.gtf44.GL31Tests.texture_stencil8.texture_stencil8_gl44
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5926>
Thong Thai [Fri, 10 Jul 2020 18:03:26 +0000 (14:03 -0400)]
radeonsi: use PIPE_FORMAT_P010 for 10-bit VP9 decoding
Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Leo Liu <leoliu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5848>
Rhys Perry [Thu, 16 Jul 2020 10:08:50 +0000 (11:08 +0100)]
aco: add add_interference() helper
This won't add interferences between spill ids of different types and will
exit early if there's already an interference.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5805>
Rhys Perry [Tue, 7 Jul 2020 12:11:07 +0000 (13:11 +0100)]
aco: use unordered_set for spill id interferences
Seems to be faster.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5805>
Rhys Perry [Tue, 7 Jul 2020 12:10:38 +0000 (13:10 +0100)]
aco: rewrite graph coloring in spiller
I don't think this is much of an optimization in the typical case, but for
very complex shaders this should work much better.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5805>
Rhys Perry [Tue, 7 Jul 2020 17:16:47 +0000 (18:16 +0100)]
aco: fix underestimated pressure in spiller when a phi has a killed def
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5805>
Alyssa Rosenzweig [Thu, 9 Jul 2020 17:42:25 +0000 (13:42 -0400)]
panfrost: Use Midgard-specific reloads
v2: Be more explicit about sampler types. Prefer the term "load" to
"resolve" to match VK convention. Generate shaders for MRT 8x. Blit
shader generation adds about 6ms to startup cost. We could cache thes.
shaders to disk if we needed to (or indeed, ship binaries).
v3: Fallback on u_blitter on Bifrost so Bifrost continues to work.
KHR_partial_update support is mostly no-oped on Bifrost now, but that's
okay for now - compositors are still functional.
v4: Specialize on multisample state as well to enable reloads of MSAA
textures. This requires 2x the shader variants, so I assume we're up to
12ms startup cost for generation. Annoying. Also fix interactions with
depth- or stencil-only clears of combined depth-stencil surfaces.
v5: Cache to the device (screen) instead of the context, reducing
duplicated work in apps that create many contexts (e.g. Chromium)
v6: Squash in KHR_partial_update cleanup to fix intermediate
regressions on a few tests.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5824>
Indrajit Kumar Das [Fri, 10 Jul 2020 06:15:22 +0000 (11:45 +0530)]
st/mesa: use fragment shader to copy stencil buffer
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5836>
Erik Faye-Lund [Fri, 10 Jul 2020 11:12:40 +0000 (13:12 +0200)]
mesa/main: use p_atomic_inc_return instead of locking
There's no good reason for using a mutex here, as we have a simpler
primitive; atomic integers. So let's use that instead, to simplify
things a bit.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5901>
Yevhenii Kharchenko [Wed, 1 Jul 2020 14:36:18 +0000 (17:36 +0300)]
st/mesa: fix corrupted texture levels, when adding more levels than expected
Some of existing texture levels can be corruted,
after calling 'glTexImage' with param 'level' higher than
max expected value 'floor(log2(max(width, height, depth)))'.
To fix we prevent overwriting image buffer pointer
in 'st_texture_object', if it was already allocated
for multiple mip-levels storage.
Fixes piglit test: 'arb_copy_image add-illegal-levels'
Signed-off-by: Yevhenii Kharchenko <yevhenii.kharchenko@globallogic.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5785>
Erik Faye-Lund [Fri, 10 Jul 2020 10:31:51 +0000 (12:31 +0200)]
gallium/util: do not use _MTX_INITIALIZER_NP on Windows
We already have another way of initializing these, so it's just a matter
of avoiding _MTX_INITIALIZER_NP here.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5902>
Samuel Pitoiset [Tue, 14 Jul 2020 09:16:45 +0000 (11:16 +0200)]
radv/winsys: pass the buffer list via the CS ioctl for less CPU overhead
The legacy path requires one more ioctl to create the buffer
list and this is more costly for the CPU.
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/5899>
Samuel Pitoiset [Tue, 14 Jul 2020 07:48:56 +0000 (09:48 +0200)]
radv/winsys: replace alloca() by malloc() everywhere
To remove the mix of alloca() and malloc().
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/5899>
Neil Roberts [Tue, 7 Jul 2020 13:49:27 +0000 (15:49 +0200)]
v3d/compiler: Lower geometry output store base into offset src
When generating the VPM write instruction for geometry shader outputs,
emit_store_output_gs ends up adding the base and offset arguments
together with an ADD instruction. The addition was done at the VIR level
after scheduling so it always ends up right next to the corresponding
stvpm instruction. Most of the time the offset is constant but nothing
does any constant folding at the VIR level.
This patch makes it instead fold the addition into the offset at the NIR
level in v3d_nir_lower_io so that the NIR-level constant folding can get
rid of the addition most of the time.
v2: Use nir_iadd_imm to simplify the code. (Eric Anholt)
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5825>
Marek Olšák [Tue, 30 Jun 2020 20:57:23 +0000 (16:57 -0400)]
radeonsi: prevent a gfx10_ngg_calculate_subgroup_info failure for TES+NGG GS
arb_tessellation_shader-tes-gs-max-output -small -scan 1 50 -auto -fbo
doesn't pass, but at least all shaders are compiled successfully.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5700>
Dave Airlie [Thu, 16 Jul 2020 02:49:28 +0000 (12:49 +1000)]
ci: bump piglit checkout for dsa tests
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5896>
Dave Airlie [Tue, 14 Jul 2020 03:15:36 +0000 (13:15 +1000)]
mesa: change dsa texture error codes for GL 4.6
GL 4.6 changed error code for when the effective target of the
texture is illegal. Since it's not an illegal enum they modified
it to be an illegal operation.
However the CTS test for this is missing support for two cases,
I'm chasing that up, but I expect this will cause a CTS regression
for anyone who runs this test. I'm leaning on the side of being
compliant rather than passing the test until the test is fixed.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5896>
Alyssa Rosenzweig [Wed, 15 Jul 2020 17:10:02 +0000 (13:10 -0400)]
panfrost: Extract panfrost_batch_reserve_framebuffer
We need to trigger it explicitly for reloads without draws (for Z^S
reload which is an edge case).
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5929>
Alyssa Rosenzweig [Wed, 15 Jul 2020 21:35:58 +0000 (17:35 -0400)]
panfrost: Track surfaces drawn per-batch
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5929>
Alyssa Rosenzweig [Wed, 15 Jul 2020 16:02:32 +0000 (12:02 -0400)]
panfrost: Set zs_samples as necessary
Fixes MSAA Z/S.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5929>
Alyssa Rosenzweig [Wed, 15 Jul 2020 15:38:39 +0000 (11:38 -0400)]
panfrost: Handle per-sample shading
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5929>
Alyssa Rosenzweig [Mon, 13 Jul 2020 23:17:33 +0000 (19:17 -0400)]
panfrost: Add rectangle subtraction algorithm
For better supporting KHR_partial_update.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5929>
Alyssa Rosenzweig [Wed, 15 Jul 2020 15:57:35 +0000 (11:57 -0400)]
panfrost: Identify zs_samples field
For MSAA depth/stencil.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5929>
Alyssa Rosenzweig [Wed, 15 Jul 2020 15:39:08 +0000 (11:39 -0400)]
panfrost: Include sample count in payload estimates
Otherwise we might not reserve enough space.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5929>
Alyssa Rosenzweig [Wed, 15 Jul 2020 01:36:59 +0000 (21:36 -0400)]
panfrost: Add MALI_PER_SAMPLE bit
For gl_SampleID reads.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5929>
Alyssa Rosenzweig [Thu, 9 Jul 2020 17:41:15 +0000 (13:41 -0400)]
panfrost: Expose panfrost_get_blend_shader
It is needed to produce a blend shader for blits.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5929>
Alyssa Rosenzweig [Fri, 3 Jul 2020 17:17:35 +0000 (13:17 -0400)]
panfrost: Force Z/S writeback
This is unfortunately necessary for conformance at this stage.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5929>
Alyssa Rosenzweig [Wed, 15 Jul 2020 13:56:24 +0000 (09:56 -0400)]
pan/mdg: Implement gl_SampleID
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5929>
Alyssa Rosenzweig [Wed, 15 Jul 2020 01:39:06 +0000 (21:39 -0400)]
pan/mdg: Identify per-sample interpolation mode
So this is what .interp0 was this whole time.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5929>
Alyssa Rosenzweig [Fri, 10 Jul 2020 19:56:17 +0000 (15:56 -0400)]
pan/mdg: Bump compiler RT maximum
We don't actually support MRT 8x yet but we would like to soon, so bump
it in the compiler.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5929>
Roman Stratiienko [Wed, 15 Jul 2020 19:26:44 +0000 (22:26 +0300)]
Android: Fixes for Q and R
Fix Android-Q build:
- Use AOSP prebuilt bison by specifying $(BISON) variable
- Use AOSP prebuilt flex by specifying $(LEX) variable
Fix Android-R build:
- Add M4 environmet variable for Android R and higher (See [1])
[1] - https://cs.android.com/android/_/android/platform/build/+/
2bfffb9f48a78de12faf5da77424c0cecb70d6eb:Changes.md;dlc=
997661002af1282d938e88c3c723037e42e5d283
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Tested-by: Mauro Rossi <issor.oruam@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5894>
Dave Airlie [Tue, 14 Apr 2020 04:00:11 +0000 (14:00 +1000)]
llvmpipe/format: fix snorm conversion
This fixes:
GTF-GL45.gtf33.GL3Tests.vertex_type_2_10_10_10_rev.vertex_type_2_10_10_10_rev_conversion
and
piglit
spec/arb_texture_view/rendering-formats/clear gl_rgba8_snorm as gl_r32f
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5820>
Dave Airlie [Tue, 14 Apr 2020 05:28:05 +0000 (15:28 +1000)]
gallivm/sample: always square rho before fast log2
The fast log2 works better if rho is squared, i.e.
fast_log2(sqrt(2)) == 0.4
0.5 * fast_log2(2) == 0.5
so just square rho, and always divide by 2 afterwards.
Fixes:
GTF-GL45.gtf30.GL3Tests.sgis_texture_lod.sgis_texture_lod_basic_lod_selection
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5820>
Rhys Kidd [Wed, 15 Jul 2020 13:04:32 +0000 (23:04 +1000)]
nv50_2d: regenerate envytools-based rnndb headers
The headers hadn't been regenerated from envytools in a long time,
and there were a few minor divergences.
Based on envytools commit
c20929ed0f3be18b8419f7332ee22d905feb6589
Among other things, rnndb has changed naming to G80/etc, for now
I've not tackled switching that over and replaced the nvidia
codenames back to the chip ids that mesa uses with the following:
$ sed -i 's/G80_2D/NV50_2D/g' rnndb/graph/g80_2d.xml.h
$ sed -i 's/GF100_2D/NVC0_2D/g' rnndb/graph/g80_2d.xml.h
No other modifications of the headergen'd headers was done, which
was helped by the differing #define's being unutilised presently.
Signed-off-by: Rhys Kidd <rhyskidd@gmail.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5920>
Samuel Pitoiset [Sun, 12 Jul 2020 11:40:14 +0000 (13:40 +0200)]
radv: destroy the base object if VkCreateInstance() failed
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/5868>
Samuel Pitoiset [Sun, 12 Jul 2020 11:34:39 +0000 (13:34 +0200)]
radv: destroy the base object if VkAllocateCommandBuffers() failed
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/5868>
Samuel Pitoiset [Fri, 10 Jul 2020 15:29:21 +0000 (17:29 +0200)]
radv: destroy the base object if VkCreateFence() failed
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/5868>
Samuel Pitoiset [Fri, 10 Jul 2020 15:25:00 +0000 (17:25 +0200)]
radv: destroy the base object if VkCreateSemaphore() failed
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/5868>
Samuel Pitoiset [Fri, 10 Jul 2020 15:14:30 +0000 (17:14 +0200)]
radv: destroy the base object if VkCreateEvent() failed
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/5868>
Samuel Pitoiset [Fri, 10 Jul 2020 15:11:10 +0000 (17:11 +0200)]
radv: destroy the base object if VkCreateBuffer() failed
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/5868>
Samuel Pitoiset [Fri, 10 Jul 2020 14:18:37 +0000 (16:18 +0200)]
radv: destroy the base object if VkCreateImage() failed
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/5868>
Samuel Pitoiset [Fri, 10 Jul 2020 14:04:26 +0000 (16:04 +0200)]
radv: destroy the base object if VkCreateRenderPass*() failed
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/5868>
Samuel Pitoiset [Fri, 10 Jul 2020 13:52:38 +0000 (15:52 +0200)]
radv: destroy the base object if VkCreateQueryPool() failed
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/5868>
Pierre-Eric Pelloux-Prayer [Tue, 7 Jul 2020 09:08:50 +0000 (11:08 +0200)]
mesa/st: release debug_output after destroying the context
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3230
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2218
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5789>
Pierre-Eric Pelloux-Prayer [Tue, 7 Jul 2020 09:06:21 +0000 (11:06 +0200)]
mesa: add bool param to _mesa_free_context_data
The param controls whether _mesa_destroy_debug_output should be called or not.
No functional changes; this will be used by the next commit.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5789>