aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* gallium/hash_table: remove some function wrappersMarek Olšák2020-02-2632-220/+108
| | | | | | Reviewed-by: Kristian H. Kristensen <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3722> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3722>
* gallium/hash_table: turn it into a wrapper around util/hash_tableMarek Olšák2020-02-2629-281/+74
| | | | | Reviewed-by: Kristian H. Kristensen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3722>
* gallium/hash_table: use the same callback signatures as util/hash_tableMarek Olšák2020-02-265-40/+40
| | | | | Reviewed-by: Kristian H. Kristensen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3722>
* gallium/hash_table: consolidate hash tables with FD keysMarek Olšák2020-02-268-142/+58
| | | | | Reviewed-by: Kristian H. Kristensen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3722>
* gallium/hash_table: consolidate hash tables with pointer keysMarek Olšák2020-02-2616-184/+47
| | | | | Reviewed-by: Kristian H. Kristensen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3722>
* amd/addrlib: fix build on non-x86 platformsGreg V2020-02-261-4/+6
| | | | | | | | | regparm(0) attribute does not work on aarch64 (and presumably powerpc64 and others). Default to not specifying any calling convention on non-amd64/i386 platforms. Reviewed-by: Marek Olšák <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3567> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3567>
* tgsi_to_nir: set num_images and num_samplers with holes correctlyMarek Olšák2020-02-261-0/+14
| | | | | | | | | | This fixes the copy_uv shader from st/omx, because it uses image 0 and 2 and image 1 isn't declared. Cc: 20.0 <[email protected]> Reviewed-by: Rob Clark <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3936> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3936>
* nir: Drop nir_tex_instr::texture_array_sizeJason Ekstrand2020-02-2611-24/+1
| | | | | | | | | | It's set by lots of things and we spend a lot of time maintaining it but no one actually uses the value for anything useful. Reviewed-by: Dave Airlie <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3940> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3940>
* freedreno/computerator: Fix defined-but-not-used warnings from lex/yacc.Eric Anholt2020-02-262-0/+4
| | | | | Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3954> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3954>
* turnip: Fix compiler warning about casting a nondispatchable handle.Eric Anholt2020-02-261-1/+1
| | | | | | Fixes: 1c5d84fcae71 ("turnip: hook up cmdbuffer event set/wait") Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3916> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3916>
* panfrost: Remove some more prints to stdoutTomeu Vizoso2020-02-263-6/+6
| | | | | | | | They can confuse test runners. Signed-off-by: Tomeu Vizoso <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3876>
* mesa/st: toggle EXT_texture_norm16 based on format supportTapani Pälli2020-02-261-0/+12
| | | | | | | | | | Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2556 Fixes: 7f467d4f738 ("mesa: GL_EXT_texture_norm16 extension plumbing") Signed-off-by: Tapani Pälli <[email protected]> Acked-by: Lionel Landwerlin <[email protected]> Reviewed-by: Alejandro Piñeiro <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3941> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3941>
* i965: toggle on EXT_texture_norm16Tapani Pälli2020-02-261-0/+1
| | | | | | | Fixes: 7f467d4f738 ("mesa: GL_EXT_texture_norm16 extension plumbing") Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3941>
* mesa: introduce boolean toggle for EXT_texture_norm16Tapani Pälli2020-02-262-1/+2
| | | | | | | Fixes: 7f467d4f738 ("mesa: GL_EXT_texture_norm16 extension plumbing") Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3941>
* nir/lower_double_ops: add note for lowering modJuan A. Suarez Romero2020-02-261-0/+4
| | | | | | | | | | | Add a note to clarify that while Vulkan allows mod(x,y) to be in [0, y] range, OpenGL does not allow it, so the lowering ensures the result is always in [0, y) range, as this lowering is shared by the Vulkan and OpenGL implementation. Reviewed-by: Elie Tournier <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3315> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3315>
* radv: fix creating null devices if KHR_display is enabledSamuel Pitoiset2020-02-261-1/+1
| | | | | | | | | | Found this while replaying pipelines with Fossilize, it worked fine with vkpipeline-db. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3959> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3959>
* radv: make use of ac_gpu_info::max_wave64_per_simdSamuel Pitoiset2020-02-261-6/+1
| | | | | | | Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3899> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3899>
* radv/gfx10: adjust the number of VGPRs used to compute wavesSamuel Pitoiset2020-02-262-4/+2
| | | | | | Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3899>
* radv/gfx10: adjust the LDS size used to compute wavesSamuel Pitoiset2020-02-261-4/+2
| | | | | | | | It's 128KB per CU in WGP. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3899>
* radv/gfx10: adjust SGPRs/VGPRs related infoSamuel Pitoiset2020-02-261-8/+11
| | | | | | Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3899>
* radv/gfx10: adjust the number of simd per compute unitSamuel Pitoiset2020-02-261-1/+2
| | | | | | Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3899>
* ac: add more ac_gpu_info related shader fieldsSamuel Pitoiset2020-02-262-3/+33
| | | | | | Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3899>
* ac,radeonsi: add ac_gpu_info::lds_size_per_cuSamuel Pitoiset2020-02-263-7/+10
| | | | | | | | | Both RadeonSI and RADV use the WGP mode, so we can assume 128KB on GFX10. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3899>
* radv: implement a dummy winsys for creating devices without AMDGPUSamuel Pitoiset2020-02-2615-75/+568
| | | | | | | | | | | To allow developers to test the compiler backends without having any AMD GPUs. To create a null device, set eg. RADV_FORCE_FAMILY=polaris10 in your environment. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3872> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3872>
* egl: Factor out dri2_add_pbuffer_configs_for_visuals {device,surfaceless}.Mathias Fröhlich2020-02-264-92/+46
| | | | | | | | | v2: dri2_add_configs_for_visuals -> dri2_add_pbuffer_configs_for_visuals Reviewed-by: Emil Velikov <[email protected]> Signed-off-by: Mathias Fröhlich <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3790> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3790>
* egl: Fix A2RGB10 platform_{device,surfaceless} PBuffer configs.Mathias Fröhlich2020-02-264-14/+81
| | | | | | | | | | | | | | | The __DRI_IMAGE_FORMAT_* part wants to be handled for the *101010 type formats as well. Factor out a common function for that task. That again makes the piglit egl_ext_device_base test work again for hardware drivers. v2: Factor out a common function for that task. v3: dri2_pbuffer_visuals -> dri2_pbuffer_visuals Reviewed-by: Emil Velikov <[email protected]> Fixes: 9acb94b6236 "egl: Enable 10bpc EGLConfigs for platform_{device,surfaceless}" Signed-off-by: Mathias Fröhlich <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3790>
* turnip: enable fullDrawIndexUint32/independentBlend/dualSrcBlend/logicOpJonathan Marek2020-02-261-4/+4
| | | | | | | | These are already implemented but missing from VkPhysicalDeviceFeatures. Signed-off-by: Jonathan Marek <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3923> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3923>
* turnip: enable sampleRateShading featureJonathan Marek2020-02-263-5/+10
| | | | | | | | There's still a TODO related to key->sample_shading, but it doesn't look like it changes anything in ir3, so it works without that. Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3923>
* intel/tools: Do not print type/qualifiers/name for c_literalMatt Turner2020-02-251-1/+1
| | | | | | | | External tools may wish to choose their own type, qualifiers, and name, so do not emit our own. Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3952> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3952>
* intel/tools: Allow i965_disasm to disassemble c_literal input typeSagar Ghuge2020-02-251-36/+103
| | | | | | | | | | | | | | | | Added extra argument named 'type' which can be 'bin' (default if ommited) or 'c_literal' for input type. Change 'binary-path' argument name to 'input-path'. v2: - Use util_dynarray for assembly (Matt Turner) - Read data in 8 bytes chunk (Matt Turner) - Fix help option (Akeem Abodunrin) Signed-off-by: Sagar Ghuge <[email protected]> Reviewed-by: Matt Turner <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3952>
* intel/tools: Print c_literals 4 byte wideSagar Ghuge2020-02-251-4/+12
| | | | | | | | | | | | We already print hex value a byte wide, instead of printing c_literal byte wide, we can print it 4 byte wide, which gives us 2 different combinations. v2: Fix the aliasing issue (Matt Turner) Signed-off-by: Sagar Ghuge <[email protected]> Reviewed-by: Matt Turner <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3952>
* intel/tools: Add test for state register as sourceSagar Ghuge2020-02-252-0/+2
| | | | | | Signed-off-by: Sagar Ghuge <[email protected]> Reviewed-by: Matt Turner <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3952>
* intel/tools: Add test for address register as sourceSagar Ghuge2020-02-252-0/+2
| | | | | | Signed-off-by: Sagar Ghuge <[email protected]> Reviewed-by: Matt Turner <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3952>
* intel/tools: Set correct address register file and number in i965_asmSagar Ghuge2020-02-251-1/+3
| | | | | | | | | We need to use already created brw_reg and set correct file type, register number and sub register number. Signed-off-by: Sagar Ghuge <[email protected]> Reviewed-by: Matt Turner <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3952>
* intel/tools: Handle STATE_REG in typed source operandSagar Ghuge2020-02-251-2/+4
| | | | | | | | | | Also stop using brw_sr0_reg function as it return new brw_reg, we already created register, all we have to is just set file, register number and subnr. Signed-off-by: Sagar Ghuge <[email protected]> Reviewed-by: Matt Turner <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3952>
* intel/tools: Handle illegal instructionSagar Ghuge2020-02-251-0/+10
| | | | | | | | | Allow assembler to handle illegal instruction even though mesa doesn't use it but might be required at some point in future. Signed-off-by: Sagar Ghuge <[email protected]> Reviewed-by: Matt Turner <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3952>
* anv: Always enable the data cacheJason Ekstrand2020-02-253-10/+1
| | | | | | | | | | | | | | | | | Because we set the needs_data_cache bit from the NIR during compilation, any time a shader was pulled out of the pipeline cache, we wouldn't set the bit and the data cache was disabled. Fortunately, on Gen8+, this bit is ignored because we always use the ALL section in the L3$ config instead of separate DC and RO sections. On Gen7, however, this meant that we were basically never running with the data cache enabled and our compute performance was suffering massively because of it. This commit improves Geekbench 5 scores on my Haswell GT3 by roughly 330% (no, that's not a typo). Cc: [email protected] Reviewed-by: Lionel Landwerlin <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3912> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3912>
* intel/aub_dump: stub the waits when overriding the deviceLionel Landwerlin2020-02-251-0/+19
| | | | | | | | | | We don't actually want to wait on anything, just complete submitting the commands as fast as possible. Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Rafael Antognolli <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3705> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3705>
* intel/tools/aub_dump: fix crash when using the default legacy contextLionel Landwerlin2020-02-251-4/+5
| | | | | | | | | When execbuffer->rsvd1 == 0, the legacy context is used. Ensure we have context created for this. Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Rafael Antognolli <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3705>
* intel/tools/aub_dump: move aub file initialization to maybe_init()Lionel Landwerlin2020-02-251-38/+33
| | | | | | Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Rafael Antognolli <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3705>
* lima: expose fragment shader derivatives capabilityIcenowy Zheng2020-02-261-0/+3
| | | | | | | | | | | | | Support for fragment shader derivatives has landed in the Lima PP compiler for a long time, but its capability is not exposed yet. Expose the support now. Signed-off-by: Icenowy Zheng <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Vasily Khoruzhick <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3944> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3944>
* v3d: Sync on last CS when non-compute stage uses resource written by CSJose Maria Casanova Crespo2020-02-256-25/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a resource is written by a compute shader and then used by a non-compute stage we sync on last compute job to guarantee that the resource has been completely written when the next stage reads resources. In the other cases how flushes are done guarantee the serialization of the writes and reads. To reproduce the failure the following tests should be executed in batch as last test don't fail when run isolated: KHR-GLES31.core.shader_image_load_store.basic-allFormats-load-fs KHR-GLES31.core.shader_image_load_store.basic-allFormats-loadStoreComputeStage KHR-GLES31.core.shader_image_load_store.basic-allTargets-load-cs KHR-GLES31.core.shader_image_load_store.advanced-sync-vertexArray v2: Use fence dep instead of bo_wait (Eric Anholt) v3: Rename struct names (Iago Toral) Document why is not needed on graphics->compute case. (Iago Toral) Follow same code pattern of the other update of in_sync_bcl. v4: Fixed comments style. (Iago Toral) Fixes KHR-GLES31.core.shader_image_load_store.advanced-sync-vertexArray Reviewed-by: Iago Toral Quiroga <[email protected]> CC: 19.3 20.0 <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2700> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2700>
* nir: fix gl_nir_lower_images for bindless imagesMarek Olšák2020-02-251-6/+5
| | | | | | | | Fixes: 7342b859afb5a7e7f9fb1813e7ab3a55a1c8a704 Reviewed-by: Eric Anholt <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3938> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3938>
* freedreno/computerator: fix build dependencyRob Clark2020-02-251-0/+1
| | | | | | | | | | Ensure the generated register headers are built before computerator uses them. Reported-by: Clayton Craft <[email protected]> Signed-off-by: Rob Clark <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3939> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3939>
* glx/drisw: fix shm put image fallbackDave Airlie2020-02-251-4/+3
| | | | | | | | | | | | The fallback to the non-shm put path used the wrong width here as the pixmap is still allocated in a shared segment, so the width needs to reflect that. Fixes: 02c3dad0f3b4 ("Call shmget() with permission 0600 instead of 0777") Reviewed-by: Michel Dänzer <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3823> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3823>
* glx/drisw: return false if shmid == -1Dave Airlie2020-02-251-0/+3
| | | | | | | | | | | | If an attempt to create an shm pixmap in XCreateDrawable fails then it ends up with the shmid == -1. This means the get image path needs to fallback so return false in this case to use the non-shm get image path. Fixes: 02c3dad0f3b4 ("Call shmget() with permission 0600 instead of 0777") Reviewed-by: Michel Dänzer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3823>
* glx/drisw: add getImageShm2 pathDave Airlie2020-02-251-6/+16
| | | | | | | | | This adds return values to the get image path, so the caller can fallback. Fixes: 02c3dad0f3b4 ("Call shmget() with permission 0600 instead of 0777") Reviewed-by: Michel Dänzer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3823>
* dri: add another get shm variant.Dave Airlie2020-02-251-0/+3
| | | | | | | | | | | | | | | | | | | | | | | When Brian in 02c3dad0f3b4d26e0faa5cc51d06bc50d693dcdc restricted the shm permissions it means we hit the fallback paths in some scenarios we hadn't before. When you use Xephyr to xdmcp from one user to another the new perms stop the X server (running as user a) attaching to the SHM segments from gnome-shell (running as user b). In this case however only the GLX side of the code had insight into this, and the dri could was meant of fall back, and it worked for put image fine but the get image path was broken, since there was no indication in the broken case of the need to fallback. This adds a return type to a new interface member that lets the caller know it has to fallback. Fixes: 02c3dad0f3b4 ("Call shmget() with permission 0600 instead of 0777") Reviewed-by: Michel Dänzer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3823>
* intel/isl: Add isl_aux_info.c to Makefile.sourcesJason Ekstrand2020-02-251-0/+1
| | | | | | | | | | This should fix the Android build. Fixes: 58d4749e56 "isl: Add a module which manages aux resolves" Reviewed-by: Nanley Chery <[email protected]> Reported-by: Clayton Craft <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3934> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3934>
* intel/blorp: Implement GEN:BUG:1605967699.Rafael Antognolli2020-02-251-8/+44
| | | | | | | | | | v2: - Update comments and refactor code (Lionel). - Only apply workaround to stencil resolves. Acked-by: Lionel Landwerlin <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3909> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3909>