platform/upstream/mesa.git
16 months agoAdd Pbuffer support on Tizen platform
Xuelian [Mon, 17 Feb 2020 12:39:44 +0000 (20:39 +0800)]
Add Pbuffer support on Tizen platform

Merged old commit:
commit f409ef598976a4fd4f74ab4695478b1fc1651c06
Author: Zhaowei Yuan <zhaowei.yuan@samsung.com>
    1. Add EGL_PBUFFER_BIT to surface_type if maskes match
    2. Alloc local buffer when render buffer type is
    "FRONT_LEFT" which will be used by Pbuffer

commit b0dec10d0d0fbc7f77623016f3d986122f718f8b
Author: Xuelian Bai <xuelian.bai@samsung.com>
    Fix crash when query a pbuffer surface
    Pbuffer is not created via TPL, so when query a pbuffer surface,
    we can only call _eglQuerySurface instead of TPL APIs.

Change-Id: Ib9990973f228374a95f60157a3b79069529a62b2
Signed-off-by: Xuelian Bai <xuelian.bai@samsung.com>
16 months agoEGL: Add support for weston
Zhaowei Yuan [Mon, 3 Dec 2018 03:08:44 +0000 (11:08 +0800)]
EGL: Add support for weston

Add support for wayland & drm platforms which are used by weston.
Select EGL platform for weston by setting environment variable:
    export EGL_PLATFORM=wayland

Modifications to mesa.spec:
    Add platforms wayland and drm which is needed by weston
    Enable gbm and pack it into RPM package
Modifications to egl_dri2.h
    Since tizen, drm and wayland are all supported now, remove
    the duplicate definition of "color_buffers" and "back" for
    tizen to avoid from building error.

Merged commit:
commit 7c8922c1ead5875fda90106793c2fcfab2feb9f3
Author: Xiaowei Guan <xiaowei.guan@samsung.com>
    - fix weston build error and app launch error

commit 6e7ce80fc524b78980d702549cf5bbc3a641e6ae
Author: Xiaowei Guan <xiaowei.guan@samsung.com>
    - add wayland-egl code for platform_wayland

commit 5cd0256faa43e376dcd5b5f2c2edd2515aff9c04
Author: Zhaowei Yuan <zhaowei.yuan@samsung.com>
    - EGL: Add support for weston

Change-Id: I58272083b7d110d55800d8b9ad7e7c4f0a6f6077
Signed-off-by: Zhaowei Yuan <zhaowei.yuan@samsung.com>
16 months agodocs: add Readme for Tizen and Readme RPI3 Setup for Tizen
Mun, Gwan-gyeong [Mon, 10 Apr 2017 10:36:58 +0000 (19:36 +0900)]
docs: add Readme for Tizen and Readme RPI3 Setup for Tizen
docs: Add Tizen Binary Download Instructions for RPI3

Readme_for_Tizen explains howto seting up build environment for tizen and geting
build dependancy packages.
Readme_RPI3_Setup_for_Tizen explains How to building RPI3 kernel for tizen and
downloading to tizen platform binaries to rpi3.

Add Tizen Binary Download Instructions for RPI3. it includes which packages
should be installed with Mesa for tizen.

Merged old commit a8f81f8f9382445f072c616e77ce0da72c028480

Change-Id: I44f8cdca5be8c8860d7f6a162889d534068168c1
Signed-off-by: Mun, Gwan-gyeong <kk.moon@samsung.com>
16 months agoegl_dri2: Add support for Tizen
Xuelian [Wed, 20 Nov 2019 09:38:53 +0000 (17:38 +0800)]
egl_dri2: Add support for Tizen

Re-implement _eglLog based on dlog
Add build support for Tizen platform.
Added missed dri2_fini_surface() at tizen_destroy_surface().

Add platform_tizen.c that supports _EGL_PLATFORM_TIZEN. It works with libtpl-egl
(Tizen Porting Layer for egl), libtbm(Tizen Buffer Manager) where back buffers
of windows are backed by GEM objects.

In Tizen a native window has a queue (tbm_surface_queue) of back buffers
allocated by the WL_TBM(wayland client case, WL_TBM is abbreviation of
wayland-tbm protocol) or gbm ( tizen has implements gbm with tbm) or tbm
through tbm_backend.

For each frame, EGL needs to

    dequeue the next back buffer
    render to the buffer
    enqueue the buffer

After enqueuing, the buffer is no longer valid to EGL.

It supports DRI image loader extension, DRI dri2 loader extension and DRI swrast
loader extension.

It supports EGL_NATIVE_SURFACE_TIZEN  target type for eglCreateImageKHR.
(https://www.khronos.org/registry/EGL/extensions/TIZEN/EGL_TIZEN_image_native_surface.txt)

BindWaylandDisplayWL / UnbindWaylandDisplayWL / QueryWaylandBufferWL are
overloaded because tizen platform has its own instead of WL_DRM.

Referenced documents:
https://www.x.org/wiki/Events/XDC2016/Program/XDC2016_Tizen_Window_System_EGL_Vulkan.pdf
https://wiki.tizen.org/wiki/3.0_Porting_Guide/Graphics_and_UI/libtpl-egl
https://wiki.tizen.org/wiki/TBM

egllog: add unlock call preventing the deadlock
Implement dlog for mesa main

_eglLog is a basic log function for mesa, re-implement
it based on dlog here for debug purpose.
Log level can be changed by setting environment variable
EGL_LOG_LEVEL.

Log API for mesa main module are all implemented in file
src/mesa/main/error.c, re-implement them based on dlog
for debug convenience

add configuration of building and packaging for rpi3 ( vc4 gpu driver )
add udev rule files for rpi3 (vc4 drm device)

Mered old commit:
commit f5205524bf20b63c2efe20e99429c9d55543b711
Author: Zhaowei Yuan <zhaowei.yuan@samsung.com>
Date:   Mon May 6 13:52:32 2019 +0800

commit 704bb72470589ede7246af8c6b0a9210df42f1c7
Author: Xuelian <xuelian.bai@samsung.com>
Date:   Wed Nov 20 19:08:41 2019 +0800

commit 247adc92138ad456f5db39acfe5be69748973df3
Author: Joonbum Ko <joonbum.ko@samsung.com>
Date:   Wed Apr 29 20:01:56 2020 +0900

Change-Id: I83348c1cff5f0f59f79bc3c016623adf6fbba32b
Signed-off-by: Xuelian <xuelian.bai@samsung.com>
17 months agoVERSION: bump for 22.3.5 upstream/22.3.5
Eric Engestrom [Wed, 8 Feb 2023 21:05:36 +0000 (21:05 +0000)]
VERSION: bump for 22.3.5

17 months agodocs: add release notes for 22.3.5
Eric Engestrom [Wed, 8 Feb 2023 21:05:31 +0000 (21:05 +0000)]
docs: add release notes for 22.3.5

17 months agoanv: uncompressed views of compressed 3d images are now valid
Iván Briano [Thu, 19 Jan 2023 23:23:56 +0000 (15:23 -0800)]
anv: uncompressed views of compressed 3d images are now valid

There was a VUID-VkImageViewCreateInfo-image-04739 in the Vulkan 1.3
spec that said:

    If image was created with the
    VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag and format is a
    non-compressed format, viewType must not be VK_IMAGE_VIEW_TYPE_3D

That VUID has since been removed, and when a view of a 3D image is
created, with put the depth into the array_len, so it won't be always 1.

Reviewed-by: Mark Janes <markjanes@swizzler.org>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20803>
(cherry picked from commit 58ababdee6cd6b1e08604033602e4a5f9d5ab7a3)

17 months agoaco: fix imod/omod for gfx11 VOP3 opcodes
Georg Lehmann [Tue, 7 Feb 2023 19:53:12 +0000 (20:53 +0100)]
aco: fix imod/omod for gfx11 VOP3 opcodes

Fixes: d8d99c3c4f2 ("aco: add GFX11 opcode numbers")
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21170>
(cherry picked from commit c8adf16278fc02207602e4fafa12b95e6ea8dda0)

17 months agoutil/vbuf: fix multidraw unrolling
Mike Blumenkrantz [Mon, 6 Feb 2023 15:14:24 +0000 (10:14 -0500)]
util/vbuf: fix multidraw unrolling

* drawid needs to be incremented at end of loop
* rescope draw structs to initialize at top of loop

fix #8191

Fixes: 6b07893b31f ("util/vbuf: handle multidraws")

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-by: Mark Janes <markjanes@swizzler.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21139>
(cherry picked from commit 8f5a63ebfe84f0bdaa7959fae79e9d42a17113ac)

17 months agozink: use screen indexing for bindless descriptor set in template bind
Mike Blumenkrantz [Tue, 7 Feb 2023 19:50:16 +0000 (14:50 -0500)]
zink: use screen indexing for bindless descriptor set in template bind

Fixes: 8636717270f ("zink: add a "compact" descriptor mode")

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21169>
(cherry picked from commit faaf6f95cc478da6ea4f8416bdae7080d9fca77a)

17 months agozink: make last_vertex_stage the first bit in zink_vs_key_base
Mike Blumenkrantz [Mon, 6 Feb 2023 20:26:43 +0000 (15:26 -0500)]
zink: make last_vertex_stage the first bit in zink_vs_key_base

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21169>
(cherry picked from commit 77d8cd9c07adb5da818ed14c7a60341e6289a308)

17 months agozink: fix gpl lib hashing
Mike Blumenkrantz [Tue, 7 Feb 2023 18:53:28 +0000 (13:53 -0500)]
zink: fix gpl lib hashing

this was including the generated tcs bits, which was likely to be wrong
and thus break optimal key hashing, requiring more pipelines

it also wasn't setting the optimal key value correctly during precompile,
which meant the wrong hash value was used and the precompiled libs were never
actually accessible

cc: mesa-stable

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21169>
(cherry picked from commit 4cf54e2ed22023c986f70711bddd0e934aa5683c)

17 months agozink: set zs feedback loop bit from driver workaround on ctx create
Mike Blumenkrantz [Tue, 7 Feb 2023 17:50:10 +0000 (12:50 -0500)]
zink: set zs feedback loop bit from driver workaround on ctx create

this may otherwise not be set until the cache has been broken

Fixes: 56fb2580642 ("zink: replace mixed_zs with zs feedback loops")

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21169>
(cherry picked from commit bbae237258a40c370caffb58602745f1d36f66ba)

17 months agozink: set gfx feedback loop bit in pipeline state for driver workaround
Mike Blumenkrantz [Tue, 7 Feb 2023 17:48:33 +0000 (12:48 -0500)]
zink: set gfx feedback loop bit in pipeline state for driver workaround

this needs to be set on context create or it may never get set

Fixes: 645f2da3faf ("zink: always set VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT sometimes")

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21169>
(cherry picked from commit 0cb326cc74464f4e7f57de5c4d740e080f5e5b70)

17 months agozink: add a define for testing that an optimal key is the default
Mike Blumenkrantz [Mon, 6 Feb 2023 22:35:51 +0000 (17:35 -0500)]
zink: add a define for testing that an optimal key is the default

tcs values here are ignored since they only matter for generated tcs

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21169>
(cherry picked from commit 7c021cc5f05d24211f327ea16d686f4bd9986465)

17 months agozink: add a define for the "default" optimal key
Mike Blumenkrantz [Mon, 6 Feb 2023 20:57:45 +0000 (15:57 -0500)]
zink: add a define for the "default" optimal key

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21169>
(cherry-picked from 1f08a6dcdbf382a7586b703379969bdd3113c02e)

17 months agozink: fix pointcoord y inversion
SoroushIMG [Wed, 1 Feb 2023 20:37:26 +0000 (20:37 +0000)]
zink: fix pointcoord y inversion

Point sprite coordinates in general need to be inverted,
not just the texcoords converted to point sprite.

Move point coord y inversion out to its own pass.
Fixes GTF-GL46.gtf21.GL2FixedTests.point_sprites.point_sprites
with FBO dEQP surface.

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21050>
(cherry picked from commit 782f1e9e010452850853b9791e673f2e1a7a671e)

17 months agolavapipe: Fix bad array index scale factor in lvp_inline_uniforms pass
Ian Romanick [Mon, 6 Feb 2023 17:41:36 +0000 (09:41 -0800)]
lavapipe: Fix bad array index scale factor in lvp_inline_uniforms pass

A few lines earlier uni_offsets is accessed with ubo scaled by
PIPE_MAX_CONSTANT_BUFFERS:

   if (uni_offsets[ubo * PIPE_MAX_CONSTANT_BUFFERS + i] == offset)

Found by inspection.

Looking at the before and after NIR code for
dEQP-VK.graphicsfuzz.cov-int-initialize-from-multiple-large-arrays,
using the correct indexing appears to enable the pass to inline an
additional uniform. My guess is that when a uniform is used more than
once, the first loop wouldn't find the offset recored in the table
because it was recorded at the wrong location.

Fixes: d23a9380dd6 ("lavapipe: implement extreme uniform inlining")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21144>
(cherry picked from commit a7696a4d98bcf4cdfae1c56a21c4deb3a9ce004f)

17 months agoaco: fix out-of-bounds access when moving s_mem(real)time across SMEM
Rhys Perry [Fri, 3 Feb 2023 17:27:52 +0000 (17:27 +0000)]
aco: fix out-of-bounds access when moving s_mem(real)time across SMEM

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8224
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21138>
(cherry picked from commit fad1f716dd831fba4c380bce1cf76bffc11be6d6)

17 months agolavapipe: disable VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT for int formats
Mike Blumenkrantz [Fri, 3 Feb 2023 15:24:42 +0000 (10:24 -0500)]
lavapipe: disable VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT for int formats

this is unsupported and undefined by the spec

cc: mesa-stable

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21099>
(cherry picked from commit 7d8e2db9f95747895b6cd137cb1db445b3a1a66f)

17 months agov3dv: ensure we apply binning syncs to secondary command buffers
Iago Toral Quiroga [Tue, 7 Feb 2023 12:06:48 +0000 (13:06 +0100)]
v3dv: ensure we apply binning syncs to secondary command buffers

Currently, we postpone binning syncs until we record draw calls
and can validate if any of them require accessing protected
resources in the binning stage, however, if the draw calls are
recorded in a secondary command buffer and the barriers have
been recorded in the primary command buffer, we won't apply the
binning sync in the secondary when we record the draw calls
and so we must apply it when we execute the secondary in the
primary.

Fixes flakyness in:
dEQP-VK.api.command_buffers.record_many_draws_secondary_2

cc: mesa-stable

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21162>
(cherry picked from commit fec15a225f603f7a980241ce6b7fad35dfc6aff4)

17 months agov3dv: ensure at least V3D_CL_MAX_INSTR_SIZE bytes in last CL instruction
Iago Toral Quiroga [Mon, 6 Feb 2023 12:16:12 +0000 (13:16 +0100)]
v3dv: ensure at least V3D_CL_MAX_INSTR_SIZE bytes in last CL instruction

The CLE parser in the sim will read this many bytes for each instruction
in a CL, so we should ensure we have at least that many bytes available
in the BO when reading the last instruction, otherwise we can trigger
a GMP violation. It is not clear whether this behavior applies to real
hardware too.

cc: mesa-stable

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21162>
(cherry picked from commit c2601f06908434aaddd6b1db5e995bbda22d2a72)

17 months agomeson: Ignore unused variables when assertions are disabled
pal1000 [Mon, 6 Feb 2023 23:35:45 +0000 (01:35 +0200)]
meson: Ignore unused variables when assertions are disabled

Fixes: 46b099e3
("meson: Ignore unused variables in release builds")

46b099e3 has some issues:
- it doesn't enable unused variables warning on release builds
with assertions enabled;
- it doesn't disable unused variables warning on debug builds
with assertions disabled;
- it doesn't disable unused variables warning when building
with MSVC and assertions are disabled regardless of buildtype,
see #8147. 3/4 regressions reported there have this limitation
alone as root cause.

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21154>
(cherry picked from commit 4347072443867f6337c33ffc330263bb851d9839)

17 months agoloader: unregister special event in loader_dri3_drawable_fini
Yuxuan Shui [Mon, 6 Feb 2023 01:22:47 +0000 (01:22 +0000)]
loader: unregister special event in loader_dri3_drawable_fini

This was inadvertently removed in 98a6cfd3953 and causes continuous
memory leaks as events are being received after the context has been
unbound.

Fixes: 3170b63314f ("loader: Add infrastructure for tracking active CRTC resources")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8238
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21128>
(cherry picked from commit 27a89a0903f2c541541846e8d909bb67af242d5e)

17 months agozink: fix max acquired image count
Mike Blumenkrantz [Fri, 3 Feb 2023 13:40:25 +0000 (08:40 -0500)]
zink: fix max acquired image count

according to spec, the maximum number of acquired images can be calculated with

swapchain_size - VkSurfaceCapabilitiesKHR::minImageCount + 1

the previous calculation was both wrong and occurring in the wrong place,
so this corrects both issues

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21095>
(cherry picked from commit 89cf0a3bdc9949c54d8d7965a2d51bed91b6d10a)

17 months agozink: clear null image surfaces to 0
SoroushIMG [Sun, 5 Feb 2023 14:18:16 +0000 (14:18 +0000)]
zink: clear null image surfaces to 0

GL Spec says that imageLoad from incomplete images must return 0.
This is not really spec compliant as for proper behavior nullDescriptor
and robustImageAccess2 is needed.
A workaround for lack of either of these requires a shader variant.
Clearing the null surface and hoping the app doesn't write to the image
is closer to spec, while avoiding a shader recompile.

KHR-GL46.shader_image_load_store.incomplete_textures tests this.

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21135>
(cherry picked from commit 22e91af1a77361249b9c71ee609b67ec187e612c)

17 months agozink: fix leak when rebinding same image surface
SoroushIMG [Sun, 5 Feb 2023 17:31:47 +0000 (17:31 +0000)]
zink: fix leak when rebinding same image surface

simple way to reproduce this is to run these 4 together:
KHR-GL46.gpu_shader5.images_array_indexing
KHR-GL46.shader_image_load_store.advanced-allMips
KHR-GL46.shader_image_load_store.advanced-sso-simple
KHR-GL46.shader_image_load_store.incomplete_textures

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21134>
(cherry picked from commit 104040b5c7135403194005951e57197ef76438a6)

17 months agozink: only save frag const buffers when used by blit
SoroushIMG [Sun, 5 Feb 2023 15:43:45 +0000 (15:43 +0000)]
zink: only save frag const buffers when used by blit

fixes upload manager constant buffer leak.
zink only needs to save the const buffer for stencil fallback blits.

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21134>
(cherry picked from commit 4c647c9e259a6a0fc1499c377a07bfd0ba902079)

17 months agoradv: set state.vbo_misaligned_mask_invalid in radv_bind_vs_input_state
Rhys Perry [Wed, 25 Jan 2023 18:00:54 +0000 (18:00 +0000)]
radv: set state.vbo_misaligned_mask_invalid in radv_bind_vs_input_state

Found by inspection. Something probably hangs because of this, but I don't
know what.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Fixes: c199a5160a0 ("radv: bind the VS input state for prologs created with GPL")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20913>
(cherry picked from commit 10a5035c836a852fcdc7a4532d9ec1af5fd3464d)

17 months agoac/llvm: Fix validation error with global io
Konstantin Seurer [Wed, 4 Jan 2023 15:49:08 +0000 (16:49 +0100)]
ac/llvm: Fix validation error with global io

Fixes: afd645f0576 ("ac/llvm: remove LLVMBuildGEP usages")
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20521>
(cherry picked from commit 10ac51a52bad2c2378b2d847eae23e1366ddc46f)

17 months agoac/nir/ngg: Include culled primitives in query.
Timur Kristóf [Wed, 1 Feb 2023 12:07:42 +0000 (13:07 +0100)]
ac/nir/ngg: Include culled primitives in query.

Vulkan spec 18.8. Primitives Generated Queries:

When a generated primitive query for a vertex stream is active,
the primitives-generated count is incremented every time a
primitive emitted to that stream reaches the transform feedback
stage, whether or not transform feedback is active.

We can see the order of stages in chapter 27 Fixed-Function
Vertex Post-Processing, which shows that the transform feedback
stage is before rasterization (and therefore culling).

Conclusion is that culled primitives should be included
in the primitives generated query.

This commit makes sure to emit the primitives generated query
code before culling and uses the input primitive count passed
to the current wave instead of the exec mask after culling.

Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21037>
(cherry picked from commit 3a819bd22ec5a7eea2e0e337977cbc0af9e38032)

17 months agozink: fix cap check for arb sparse texture2
SoroushIMG [Sat, 4 Feb 2023 17:44:40 +0000 (17:44 +0000)]
zink: fix cap check for arb sparse texture2

arb_sparse_texture2 also enables multisampled sparse textures.
bring back the check for msaa support.

fixes #8229

Fixes: 4f8ba2b9aae ("zink: fix sparse residency query and minLOD feature checks")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21121>
(cherry picked from commit 8f928a95e167423320af711b21270a8212f34628)

17 months agozink: fix sparse residency query and minLOD feature checks
SoroushIMG [Mon, 30 Jan 2023 18:53:19 +0000 (18:53 +0000)]
zink: fix sparse residency query and minLOD feature checks

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21013>
(cherry picked from commit 4f8ba2b9aae265dfc56a62e85cd5eab3c4c718f3)

17 months agomeson: combine checks for linker --gc-sections support
Dylan Baker [Thu, 2 Feb 2023 21:05:33 +0000 (13:05 -0800)]
meson: combine checks for linker --gc-sections support

We first do an incomplete check for whether the linker supports
--gc-sections, then potentially add C and C++ arguments assuming that it
works, then later do a complete check to see if it actually works and
use --gc-sections. This means we can end up putting functions and data
in separate sections when we can't gc them.

Combine the checks, do less work, and be more accurate.

fixes: f51ce21e4e0bf7efabe58afb4a2cd6b9f98d9505
       ("meson: Drop adding -Wl,--gc-sections to project c/cpp arguments.")

Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21083>
(cherry picked from commit fd9b50aa1c07512c46ec981f19ea68fa4b8d7b4f)

17 months agoac/nir/ngg: fix clip dist culling mask uninitialized
Qiang Yu [Sat, 14 Jan 2023 14:06:32 +0000 (22:06 +0800)]
ac/nir/ngg: fix clip dist culling mask uninitialized

Fixes: f75452918b2 ("ac/nir/ngg: support clipdist culling")
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20691>
(cherry picked from commit d798214c7b25b0bf2ce6b094475913a1f72585b8)

17 months agoradv: Disable NGG culling when conservative overestimation is used.
Timur Kristóf [Mon, 30 Jan 2023 14:23:12 +0000 (15:23 +0100)]
radv: Disable NGG culling when conservative overestimation is used.

Even when small primitive culling is disabled, the face culling algorithm
in ac_nir_cull can delete tiny triangles when their area is almost zero.

Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20987>
(cherry picked from commit 3508597aa1b88d1b5a6f78ad53d8abcc32cde2c9)

17 months agoanv: handle ATTACHMENT_OPTIMAL layout
Constantine Shablya [Thu, 2 Feb 2023 08:45:16 +0000 (10:45 +0200)]
anv: handle ATTACHMENT_OPTIMAL layout

Closes: #8216
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21066>
(cherry picked from commit 9b3b7e509106976b131df85f0462df299a44c80f)

17 months agoamd: fix typo in shadowed uconfig registers on gfx11
Marek Olšák [Fri, 27 Jan 2023 23:02:37 +0000 (18:02 -0500)]
amd: fix typo in shadowed uconfig registers on gfx11

It used an invalid offset, which hung.

Fixes: f24f8665dbe2a - ac: implement register shadowing for gfx11

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21041>
(cherry picked from commit 76472c850b7f93a5389c473a9cf87685ad97cb72)

17 months agoamd: fix tile_swizzle on gfx11 - should be shifted by 10 bits, not 8
Marek Olšák [Tue, 24 Jan 2023 07:44:48 +0000 (02:44 -0500)]
amd: fix tile_swizzle on gfx11 - should be shifted by 10 bits, not 8

This reverts the radv_adjust_tile_swizzle change to unify the code.

Fixes: 529eb739fc4 - radeonsi/gfx11: add CB deltas

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21041>
(cherry picked from commit 47f598a183e849dfee4a587b51074664ee778312)

17 months agoamd: split GFX1103 into GFX1103_R1 and GFX1103_R2
Marek Olšák [Tue, 24 Jan 2023 08:00:38 +0000 (03:00 -0500)]
amd: split GFX1103 into GFX1103_R1 and GFX1103_R2

Fixes: caa09f66ae4 - amd: add chip identification for gfx1100-1103

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21041>
(cherry picked from commit 84d59cdb5971424a4297e288b852c8cc15c46163)

17 months agoradeonsi/gfx11: unset SAMPLE_MASK_TRACKER_WATERMARK to fix hangs
Marek Olšák [Tue, 24 Jan 2023 04:08:36 +0000 (23:08 -0500)]
radeonsi/gfx11: unset SAMPLE_MASK_TRACKER_WATERMARK to fix hangs

Same as PAL.

Fixes: 529eb739fc4 - radeonsi/gfx11: add CB deltas

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21041>
(cherry picked from commit 66d11391f76c0892388d933282fbc74028d9edc4)

17 months agoradeonsi: fix RB+ blending with sRGB formats
Marek Olšák [Tue, 24 Jan 2023 10:52:17 +0000 (05:52 -0500)]
radeonsi: fix RB+ blending with sRGB formats

The epsilon for 8bpc is for the linear colorspace. There is no epsilon
for sRGB.

Fixes: 17021efc742 - radeonsi: adjust RB+ blend optimization settings

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21041>
(cherry picked from commit 8556b3db71683fc0393b7f75b0317890c8c0ae4e)

17 months agoetnaviv: fix double scanout import of multiplanar resources
Lucas Stach [Mon, 30 Jan 2023 17:58:30 +0000 (18:58 +0100)]
etnaviv: fix double scanout import of multiplanar resources

etna_resource_from_handle() is called for each plane of a multiplanar
resource, so there is no point in looping over all planes to do the
renderonly scanout import. In fact that will cause us to lose track
of the scanout imports from later planes when the earlier planes are
redoing the import, overwriting the pointer to the allocated
renderonly_scanout struct.

Drop the loop and just do the import for the current plane.

Fixes: 826f95778a4e ("etnaviv: always try to create KMS side handles for imported resources")
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20993>
(cherry picked from commit 175732bb51c81513ae05f9313d6df7c0631ef159)

17 months agoRevert "radeonsi: enable glthread by default"
Marek Olšák [Thu, 2 Feb 2023 23:21:39 +0000 (18:21 -0500)]
Revert "radeonsi: enable glthread by default"

This reverts commit d6fabe49cd72fb7f7087b12efd8a9e3371e36c01.

It has issues that are not worth fixing in this release branch in my opinion.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21087>

17 months ago.pick_status.json: Mark d23b3a13943576bbb8dd0fea12ac717c40b376e1 as denominated
Eric Engestrom [Thu, 2 Feb 2023 16:43:21 +0000 (16:43 +0000)]
.pick_status.json: Mark d23b3a13943576bbb8dd0fea12ac717c40b376e1 as denominated

17 months agointel/fs: Always stall between the fences on Gen11+
Sagar Ghuge [Mon, 30 Jan 2023 18:41:37 +0000 (10:41 -0800)]
intel/fs: Always stall between the fences on Gen11+

Be conservative in Gfx11+ and always stall in a fence.  Since there are
two different fences, and shader might want to synchronize between them.

This change also brings back the original code block for the stall
between the fence and comment from the commit
b390ff35170fdc2b7f1fb1709a79d81edcd56981.

v2: (Caio)
 - Re-arrange code block.
 - Adjust comment.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6958

Fixes: f7262462 ("intel/fs: Rework fence handling in brw_fs_nir.cpp")
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Tested-by: Mark Janes <markjanes@swizzler.org>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20996>
(cherry picked from commit 0c083d29a55bf20a993eab82786d583403582c8c)

17 months ago.pick_status.json: Mark a568a5492f1dd7eb8c08247b74df2aae498b0863 as denominated
Eric Engestrom [Thu, 2 Feb 2023 12:24:49 +0000 (12:24 +0000)]
.pick_status.json: Mark a568a5492f1dd7eb8c08247b74df2aae498b0863 as denominated

17 months agoaco: limit VALUPartialForwardingHazard search
Rhys Perry [Thu, 26 Jan 2023 16:14:26 +0000 (16:14 +0000)]
aco: limit VALUPartialForwardingHazard search

Complicated CFG and lots of SALU can cause this to take an extremely long
time to finish.

Fixes
dEQP-VK.graphicsfuzz.cov-value-tracking-selection-dag-negation-clamp-loop
and Monster Hunter Rise demo compile times.

fossil-db (gfx1100):
Totals from 57 (0.04% of 134574) affected shaders:
Instrs: 170919 -> 171165 (+0.14%)
CodeSize: 860144 -> 861128 (+0.11%)
Latency: 961466 -> 961505 (+0.00%)
InvThroughput: 127598 -> 127608 (+0.01%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8153
Fixes: 5806f0246fd ("aco/gfx11: workaround VALUPartialForwardingHazard")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20941>
(cherry picked from commit bfd4ac4581bae0d36b2c58524131f91c7c0d27ce)

17 months agointel/ds: Fix crash when allocating more intel_ds_queues than u_vector was initialized
José Roberto de Souza [Mon, 23 Jan 2023 20:09:56 +0000 (12:09 -0800)]
intel/ds: Fix crash when allocating more intel_ds_queues than u_vector was initialized

u_vector_add() don't keep the returned pointers valid.
After the initial size allocated in u_vector_init() is reached it will
allocate a bigger buffer and copy data from older buffer to the new
one and free the old buffer, making all the previous pointers returned
by u_vector_add() invalid and crashing the application when trying to
access it.

This is reproduced when running
dEQP-VK.synchronization.signal_order.timeline_semaphore.* in DG2 SKUs
that has 4 CCS engines, INTEL_COMPUTE_CLASS=1 is set and of course
perfetto build is enabled.

To fix this issue here I'm moving the storage/allocation of
struct intel_ds_queue to struct anv_queue/iris_batch and using
struct list_head to maintain a chain of intel_ds_queue of the
intel_ds_device.
This allows us to append or remove queues dynamically in future if
necessary.

Fixes: e760c5b37be9 ("anv: add perfetto source")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20977>
(cherry picked from commit 8092bc2158ebb8a5f85e0ec569387c5dcd0d1627)

17 months agointel/ds: Nuke intel_ds_queue::queue_id
José Roberto de Souza [Mon, 23 Jan 2023 21:02:34 +0000 (13:02 -0800)]
intel/ds: Nuke intel_ds_queue::queue_id

queue_id is not used anywhere.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20888>
(cherry picked from commit 5ccc2049fae591d1baf6f581bbd0e3953c0ee5fa)

17 months agoaco/spill: always end spill vgpr after control flow
Rhys Perry [Tue, 10 Jan 2023 17:33:52 +0000 (17:33 +0000)]
aco/spill: always end spill vgpr after control flow

To fix a hypothetical issue:

v0 = start_linear_vgpr
if (...) {

} else {
   use_linear_vgpr(v0)
}
v0 = phi

We need a p_end_linear_vgpr to ensure that the phi does not use the same
VGPR as the linear VGPR.

This is also much simpler.

fossil-db (gfx1100):
Totals from 1195 (0.89% of 134574) affected shaders:
Instrs: 4123856 -> 4123826 (-0.00%); split: -0.00%, +0.00%
CodeSize: 21461256 -> 21461100 (-0.00%); split: -0.00%, +0.00%
Latency: 62816001 -> 62812999 (-0.00%); split: -0.00%, +0.00%
InvThroughput: 9339049 -> 9338564 (-0.01%); split: -0.01%, +0.00%
Copies: 304028 -> 304005 (-0.01%); split: -0.02%, +0.01%
PreVGPRs: 115761 -> 115762 (+0.00%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20621>
(cherry picked from commit bbc5247bf71cebfdb2ee79646bd2231a909a74eb)

17 months agoaco: end reduce tmp after control flow, when used within control flow
Rhys Perry [Tue, 10 Jan 2023 15:29:15 +0000 (15:29 +0000)]
aco: end reduce tmp after control flow, when used within control flow

In the case of:

v0 = start_linear_vgpr
if (...) {

} else {
   use_linear_vgpr(v0)
}
v0 = phi

We need a p_end_linear_vgpr to ensure that the phi does not use the same
VGPR as the linear VGPR.

fossil-db (gfx1100):
Totals from 3763 (2.80% of 134574) affected shaders:
MaxWaves: 90296 -> 90164 (-0.15%)
Instrs: 6857726 -> 6856608 (-0.02%); split: -0.03%, +0.01%
CodeSize: 35382188 -> 35377688 (-0.01%); split: -0.02%, +0.01%
VGPRs: 234864 -> 235692 (+0.35%); split: -0.01%, +0.36%
Latency: 47471923 -> 47474965 (+0.01%); split: -0.03%, +0.04%
InvThroughput: 5640320 -> 5639736 (-0.01%); split: -0.04%, +0.03%
VClause: 93098 -> 93107 (+0.01%); split: -0.01%, +0.02%
SClause: 214137 -> 214130 (-0.00%); split: -0.00%, +0.00%
Copies: 369895 -> 369305 (-0.16%); split: -0.31%, +0.15%
Branches: 164996 -> 164504 (-0.30%); split: -0.30%, +0.00%
PreVGPRs: 210655 -> 211438 (+0.37%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20621>
(cherry picked from commit 44fdd2ebcb271011665dd100ba9ef6852cddb22e)

17 months ago.pick_status.json: Mark 13de23ea07dd7e1340fd9b72367996fa3c2433ee as denominated
Eric Engestrom [Thu, 2 Feb 2023 12:09:51 +0000 (12:09 +0000)]
.pick_status.json: Mark 13de23ea07dd7e1340fd9b72367996fa3c2433ee as denominated

17 months agozink: always unref old images when adding new binds
Mike Blumenkrantz [Mon, 23 Jan 2023 21:34:31 +0000 (16:34 -0500)]
zink: always unref old images when adding new binds

at some point this was correct, but refactoring has since occurred,
and this ends up leaking storage image objects

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20867>
(cherry picked from commit d745e3b0ab4614136f1c8d93feb54b612fd58d3f)

17 months agozink: stop leaking push descriptor templates
Mike Blumenkrantz [Mon, 23 Jan 2023 21:08:48 +0000 (16:08 -0500)]
zink: stop leaking push descriptor templates

templates[ZINK_DESCRIPTOR_TYPE_UNIFORMS] needs to be deleted, which
requires a larger iterator

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20867>
(cherry picked from commit dd733034aa117294be0f06b5b973b18d1c341666)

17 months agozink: don't add dmabuf export type if dmabuf isn't supported
Mike Blumenkrantz [Thu, 19 Jan 2023 18:22:30 +0000 (13:22 -0500)]
zink: don't add dmabuf export type if dmabuf isn't supported

avoid trying to create dmabuf-exportable resources too

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20791>
(cherry picked from commit 01d2e7afce562013a8cb9b6b9fd1190e317e896a)

17 months agoradv: fix RB+ for SRGB formats
Samuel Pitoiset [Mon, 30 Jan 2023 08:16:50 +0000 (09:16 +0100)]
radv: fix RB+ for SRGB formats

This should be set for linear colorspace only.

Ported from RadeonSI.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20982>
(cherry picked from commit c8a575eb3098282f495948b728abd45768dc5d01)

17 months ago.pick_status.json: Mark 47852b9ff45e73f8f6773a1598cf872c6ee6207f as denominated
Eric Engestrom [Thu, 2 Feb 2023 12:03:34 +0000 (12:03 +0000)]
.pick_status.json: Mark 47852b9ff45e73f8f6773a1598cf872c6ee6207f as denominated

17 months agoradv: Shift left the tile swizzle more on GFX11.
Bas Nieuwenhuizen [Mon, 30 Jan 2023 01:54:19 +0000 (02:54 +0100)]
radv: Shift left the tile swizzle more on GFX11.

ac/surface puts the raw pip_bank_xor there, which needs the extra
shift for the actual tile_swizzle.

(I think long term we should refactor this in ac/surface but for
 now lets fix like radeonsi to avoid race conditions.)

CC: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20979>
(cherry picked from commit b0a9772cc6154e29ba6e3d21a91096dd891ef302)

17 months agoradv: Set FDCC_CONTROL SAMPLE_MASK_TRACKER_WATERMARK
Bas Nieuwenhuizen [Mon, 30 Jan 2023 01:31:41 +0000 (02:31 +0100)]
radv: Set FDCC_CONTROL SAMPLE_MASK_TRACKER_WATERMARK

Might cause hangs according to comments. Syncs with radeonsi/PAL.

Fixes: e210ffb4d0d ("radv: update framebuffer registers on GFX11")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20979>
(cherry picked from commit d321bc1323b02de92a095397830c9296996e16b3)

17 months ago.pick_status.json: Mark 4b841cfec8b502a8290cd67356d811933d318c2b as denominated
Eric Engestrom [Thu, 2 Feb 2023 16:44:37 +0000 (16:44 +0000)]
.pick_status.json: Mark 4b841cfec8b502a8290cd67356d811933d318c2b as denominated

17 months agovulkan/runtime: match the spec when taking pipeline subsets.
Hyunjun Ko [Tue, 31 Jan 2023 07:30:03 +0000 (16:30 +0900)]
vulkan/runtime: match the spec when taking pipeline subsets.

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21006>
(cherry picked from commit c489b3eadb1570762fe2362b9c0e78090ee8c127)

17 months agoetnaviv: drm: fix check if BO is on a deferred destroy list
Lucas Stach [Thu, 26 Jan 2023 18:08:14 +0000 (19:08 +0100)]
etnaviv: drm: fix check if BO is on a deferred destroy list

list_is_linked() isn't the right function to use in order to check if
the BO is on a cache bucket or the zombie list, as this checks if the
next pointer of the list isn't NULL. This is always the case with the
BO list item as it's always initialized, so the next pointer points to
the list head itself when the BO isn't on any list.

Use list_is_empty() to check if the BO is actually linked into one
of the deferred destroy lists.

Fixes: 1b1f8592c03c ("etnaviv: drm: properly handle reviving BOs via a lookup")
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20940>
(cherry picked from commit 196882a1477a69ba1593db8bdaaf6726fe914fca)

17 months agoetnaviv: free pm queries dynarray on screen destroy
Lucas Stach [Thu, 26 Jan 2023 11:46:25 +0000 (12:46 +0100)]
etnaviv: free pm queries dynarray on screen destroy

CC: mesa-stable
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20940>
(cherry picked from commit c59369005bf42c2981561643d8b0eb15b1b52581)

17 months agoetnaviv: drm: fix BO array leaks
Lucas Stach [Thu, 26 Jan 2023 11:38:35 +0000 (12:38 +0100)]
etnaviv: drm: fix BO array leaks

Free the both arrays tracking BOs when the etna_cmd_stream is destroyed.

CC: mesa-stable
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20940>
(cherry picked from commit 3156b15f70c83d954db9d8ffac90988c7b71a194)

17 months agoanv: fix null descriptors
Lionel Landwerlin [Fri, 27 Jan 2023 09:21:54 +0000 (11:21 +0200)]
anv: fix null descriptors

When writing descriptor with a null buffer/image we expect that
writing 0 will point to the null surface. For that to work the null
surface has to be in the bindless surface heap.

This fixes some new failures in dEQP-VK.robustness.* tests once
rewritten from the NV_ray_tracing to KHR_ray_tracing extension.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 4ceaed7839 ("anv: split internal surface states from descriptors")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7762
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20953>
(cherry picked from commit 0d7f8aa2499104b1d16deba32e4c25c342d1ce7d)

17 months ago.pick_status.json: Mark ac339d97978e96c80d43688566717d4c4f6fa7f3 as denominated
Eric Engestrom [Sat, 28 Jan 2023 22:14:16 +0000 (22:14 +0000)]
.pick_status.json: Mark ac339d97978e96c80d43688566717d4c4f6fa7f3 as denominated

17 months ago.pick_status.json: Mark 6f7b752fdd2f5f33139dbc105da433ef6f11f112 as denominated
Eric Engestrom [Sat, 28 Jan 2023 22:25:55 +0000 (22:25 +0000)]
.pick_status.json: Mark 6f7b752fdd2f5f33139dbc105da433ef6f11f112 as denominated

17 months ago.pick_status.json: Mark cc9fa060ee1b232e5e72077232d7b90c92dfc1bd as denominated
Eric Engestrom [Sat, 28 Jan 2023 21:03:02 +0000 (21:03 +0000)]
.pick_status.json: Mark cc9fa060ee1b232e5e72077232d7b90c92dfc1bd as denominated

17 months agozink: set vkusage/vkflags for buffer resource objects
Mike Blumenkrantz [Wed, 25 Jan 2023 16:19:07 +0000 (11:19 -0500)]
zink: set vkusage/vkflags for buffer resource objects

this needs to be populated for other places in the driver that need it

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20912>
(cherry picked from commit 3c562cfc06417ca52738460bbe63ad972f26f4c5)

17 months agozink: add VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT for buffers if ext is enabled
Mike Blumenkrantz [Wed, 25 Jan 2023 16:13:08 +0000 (11:13 -0500)]
zink: add VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT for buffers if ext is enabled

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20912>
(cherry picked from commit c545300f30bc1d6558c066466052ec6a0acb3bed)

17 months agoRevert "zink: allow direct memory mapping for any COHERENT+CACHED buffer"
Mike Blumenkrantz [Fri, 27 Jan 2023 17:52:23 +0000 (12:52 -0500)]
Revert "zink: allow direct memory mapping for any COHERENT+CACHED buffer"

This reverts commit a3552048c7e7b8afebfc99caac6d555439ddf2bc.

on some drivers this catches qbos, which then hits the below assert.
needs more investigation

Fixes: a3552048c7e ("zink: allow direct memory mapping for any COHERENT+CACHED buffer")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20912>
(cherry picked from commit 07809c45271a25066c583ca90b7365e0d88daf0d)

17 months agoaco: set has_color_exports with GPL
Rhys Perry [Wed, 25 Jan 2023 19:19:17 +0000 (19:19 +0000)]
aco: set has_color_exports with GPL

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Fixes: 192486b7aa5 ("aco/gfx11: export mrtz in discard early exit for non-color shaders")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20937>
(cherry picked from commit 695cf75266f43c0f9d123c5030b136bbdf061d4c)

17 months agoradv: add a layer for fixing rendering issues with RAGE2
Samuel Pitoiset [Wed, 11 Jan 2023 16:04:56 +0000 (17:04 +0100)]
radv: add a layer for fixing rendering issues with RAGE2

This game seems to incorrectly set the render area and since we switched
to full dynamic rendering, the framebuffer dimensions is no longer used.

Forcing the render area to be the framebuffer dimensions restore the
previous logic and it fixes rendering issues.

Fixes: c7d0d328d56 ("radv: Set the window scissor to the render area, not framebuffer")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20900>
(cherry picked from commit 1a93cd15563a5d0bb6faf12c5d4c852cb3534415)

17 months agoegl: Rewrite eglGetMscRateANGLE to avoid probes and handle multi-monitor
Kenneth Graunke [Wed, 11 Jan 2023 23:37:22 +0000 (15:37 -0800)]
egl: Rewrite eglGetMscRateANGLE to avoid probes and handle multi-monitor

RRGetScreenInfo re-probes connector status, which may result in an EDID
transfer for every output, which according to Adam Jackson can be on the
order of 100ms for a single EDID block.  So our previous implementation
of this eglGetMscRateANGLE was blocking for excessive periods of time
instead of being a quick query of the refresh rate like users expect.

This changes our eglGetMscRateANGLE implementation from using
RRGetScreenInfo to RRGetScreenResourcesCurrent and RRGetCrtcInfo.
This obtains the same monitor info without re-probing connectors.

Fixes a severe performance regression in Chromium WebGL performance.

While we're re-implementing the extension, we also implement proper
multi-monitor support: if there are multiple active CRTCs, we determine
which contains the largest portion of the surface, as specified in the
EGL_ANGLE_sync_control_rate extension.

We also now report fractional refresh rates correctly rather than
rounding to the nearest Hz.

Fixes: 47526556494 ("egl/x11: implement ANGLE_sync_control_rate")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6996
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7038
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20665>
(cherry picked from commit 41d5f0ee09ccc6406d9b57351fa95edf30b03298)

17 months agoloader: Add infrastructure for tracking active CRTC resources
Kenneth Graunke [Tue, 17 Jan 2023 23:48:20 +0000 (15:48 -0800)]
loader: Add infrastructure for tracking active CRTC resources

This provides a cached view of the current screen resources, with the
coordinates and refresh rate for every active CRTC.  It's currently only
implemented for X11/XCB.

Fixes: 47526556494 ("egl/x11: implement ANGLE_sync_control_rate")
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20665>
(cherry picked from commit 3170b63314f14f0031cb95bd5ee3a4726f26b43b)

17 months agokopper: Do not free the given screen in initScreen implementation
Corentin Noël [Thu, 26 Jan 2023 12:25:57 +0000 (13:25 +0100)]
kopper: Do not free the given screen in initScreen implementation

The given screen is already freed by the caller in case a NULL-pointer is
returned by the implementation.

Cc: mesa-stable
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20933>
(cherry picked from commit dd3730f8bdd7afdbc7fb0e9dd200951f9d713a34)

17 months ago.pick_status.json: Update to 6390953fa5c0e0a001ce6c07f704366c18f85ccf
Eric Engestrom [Thu, 26 Jan 2023 18:49:28 +0000 (18:49 +0000)]
.pick_status.json: Update to 6390953fa5c0e0a001ce6c07f704366c18f85ccf

17 months agodocs/relnotes: add sha256sum for 22.3.4
Eric Engestrom [Thu, 26 Jan 2023 17:36:37 +0000 (17:36 +0000)]
docs/relnotes: add sha256sum for 22.3.4

17 months agoVERSION: bump for 22.3.4
Eric Engestrom [Thu, 26 Jan 2023 17:07:55 +0000 (17:07 +0000)]
VERSION: bump for 22.3.4

17 months agodocs: add release notes for 22.3.4
Eric Engestrom [Thu, 26 Jan 2023 17:07:48 +0000 (17:07 +0000)]
docs: add release notes for 22.3.4

17 months agohasvk: check the return value of anv_execbuf_add_bo_bitset()
Paulo Zanoni [Tue, 17 Jan 2023 22:32:19 +0000 (14:32 -0800)]
hasvk: check the return value of anv_execbuf_add_bo_bitset()

This is the Hasvk version of Anv's:
  3d37950fd9dd ("anv: check the return value of anv_execbuf_add_bo_bitset()")

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20800>
(cherry picked from commit 5039acfd9df6f4d3fc7cc655717b1c5389120260)

17 months agohasvk: don't leave undefined values in exec->syncobj_values
Paulo Zanoni [Tue, 17 Jan 2023 22:28:37 +0000 (14:28 -0800)]
hasvk: don't leave undefined values in exec->syncobj_values

This is the Hasvk version of Anv's:
  ad6a036a6815 ("anv: don't leave undefined values in exec->syncobj_values")

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20800>
(cherry picked from commit 80196aaa5bf0e2070038d3b9f2b0177bf096c545)

17 months agoradv: fix ignoring graphics shader stages that don't need to be imported
Samuel Pitoiset [Wed, 25 Jan 2023 08:30:48 +0000 (09:30 +0100)]
radv: fix ignoring graphics shader stages that don't need to be imported

If a shader stage is already imported from a library it should be
properly ignored.

Fixes recent CTS dEQP-VK.pipeline.fast_linked_library.misc.unused_shader_stages*.

Fixes: c8765c5244a ("radv: ignore shader stages that don't need to be imported with GPL")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20899>
(cherry picked from commit b97fee432c23435bc6c6ef3f27af54c2538cc36b)

17 months agovulkan/wsi/wayland: improve same gpu detection
Lionel Landwerlin [Wed, 25 Jan 2023 18:16:23 +0000 (20:16 +0200)]
vulkan/wsi/wayland: improve same gpu detection

Some compositor like KWin do not return the render node.

v2: Make sure we test if only drm_info.hasPrimary is true (Jason)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: db42ed1e04 ("vulkan/wsi/wl: correctly find whether the compositor uses the same GPU")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8139
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20914>
(cherry picked from commit e27d217fb16be3d72bc07822cd499ac78f8cc110)

17 months agointel/fs: Fix src and dst types of LOAD_PAYLOAD ACP entries during copy propagation.
Francisco Jerez [Tue, 27 Sep 2022 22:28:48 +0000 (15:28 -0700)]
intel/fs: Fix src and dst types of LOAD_PAYLOAD ACP entries during copy propagation.

The ACP entries created by copy propagation to track the implied
copies of LOAD_PAYLOAD instructions don't model the behavior of
LOAD_PAYLOAD correctly, since (as of 41868bb6824c6106a55c844) header
moves are implicitly retyped to UD and the destination of non-header
copies implicitly uses the same type as the corresponding source, even
though the ACP entries created for such copies could incorrectly
represent a type conversion, which can lead to mis-optimization of the
program.

According to Marcin, this fixes the func.mesh.ext.workgroup_id.task.q0
crucible test.

Fixes: 41868bb6824c6106a55c844 ("i965/fs: Rework the fs_visitor LOAD_PAYLOAD instruction")
Reported-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Tested-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18980>
(cherry picked from commit 7b5e9336298b00eeffeec738adbcc0acc7683868)

17 months agozink: fix VK_DYNAMIC_STATE_LINE_WIDTH usage
Mike Blumenkrantz [Wed, 25 Jan 2023 14:24:16 +0000 (09:24 -0500)]
zink: fix VK_DYNAMIC_STATE_LINE_WIDTH usage

add a special tracker here to set the state only when necessary

Fixes: 659c39fafbb ("zink: rework primitive rasterization type logic")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20886>
(cherry picked from commit 06a125942bef6a03a12b67f691ab4ad86e49c2df)

17 months agopanfrost: fix off-by-one when exporting format modifiers
Italo Nicola [Tue, 24 Jan 2023 14:23:56 +0000 (14:23 +0000)]
panfrost: fix off-by-one when exporting format modifiers

`count` should not be incremented before the check, because it causes
the modifiers array to be filled starting from position 1 instead of 0.

This bug causes one less format modifier to be available than would
otherwise be expected, which could then lead to a dmabuf query failing
in situations where a supported modifier wouldn't be advertised.

It also causes garbage data to be advertised as a modifier in position 0
of the array, although this is not very likely to cause issues.

Fixes: 2a1217513 ("panfrost: Implement panfrost_query_dmabuf_modifiers")
Cc: mesa-stable
Signed-off-by: Italo Nicola <italonicola@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20879>
(cherry picked from commit 6c446377ff22d981191929de21cedecf519fe70f)

17 months agoradeonsi/gfx11: fix ge_cntl programming
Pierre-Eric Pelloux-Prayer [Fri, 13 Jan 2023 15:13:46 +0000 (16:13 +0100)]
radeonsi/gfx11: fix ge_cntl programming

gfx11 renamed PRIM_GRP_SIZE to VERTS_PER_SUBGRP but another change was
was missed.

Update our code based on PAL's UniversalCmdBuffer::CalcGeCntl function
(especially useVgtOnchipCntlForTess being false for gfx11).

Fixes: 25a66477d02 ("radeonsi/gfx11: register changes")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20728>
(cherry picked from commit f73cdda983e72b57dc8769ec9f234dddcafd2491)

17 months agozink: Re-emit the SpvBuiltInSampleMask access chain each load.
Emma Anholt [Thu, 19 Jan 2023 00:59:11 +0000 (16:59 -0800)]
zink: Re-emit the SpvBuiltInSampleMask access chain each load.

Otherwise, the access chain you emitted last time may not dominate the
current use.

Fixes the following validation failure in
dEQP-GLES31.functional.shaders.sample_variables.sample_mask_in.bits_unique_per_sample.multisample_texture_2:

  UNASSIGNED-CoreValidation-Shader-InconsistentSpirv(ERROR / SPEC):
  msgNum: 7060244 - Validation Error: [
  UNASSIGNED-CoreValidation-Shader-InconsistentSpirv ] Object 0: handle =
  0x55cf3cea2c60, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x6bbb14 |
  SPIR-V module not valid: ID '67[%67]' defined in block '23[%23]' does
  not dominate its use in block '31[%31]'

Fixes: 8899f6a19857 ("zink: fix gl_SampleMaskIn spirv generation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20756>
(cherry picked from commit 4286633eec3e134d462edd16629311ed0e0e7934)

17 months agozink: Fix up mismatches of memory model vs addressing model.
Emma Anholt [Wed, 18 Jan 2023 22:29:55 +0000 (14:29 -0800)]
zink: Fix up mismatches of memory model vs addressing model.

MemoryModelVulkan was left out for CSes using it.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20756>
(cherry picked from commit 1e4deb3b8962a26e7eaffbde5688ee766b62a8b5)

17 months agozink: Fix validation failure for maxLod < minLod.
Emma Anholt [Tue, 17 Jan 2023 21:33:32 +0000 (13:33 -0800)]
zink: Fix validation failure for maxLod < minLod.

GL lets you set a silly state, so do something plausible instead of
undefined.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20756>
(cherry picked from commit adf81044d4cb929733ca64ed1fd30725577b0c66)

17 months agozink: Add missing Flat decorations on some inputs.
Emma Anholt [Thu, 12 Jan 2023 22:43:38 +0000 (14:43 -0800)]
zink: Add missing Flat decorations on some inputs.

Fixes validation failures:

Test case 'dEQP-GLES31.functional.android_extension_pack.shaders.es32.extension_directive.oes_sample_variables'..
MESA: error: Validation Error: [
UNASSIGNED-CoreValidation-Shader-InconsistentSpirv ] Object 0: handle =
0x563a1838b790, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x6bbb14 |
SPIR-V module not valid: [VUID-StandaloneSpirv-Flat-04744] Fragment
OpEntryPoint operand 31 with Input interfaces with integer or float type
must have a Flat decoration for Entry Point id 4.
%gl_SampleId = OpVariable %_ptr_Input_uint Input

Test case 'KHR-GL46.shader_ballot_tests.ShaderBallotAvailability'..
MESA: error: Validation Error: [ UNASSIGNED-CoreValidation-Shader-InconsistentSpirv ] Object 0: handle = 0x5558e12f17e0, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x6bbb14 | SPIR-V module not valid: [VUID-StandaloneSpirv-Flat-04744] Fragment OpEntryPoint operand 28 with Input interfaces with integer or float type must have a Flat decoration for Entry Point id 4.
  %gl_SubgroupLocalInvocationId = OpVariable %_ptr_Input_uint Input

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20756>
(cherry picked from commit 2a33d509ca1c2dcfc6cb9b05d75fda5576cd902e)

17 months agointel/compiler/mesh: handle const data in task & mesh programs
Marcin Ślusarz [Tue, 24 Jan 2023 09:52:10 +0000 (10:52 +0100)]
intel/compiler/mesh: handle const data in task & mesh programs

Started showing up when nir_opt_large_constants call was moved in 88756cee8da.
Fixes dEQP-VK.mesh_shader.ext.smoke.monolithic.fullscreen_gradient*

Suggested-by: Kenneth Graunke <kenneth@whitecape.org>
Fixes: 88756cee8da ("intel/compiler: Run nir_opt_large_constants before scalarizing consts")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20876>
(cherry picked from commit 536a2acfc20ab6b21d83f8ca7a1829087ba98032)

17 months agointel/fs: avoid cmod optimization on instruction with different write_mask
Lionel Landwerlin [Mon, 23 Jan 2023 09:58:50 +0000 (11:58 +0200)]
intel/fs: avoid cmod optimization on instruction with different write_mask

I've been running into failures with tests like :

dEQP-VK.robustness.robustness2.bind.notemplate.rgba32i.unroll.nonvolatile.uniform_buffer_dynamic.no_fmt_qual.len_4.samples_1.1d.frag

With the load_global_const_block_intel NIR intrinsic, you can load a
vec8/vec16 with a predicate. The predicate is correctly uniformized to
feed into the SEND instruction's flag register.

The problem is that a series of optimization first remove the
find_live_channel and then changes the broadcast into a simple MOV
instruction, on the assumption that the first channel is always active
if there is not control flow. This is correct.

But after that the cmod optimzation will remove this instruction :

   mov.nz.f0.0(16) null:D, vgrf16+0.0<0>:D NoMask

because it seems to be equivalent to :

   cmp.g.f0.0(16) vgrf16:D, vgrf12:D, 63d

In this case vgrf16 is the predicate to the load block SEND
instruction. Since the execution mask is different between both, some
of the channels of the SEND instruction end up not being loaded or
loaded with the wrong predication and we end up with incorrect UBO
data.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20852>
(cherry picked from commit a50d2fdb4654984061bffb9293abb4178cbe435f)

17 months agozink: use actual swapchain object for surface comparison
Mike Blumenkrantz [Fri, 20 Jan 2023 18:11:37 +0000 (13:11 -0500)]
zink: use actual swapchain object for surface comparison

the outer swapchain object is persistent, which means checking it
will never yield an update after the first check

fixes #8122

Fixes: b2739c9f005 ("zink: set surface->dt when updating swapchain"
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20814>
(cherry picked from commit 474ed4b877e0988acdb9329de485f2e339812680)

17 months agoradeonsi: respect smoothing_enabled
Erik Faye-Lund [Fri, 20 Jan 2023 10:39:27 +0000 (11:39 +0100)]
radeonsi: respect smoothing_enabled

When this was last changed, the smoothing_enabled flag seems to have
been forgotten about, breaking line-smoothing (and probably also polygon
smoothing).

Fixes: 4147add280e ("radeonsi: update db_eqaa even if msaa is disabled")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20810>
(cherry picked from commit 9f4f131f2e9403f8757be33b3a5c10bcbe9b7644)

17 months agoegl/dri2: avoid undefined unlocks
Jonathan Gray [Sun, 15 Jan 2023 02:48:10 +0000 (13:48 +1100)]
egl/dri2: avoid undefined unlocks

unlocks were incorrectly added to paths using dri2_egl_display() as
well as those using dri2_egl_display_lock()

pthread_mutex_unlock() when unlocked is documented by posix as
being undefined behaviour.  On OpenBSD pthread_mutex_unlock() will call
abort(3) if this happens.

Fixes: f1efe037dfd ("egl/dri2: Add display lock")
Reviewed-by: Rob Clark <robclark@freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20712>
(cherry picked from commit 0594b3c143d48c5f37f705abb03f18fbbabbc6b0)

17 months agoglthread: handle GL_*_ARRAY in glEnable/Disable
Marek Olšák [Mon, 26 Dec 2022 19:59:53 +0000 (14:59 -0500)]
glthread: handle GL_*_ARRAY in glEnable/Disable

Surprisingly, the GL compatibility profile allows these in both
glEnableClientState and glEnable.

Fixes: 0b1dd185913 - glthread: track which vertex array attribs are enabled

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20824>
(cherry picked from commit 777166cc66c7330e66e493ee804d32d1f87d297a)

17 months agomesa: allow GL_UNSIGNED_INT64_ARB as vertex format for ARB_bindless_texture
Marek Olšák [Wed, 21 Dec 2022 10:45:51 +0000 (05:45 -0500)]
mesa: allow GL_UNSIGNED_INT64_ARB as vertex format for ARB_bindless_texture

This wasn't implemented, but the spec requires it.

Fixes: 1fe7b1f9724 - mesa: implement ARB_bindless_texture

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20824>
(cherry picked from commit 721526227cd8311b7bb6dd2f8718fcfbd3b24038)