aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa
Commit message (Collapse)AuthorAgeFilesLines
* glsl,driconf: add allow_glsl_120_subset_in_110 for SPECviewperf13Marek Olšák2020-06-232-0/+8
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5459>
* glthread: handle ARB_vertex_attrib_bindingMarek Olšák2020-06-234-26/+403
| | | | | | | | | This handles ARB_vertex_attrib_binding for vertex uploads correctly. Before this, the extension might have led to crashes if non-VBO vertex attribs were present. Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5303>
* glthread: rename non_vbo_attrib_mask -> user_buffer_mask, attribs -> buffersMarek Olšák2020-06-233-106/+106
| | | | | | | just a cleanup, no change in behavior Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5303>
* util: rename xmlpool.h to driconf.hEric Engestrom2020-06-2212-12/+12
| | | | | | | To make it clearer what it is and does. Signed-off-by: Eric Engestrom <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5440>
* driconf: drop now unused translation facilityEric Engestrom2020-06-229-25/+24
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5440>
* mesa: Add PrimitiveRestartFixedIndex to gl_constantsNeil Roberts2020-06-224-2/+16
| | | | | | | | | | | | This is a fine-grained subset of the NV_primitive_restart extension that only uses the fixed indices provided by GLES 3.0. There’s no public extension to advertise this behaviour so the bool is added to gl_constants instead of gl_extensions. Reviewed-by: Eric Anholt <[email protected]> Reviewed by: Erik Faye-Lund <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5559>
* intel/compiler: Always apply sample mask on Vulkan.Arcady Goldmints-Orlov2020-06-191-0/+2
| | | | | | | | | | | With OpenGL, shader writes to the sample mask are ignored when not rendering to a multisample render target. However, on Vulkan, writes to the sample mask have still have their effect in that case. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3016 Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5156>
* st/mesa: make texture views inherit compressed_data storagePierre-Eric Pelloux-Prayer2020-06-192-6/+27
| | | | | | | Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2775 Fixes: c3fafa127a0 ("st/mesa: generalize code for the compressed texture map/unmap fallback") Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5492>
* mesa/main: fix inverted conditionErik Faye-Lund2020-06-181-1/+1
| | | | | | | | | | | I accidentally got one of the conditions wrong here. Sorry for the mixup. See ttps://gitlab.freedesktop.org/mesa/mesa/-/issues/3134 for details. Fixes: b112e62ba48 ("mesa/main: do not allow MESA_ycbcr_texture enums on gles") Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5532>
* st/mesa: lower images when neededKarol Herbst2020-06-181-0/+3
| | | | | | | | | | The "st/pbo download FS" builtin shader uses image derefs, so even with PIPE_CAP_NIR_IMAGES_AS_DEREF set to 0 drivers ended up with those. Signed-off-by: Karol Herbst <[email protected]> Reviewed-by: Gert Wollny <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5480>
* st/mesa: account for "loose", per-mipmap level textures in CopyImageSubDataDanylo Piliaiev2020-06-181-2/+4
| | | | | | | | | | | | We may have "loose", per-image gallium resources. The src_image->Level may not match the gallium resource texture level. In such case it is prescribed (in st_AllocTextureImageBuffer) to specify mipmap level as zero. Fixes: f04f13622f3e71bee057d60a6be9c53b92b56cc9 Signed-off-by: Danylo Piliaiev <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5477>
* i965: replace all dup() with os_dupfd_cloexec()Eric Engestrom2020-06-182-3/+5
| | | | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5369>
* st_glsl_to_nir: fix potential use after freeTimothy Arceri2020-06-171-2/+14
| | | | | | | | | | | | | | | When updating the shader info used by GL for the API we must remember to make sure to restore the pointers to its own name and label strings. There are a number of ways in which the nir copy of these strings can be freed before GL is finished with them. Fixes: 36be8c2fcf94 ("st/glsl_to_nir: use nir_shader_gather_info()") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2875 Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5488>
* mesa/gles3: add support for GL_EXT_shader_group_voteDave Airlie2020-06-161-0/+1
| | | | | | | | This is the GLES equivalent to ARB_shader_group_vote. Passes: KHR-GLES31.core.shader_group_vote.* Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5490>
* i965: drop dead #include "config.h"Eric Engestrom2020-06-131-4/+0
| | | | | | | | | | There hasn't been a config.h in a long time (it was an artifact of the autotool build). Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Dylan Baker <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5350>
* i965: Work around incorrect usage of glDrawRangeElements in UE4Danylo Piliaiev2020-06-091-0/+20
| | | | | | | | | | | | | | | | | | | | | | | Unreal Engine 4 has a bug in usage of glDrawRangeElements, causing it to be called with a number of vertices in place of "end" parameter (which specifies the maximum array index contained in indices). Since there is unknown amount of games affected and we could not identify that a game is built with UE4 - we are forced to make a blanket workaround, disregarding max_index in range calculations. Fortunately all such calls look like: glDrawRangeElements(GL_TRIANGLES, 0, 3, 3, ...); So we are able to narrow down this workaround. This was uncovered after b684030c3a656ffdbc93581856034e0982db46fd broke a bunch of UE4 games. Cc: 20.1 <[email protected]> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2917 Signed-off-by: Danylo Piliaiev <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5203>
* i965: fix export of GEM handlesLionel Landwerlin2020-06-044-5/+152
| | | | | | | | | | | | | | | | | | | | | | | | We reuse DRM file descriptors internally. Therefore when we export a GEM handle we must do so in the file descriptor used externally. v2: Fix dmabuf leak Fix GEM handle leaks by tracking exported handles v3: Check os_same_file_description error (Michel) Don't create multiple exports for a given GEM table v4: Add WARN_ONCE (Ken) v5: Remove blank line (Ian) Remove unused field (Ian) Signed-off-by: Lionel Landwerlin <[email protected]> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2882 Fixes: 4094558e8643 ("i965: share buffer managers across screens") Tested-by: Eric Engestrom <[email protected]> Tested-by: Tapani Pälli <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4861>
* i965: don't forget to set screen on duped imageLionel Landwerlin2020-06-041-0/+1
| | | | | | | | | | We'll start using this field more for querying image properties. Without it we run into a crash. Signed-off-by: Lionel Landwerlin <[email protected]> Cc: <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4861>
* mesa: Fix NetBSD compiler macro.Vinson Lee2020-06-031-1/+1
| | | | | | | | | Reported-by: Rafał Mikrut <[email protected]> Fixes: a63b90712aad ("mesa: also check for __NetBSD__") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3015 Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5191>
* i965: call brw_nir_lower_uniforms() after uniform linking is completeTimothy Arceri2020-06-031-2/+1
| | | | | | | | | | | | | | | | i965 currently uses the NIR uniform linker for spirv support. Until now the only reason there has been no issue with calling the lowering pass before the linker is because no garbage collection is done between the calls. An upcoming change to the linker will add an optimisation to resize unform arrays where possible. Because lowering causes the array defs to no longer be used the new optimisation ends up resizing the arrays to 0. To fix this we move the lowering call after the linking calls. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4910>
* nir: add callback to nir_remove_dead_variables()Timothy Arceri2020-06-032-8/+12
| | | | | | | | | | | | This allows us to do API specific checks before removing variable without filling nir_remove_dead_variables() with API specific code. In the following patches we will use this to support the removal of dead uniforms in GLSL. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4797>
* gallium: add shader caps INT16 and FP16_DERIVATIVESMarek Olšák2020-06-021-3/+4
| | | | | Reviewed-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5002>
* glsl: lower mediump partial derivativesMarek Olšák2020-06-021-0/+1
| | | | | | Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5002>
* glsl: lower mediump integer types to int16 and uint16Marek Olšák2020-06-022-2/+3
| | | | | | Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5002>
* glsl: handle int16 and uint16 types and add instructions for mediumpMarek Olšák2020-06-022-0/+8
| | | | | | | | v2: add more changes to ir_validate.cpp Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5002>
* meson: use gnu_symbol_visibility argumentDylan Baker2020-06-019-23/+27
| | | | | | | | | | This uses a meson builtin to handle -fvisibility=hidden. This is nice because we don't need to track which languages are used, if C++ is suddenly added meson just does the right thing. Acked-by: Matt Turner <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4740>
* glthread: don't upload for glDraw inside a display list and always syncMarek Olšák2020-05-302-17/+54
| | | | | | | | | | | | | Let the vbo module handle it, not glthread. This handles functions set in vbo_initialize_save_dispatch. Fixes: 2840bc3065b ("glthread: upload non-VBO vertices and indices for non-Indirect non-IBM draws") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3001 Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Tested-by: Dieter Nützel <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5246>
* intel: Add helper to calculate GPGPU_WALKER::RightExecutionMaskCaio Marcelo de Oliveira Filho2020-05-271-5/+2
| | | | | | | Suggested by Jason. Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5142>
* iris, i965: Update limits for ARB_compute_variable_group_sizeCaio Marcelo de Oliveira Filho2020-05-271-15/+6
| | | | | | | | | The CS compiler now produces multiple SIMD variants, so the previous trade-off between "always using SIMD32" and "having a smaller max invocations" is now gone. Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5142>
* iris, i965: Drop max_variable_local_sizeCaio Marcelo de Oliveira Filho2020-05-271-9/+0
| | | | | | | | | This was used to decide which SIMD width to generate code for ARB_compute_variable_group_size. Now that compiler will generate multiple SIMD widths, this information is unused. Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5142>
* i965: Use new helper functions to pick SIMD variant for CSCaio Marcelo de Oliveira Filho2020-05-274-31/+43
| | | | | | | | Also expand the existing i965 helper to return the other CS related paramters. Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5142>
* i965: Use SATURATEAlyssa Rosenzweig2020-05-261-1/+1
| | | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5100>
* mesa/swrast: Use SATURATEAlyssa Rosenzweig2020-05-262-3/+3
| | | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5100>
* mesa: Use SATURATEAlyssa Rosenzweig2020-05-267-13/+13
| | | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5100>
* mesa/st: Use memset to zero out structKristian H. Kristensen2020-05-261-1/+2
| | | | | | | | | | | | This is a non-stop source of warnings and build breakage. memset works everywhere. src/mesa/state_tracker/st_tgsi_lower_depth_clamp.c:354:45: warning: suggest braces around initialization of subobject [-Wmissing-braces] Reviewed-by: Rob Clark <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5174>
* glsl_to_tgsi: add fallthrough commentsMarcin Ślusarz2020-05-261-0/+5
| | | | | | | | All those cases are supposed to hit an assert in ir_binop_bit_or case. Signed-off-by: Marcin Ślusarz <[email protected]> Reviewed-by: Tapani Pälli <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5133>
* i965: replace fnv1a hash function with xxhashDmitriy Nester2020-05-251-3/+5
| | | | | | | | | xxhash is faster than fnv1a in almost all circumstances, so we're switching to it globally. Signed-off-by: Dmytro Nester <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4020>
* st/mesa: Clear texture's views when texture is removed from Shared->TexObjectsDanylo Piliaiev2020-05-254-1/+28
| | | | | | | | | | | | | If texture is shared between several contexts, calling glDeleteTextures will remove it from ctx->Shared->TexObjects - which makes impossible for contexts, when destroyed, to release their views to this texture. Which leaves dangling pointers to destroyed contexts. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2960 Signed-off-by: Danylo Piliaiev <[email protected]> Reviewed-by: Tapani Pälli <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5106>
* mesa: Fix double-lock of Shared->FrameBuffers and usage of wrong mutexDanylo Piliaiev2020-05-221-8/+1
| | | | | | | | | Fixes: 7534c536ca0f4b2b123200f421460094034f37a3 Fixes: 8cfb3e4ee57070ff45e7534a986a20c5fd649dc7 Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3024 Signed-off-by: Danylo Piliaiev <[email protected]> Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5160>
* dri_util: Update internal_format to GL_RGB8 for MESA_FORMAT_R8G8B8X8_UNORMNataraj Deshpande2020-05-211-1/+1
| | | | | | | | | | | | | | | | The commit helps to resolve GL_INVALID_OPERATION error returned during CTS test when Android format RGBX8888 fallback to RGBA8888 and then set color with glTexSubImage2D(format=GL_RGB). Fixes android.hardware.nativehardware.cts.AHardwareBufferNativeTests: #SingleLayer_ColorTest_GpuSampledImageCanBeSampled_R8G8B8X8_UNORM Cc: <[email protected]> Fixes: bf576772ab4d ("dri_util: add driImageFormatToSizedInternalGLFormat function") Signed-off-by: Nataraj Deshpande <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Tapani Pälli <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5034>
* i965: add identifier BOLionel Landwerlin2020-05-203-1/+42
| | | | | | | | | | A buffer added to all execbufs so that we can attribute a batch that caused a hang to a particular driver. v2: Reuse workaround BO Signed-off-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3203>
* i965: store workaround_bo offsetLionel Landwerlin2020-05-204-5/+13
| | | | | | | | | This offset store the location where we read/write into the workaround_bo. It will allow to select a different address later, leaving the beginning of the buffer to some other use. Signed-off-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3203>
* blorp: rename workaround address functionLionel Landwerlin2020-05-201-1/+1
| | | | | Signed-off-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3203>
* intel/perf: make pipeline statistic query loading optionalLionel Landwerlin2020-05-201-1/+2
| | | | | | | | | On Vulkan most of those are already covered by standard queries so add the ability to skip them. Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2775>
* intel: Store the aperture size in devinfo.Rafael Antognolli2020-05-151-12/+1
| | | | | | | | | | | | We will later use the devinfo from iris_bufmgr, where we don't have access to the screen pointer. And since we are moving it, we can reuse it in Anv and i965. v2: return error code and check for it on Anv (Lionel). v3: Remove anv_gem_get_aperture() from anv_private.h and stubs (Lionel). Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5043>
* meta: Remove support for multisample blitsIan Romanick2020-05-142-407/+15
| | | | | | | | | | | | | | | Since i965 no longer uses this function for blitting color buffers, there is no driver left that will ever support multisample textures and use _mesa_meta_BlitFramebuffer. v2: Delete blit_state::msaa_shaders and enum blit_msaa_shader. text data bss dec hex filename 12243286 1344936 1290748 14878970 e308fa before/lib64/dri/i965_dri.so 12240398 1344936 1290748 14876082 e2fdb2 after/lib64/dri/i965_dri.so Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>
* meta: Coalesce the GLSL and FF paths in meta_clearIan Romanick2020-05-141-14/+9
| | | | | | | | | text data bss dec hex filename 12243286 1344936 1290748 14878970 e308fa before/lib64/dri/i965_dri.so 12243286 1344936 1290748 14878970 e308fa after/lib64/dri/i965_dri.so Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>
* meta: Use same vertex coordinates for GLSL and FF clearsIan Romanick2020-05-141-12/+8
| | | | | | | | | text data bss dec hex filename 12243446 1344936 1290748 14879130 e3099a before/lib64/dri/i965_dri.so 12243286 1344936 1290748 14878970 e308fa after/lib64/dri/i965_dri.so Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>
* meta: Stop frobbing MatrixModeIan Romanick2020-05-142-33/+21
| | | | | | | | | | | | | | | text data bss dec hex filename 12243510 1344936 1290748 14879194 e309da before/lib64/dri/i965_dri.so 12243446 1344936 1290748 14879130 e3099a after/lib64/dri/i965_dri.so v2: Use _mesa_load_matrix to set the projection matrix instead of frobbing dirty bits directly. Suggested by Jason. Clean up some comments in the neighborhood. Since glOrtho isn't called, there's no point in mentioning it in the comment. Only _mesa_load_identity_matrix on the projection matrix when it isn't set to an ortho matrix. Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>
* mesa: Add function to calculate an orthographic projectionIan Romanick2020-05-142-10/+38
| | | | | | | | | | | | | Unlike the existing _math_matrix_ortho, the new _math_float_ortho function just stores the calculated matrix in an array of floats. It does not multiply the new matrix with data already stored. text data bss dec hex filename 12243486 1344936 1290748 14879170 e309c2 before/lib64/dri/i965_dri.so 12243510 1344936 1290748 14879194 e309da after/lib64/dri/i965_dri.so Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/856>