platform/upstream/mesa.git
2 years agopan/va: Add some whitespace to Valhall disassembly
Alyssa Rosenzweig [Fri, 6 May 2022 16:57:14 +0000 (12:57 -0400)]
pan/va: Add some whitespace to Valhall disassembly

Makes it easier to read.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16409>

2 years agoradeon/vcn: engage all available jpeg engines
Sathishkumar S [Wed, 27 Apr 2022 13:12:57 +0000 (18:42 +0530)]
radeon/vcn: engage all available jpeg engines

use multiple contexts and submit in a round robin scheme to make
use of all the available jpeg engines simultaneously. During mjpeg
decode context need not be same across frames as they are discrete
jpeg images.

V2: number of ctx to be equal to number of engines and fix indent (Leo)
V3: decide ctx count in create_decoder, don't add a video param (Boyuan)

Signed-off-by: Sathishkumar S <sathishkumar.sundararaju@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16355>

2 years agoRevert "gallivm: use LLVM opaque pointers in lp_bld_tgsi_soa.c"
Mihai Preda [Mon, 9 May 2022 12:04:52 +0000 (15:04 +0300)]
Revert "gallivm: use LLVM opaque pointers in lp_bld_tgsi_soa.c"

This reverts commit 32a55651cf4ecb830801acafe6410df3f66afca9.

Fixes: #6439 #6453

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16400>

2 years agoac/nir: skip s_barrier if TCS patches are within subgroup
Rhys Perry [Wed, 4 May 2022 12:04:04 +0000 (13:04 +0100)]
ac/nir: skip s_barrier if TCS patches are within subgroup

fossil-db (Sienna Cichlid):
Totals from 538 (0.33% of 162293) affected shaders:
Instrs: 125288 -> 123682 (-1.28%)
CodeSize: 712384 -> 705960 (-0.90%)
Latency: 632139 -> 623596 (-1.35%)
InvThroughput: 218491 -> 215600 (-1.32%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16356>

2 years agoaco: skip s_barrier if TCS patches are within subgroup
Rhys Perry [Wed, 4 May 2022 12:03:52 +0000 (13:03 +0100)]
aco: skip s_barrier if TCS patches are within subgroup

fossil-db (Sienna Cichlid):
Totals from 518 (0.32% of 162293) affected shaders:
Instrs: 124943 -> 123908 (-0.83%)
CodeSize: 708764 -> 704624 (-0.58%)
Latency: 618380 -> 618279 (-0.02%)
InvThroughput: 214061 -> 214051 (-0.00%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16356>

2 years agopanfrost: Fix unwanted valgrind message related to restart_index
Patrick Lerda [Mon, 9 May 2022 14:22:43 +0000 (16:22 +0200)]
panfrost: Fix unwanted valgrind message related to restart_index

As a reminder primitive_restart should always be checked before any access to restart_index.

It seems that restart_index is only initialized when primitive_restart is set to a non-zero
value. This patch is equivalent to the previous code but written in a way that the compiler
will test primitive_restart first before trying to read restart_index.

With commit ad864a7c150a15221fb9c85d3214d4bcb6db7518:
Conditional jump or move depends on uninitialised value(s)
   at 0xD33F1EC: panfrost_is_implicit_prim_restart (pan_cmdstream.c:2907)
   by 0xD33F1EC: panfrost_emit_primitive (pan_cmdstream.c:3073)
   by 0xD33F1EC: panfrost_draw_emit_tiler (pan_cmdstream.c:3440)
   by 0xD33F1EC: panfrost_direct_draw (pan_cmdstream.c:3595)
   by 0xD340467: panfrost_draw_vbo (pan_cmdstream.c:3889)
   by 0xD219119: u_vbuf_draw_vbo (u_vbuf.c:1498)
   by 0xD1C81F9: cso_multi_draw (cso_context.c:1644)
   by 0xCFBA19B: _mesa_draw_arrays.part.11 (draw.c:1324)
   by 0xCFBADA1: _mesa_draw_arrays (draw.c:1295)
   by 0xCFBADA1: _mesa_DrawArrays (draw.c:1533)
   by 0xD32EB: gl_vao_draw_data (in /usr/local/bin/mpv)
 Uninitialised value was created by a stack allocation
   at 0xCFBA14E: _mesa_draw_arrays.part.11 (draw.c:1289)

With mesa-22.1.0-rc4:
Conditional jump or move depends on uninitialised value(s)
   at 0xD36369C: panfrost_is_implicit_prim_restart (pan_cmdstream.c:2895)
   by 0xD36369C: panfrost_draw_emit_tiler (pan_cmdstream.c:3023)
   by 0xD36369C: panfrost_direct_draw (pan_cmdstream.c:3215)
   by 0xD3649BF: panfrost_draw_vbo (pan_cmdstream.c:3494)
   by 0xD23DE7D: u_vbuf_draw_vbo (u_vbuf.c:1498)
   by 0xD1ECBD1: cso_multi_draw (cso_context.c:1644)
   by 0xCFD60FF: _mesa_draw_arrays.part.11 (draw.c:1324)
   by 0xCFD6D11: _mesa_draw_arrays (draw.c:1295)
   by 0xCFD6D11: _mesa_DrawArrays (draw.c:1533)
   by 0xD32EB: gl_vao_draw_data (in /usr/local/bin/mpv)
 Uninitialised value was created by a stack allocation
   at 0xCFD60B2: _mesa_draw_arrays.part.11 (draw.c:1289)

Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Reviewed-by: Alyssa Rosenzweig alyssa@collabora.com
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16389>

2 years agopanvk: Call nir_opt_trivial_continues
Alyssa Rosenzweig [Mon, 25 Apr 2022 20:54:11 +0000 (16:54 -0400)]
panvk: Call nir_opt_trivial_continues

Fixes
dEQP-VK.glsl.indexing.tmp_array.vec2_static_loop_write_static_loop_read_vertex
which otherwise fails due to nir_opt_sink being "clever" around unused
loop exit blocks.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16155>

2 years agopanvk: Conform viewport code to Vulkan spec
Alyssa Rosenzweig [Mon, 25 Apr 2022 15:32:39 +0000 (11:32 -0400)]
panvk: Conform viewport code to Vulkan spec

The depth equations weren't quite right, with spec citations to prove it. This
didn't fix the test I was debugging, but it surely fixed /something/.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16155>

2 years agopanvk: Stub pipeline cache using the common code
Alyssa Rosenzweig [Mon, 25 Apr 2022 13:55:59 +0000 (09:55 -0400)]
panvk: Stub pipeline cache using the common code

Moves the needle from Crash to Fail on:

dEQP-VK.synchronization.op.single_queue.fence.write_clear_color_image_read_image_compute.image_64x64x8_r32_sfloat

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16155>

2 years agomesa/st: Fix building tests on macOS
Alyssa Rosenzweig [Sun, 8 May 2022 01:09:11 +0000 (21:09 -0400)]
mesa/st: Fix building tests on macOS

Due to an upstream bug, macOS can't link empty static libraries.
There is open Meson bug about this use case [1], though arguably the issue
is macOS's implementation of ar. Of course, the functionality is mostly
useless.

The removal of GLSL-to-TGSI trivialized a static library, causing
linking to fail. This commit garbage collects the useless library.
This fixes the build on macOS:

   FAILED: src/mesa/state_tracker/tests/libmesa_st_test_common.a
   rm -f src/mesa/state_tracker/tests/libmesa_st_test_common.a && ar csr src/mesa/state_tracker/tests/libmesa_st_test_common.a
   ar: no archive members specified
   usage:  ar -d [-TLsv] archive file ...
      ar -m [-TLsv] archive file ...
      ar -m [-abiTLsv] position archive file ...
      ar -p [-TLsv] archive [file ...]
      ar -q [-cTLsv] archive file ...
      ar -r [-cuTLsv] archive file ...
      ar -r [-abciuTLsv] position archive file ...
      ar -t [-TLsv] archive [file ...]
      ar -x [-ouTLsv] archive [file ...]

[1] https://github.com/mesonbuild/meson/issues/3735

Fixes: 214c774ba6c ("mesa/st: Remove st_glsl_to_tgsi.")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Emma Anholt <emma@anholt.net>
Tested-by: Vinson Lee <vlee@freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16385>

2 years agov3dv: don't leak variant QPU when pipeline compile fails
Iago Toral Quiroga [Mon, 9 May 2022 07:14:28 +0000 (09:14 +0200)]
v3dv: don't leak variant QPU when pipeline compile fails

Typically we free them when we upload the QPU code from the variant
to the assembly BO in the pipeline, however, if there is an error
during pipeline compilation that may not happen and we would leak
the QPU code from the variants.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16370>

2 years agov3dv: expose VK_KHR_pipeline_executable_properties
Iago Toral Quiroga [Fri, 6 May 2022 10:01:09 +0000 (12:01 +0200)]
v3dv: expose VK_KHR_pipeline_executable_properties

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16370>

2 years agov3dv: implement vkGetPipelineExecutableStatisticsKHR
Iago Toral Quiroga [Fri, 6 May 2022 08:59:45 +0000 (10:59 +0200)]
v3dv: implement vkGetPipelineExecutableStatisticsKHR

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16370>

2 years agov3d/compiler: add more stats to prog_data
Iago Toral Quiroga [Fri, 6 May 2022 09:24:07 +0000 (11:24 +0200)]
v3d/compiler: add more stats to prog_data

So we can expose them via VK_KHR_pipeline_executable_properties.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16370>

2 years agov3dv: implement vkGetPipelineExecutablePropertiesKHR
Iago Toral Quiroga [Fri, 6 May 2022 08:56:49 +0000 (10:56 +0200)]
v3dv: implement vkGetPipelineExecutablePropertiesKHR

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16370>

2 years agov3dv: implement vkGetPipelineExecutableInternalRepresentationsKHR
Iago Toral Quiroga [Thu, 5 May 2022 10:51:05 +0000 (12:51 +0200)]
v3dv: implement vkGetPipelineExecutableInternalRepresentationsKHR

We can output the final NIR form (which we store in the pipeline
stage) and the final QPU (which we can retrive from the assembly BO).

We should be careful not to fetch the shaders from the cache when
VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR is present,
since we don't store NIR shader in the pipeline shader data that is
cached, so a cache hit would leave us without the NIR shader. The spec
already contemplates this scenario:

   "Enabling this flag must not affect the final compiled pipeline but
    may disable pipeline caching or otherwise affect pipeline creation
    time."

We also prevent disposing of the pipeline stages the variants when this
flag is requested to ensure this information is available later when
calling vkGetPipelineExecutableInternalRepresentationsKHR.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16370>

2 years agov3dv: expose separateDepthStencilLayouts
Iago Toral Quiroga [Mon, 9 May 2022 10:57:13 +0000 (12:57 +0200)]
v3dv: expose separateDepthStencilLayouts

This is actually required by Vulkan 1.2 and to expose the extension,
so let's conform to this requirement, we don't really care since
image layouts are not relevant to our current implementation.

Fixes: 1442d77bc5 ('v3dv: trivially implement VK_KHR_separate_depth_stencil_layouts')
Fixes: dEQP-VK.info.device_mandatory_features
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16398>

2 years agovulkan/wsi: Make wsi_win32_surface_get_capabilities() return the current extent
Boris Brezillon [Wed, 27 Apr 2022 15:57:25 +0000 (17:57 +0200)]
vulkan/wsi: Make wsi_win32_surface_get_capabilities() return the current extent

We can get that information with GetClientRect(), and some applications
complain when the window size doesn't match the currentExtent values.

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16394>

2 years agonir/lower_shader_calls: put inserted instructions into a dummy block
Lionel Landwerlin [Wed, 20 Apr 2022 07:51:48 +0000 (10:51 +0300)]
nir/lower_shader_calls: put inserted instructions into a dummy block

When moving code into the main block or loop blocks, put the code into
its own :

    if(true) { ... }

block so that we avoid break/continue/return issues.

v2: Also take care of the main block with return instructions

v3: Make deletion more obvious with dummy if blocks (Jason)

v4: Fixup assert for loops (Lionel)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 8dfb240b1f06 ("nir: Add raytracing shader call lowering pass.")
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16036>

2 years agonir/lower_shader_calls: don't insert code after break/continue
Lionel Landwerlin [Wed, 20 Apr 2022 07:54:36 +0000 (10:54 +0300)]
nir/lower_shader_calls: don't insert code after break/continue

When moving code from below to the insertion cursor point, if the
cursor points to a jump instruction, don't bother inserting the code.
It would break the break/continue assumptions of NIR and would not be
executed anyway.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 8dfb240b1f06 ("nir: Add raytracing shader call lowering pass.")
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16036>

2 years agonir/lower_shader_calls: don't use nop instructions as cursors
Lionel Landwerlin [Tue, 19 Apr 2022 12:11:17 +0000 (15:11 +0300)]
nir/lower_shader_calls: don't use nop instructions as cursors

Stop using nop instructions which are causing issues with
break/continue, instead use a nir_cursor (which brings its share of
pain).

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 8dfb240b1f06 ("nir: Add raytracing shader call lowering pass.")
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16036>

2 years agonir/cf: Return a cursor from nir_cf_extract as well
Jason Ekstrand [Tue, 26 Apr 2022 13:53:31 +0000 (08:53 -0500)]
nir/cf: Return a cursor from nir_cf_extract as well

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16036>

2 years agonir/cf: return cursor after insertion of cf_list
Lionel Landwerlin [Tue, 19 Apr 2022 12:05:04 +0000 (15:05 +0300)]
nir/cf: return cursor after insertion of cf_list

This will be useful to cut code from one location and paste it at
another place and later keep pasting after the previous insertions.

v2: update comment (Jason)
    deal with stiching 2 empty blocks (Jason)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16036>

2 years agopanvk: Allow PAN_BO_INVISIBLE to be mapped with dump flag
Manas Chaudhary [Thu, 21 Apr 2022 04:12:02 +0000 (09:42 +0530)]
panvk: Allow PAN_BO_INVISIBLE to be mapped with dump flag

Signed-off-by: Manas Chaudhary <manas.chaudhary@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16072>

2 years agopanvk: Add PANVK_DEBUG_DUMP dump mappings
Manas Chaudhary [Thu, 21 Apr 2022 03:51:34 +0000 (09:21 +0530)]
panvk: Add PANVK_DEBUG_DUMP dump mappings

Signed-off-by: Manas Chaudhary <manas.chaudhary@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16072>

2 years agotu: Implement VK_EXT_image_view_min_lod
Danylo Piliaiev [Tue, 3 May 2022 09:21:07 +0000 (12:21 +0300)]
tu: Implement VK_EXT_image_view_min_lod

Relevant tests:
 dEQP-VK.texture.mipmap.*.image_view_min_lod.*

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16292>

2 years agogallivm: move to new pass manager to handle coroutines change.
Dave Airlie [Tue, 3 May 2022 01:42:24 +0000 (11:42 +1000)]
gallivm: move to new pass manager to handle coroutines change.

LLVM 15 ripped out the legacy coroutine passes. This means moving
to the new pass manager is the best option to move forward and is
long overdue.

I've tried to recreate the same set of passes in the new pass mgr
as the old, but I expect some tweaking may be needed to confirm this.

Acked-by: Kai Wasserbäch <kai@dev.carbon-project.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16289>

2 years agov3d: allow TFU blitting for single layer textures
Juan A. Suarez Romero [Fri, 6 May 2022 11:56:17 +0000 (13:56 +0200)]
v3d: allow TFU blitting for single layer textures

TFU just handles 2D textures.

But for 2D array textures, cubemaps and 3D textures, if only one layer needs
to be blitted, then it is like a simple 2D texture, and thus we can also
use the TFU.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16372>

2 years agoci: traces: virgl: reenable previously crashing Godot trace
David Heidelberg [Wed, 4 May 2022 15:23:43 +0000 (17:23 +0200)]
ci: traces: virgl: reenable previously crashing Godot trace

Visually verified, screenshot does look correctly.

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16335>

2 years agosvga: Set lower_bitops for vpu9 screen.
Emma Anholt [Thu, 5 May 2022 00:16:47 +0000 (17:16 -0700)]
svga: Set lower_bitops for vpu9 screen.

Since these don't have native integers, nir_lower_io generating ishls
instead of amuls for uniform addressing math runs afoul of
nir_lower_int_to_float.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16339>

2 years agogallium/clover: pass -no-opaque-pointers to Clang
Thomas Debesse [Mon, 25 Apr 2022 07:01:01 +0000 (09:01 +0200)]
gallium/clover: pass -no-opaque-pointers to Clang

Clang opaque pointers have been enabled by default
but the Clover code currently expects them to be disabled.

Signed-off-by: Thomas Debesse <dev@illwieckz.net>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6342
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16129>

2 years agovulkan/wsi/x11: Ensure we have the required number of images for acquire.
Bas Nieuwenhuizen [Wed, 23 Feb 2022 01:27:46 +0000 (02:27 +0100)]
vulkan/wsi/x11: Ensure we have the required number of images for acquire.

For games that needs >1 at the same time the existing check wasn't enough.

Cc: mesa-stable
Reviewed-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15132>

2 years agowsi/x11: Don't leak xcb_get_geometry_reply_t.
Georg Lehmann [Sat, 7 May 2022 23:30:42 +0000 (01:30 +0200)]
wsi/x11: Don't leak xcb_get_geometry_reply_t.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6443
Fixes: 44a20baeb8b ("wsi/x11: Avoid using xcb_wait_for_special_event in FIFO modes")
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16384>

2 years agoradeonsi: Use nir_fold_16bit_image_load_store_conversions.
Georg Lehmann [Wed, 4 May 2022 10:42:00 +0000 (12:42 +0200)]
radeonsi: Use nir_fold_16bit_image_load_store_conversions.

Remove conversions using d16 image_load/image_store.

Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16319>

2 years agonir/lower_tex: Copy more fields in lower_tex_to_txd and friends
Icecream95 [Thu, 14 Apr 2022 01:30:39 +0000 (13:30 +1200)]
nir/lower_tex: Copy more fields in lower_tex_to_txd and friends

Fixes NIR validation errors for OpenMW on Panfrost.

Fixes: 1f97819fbe5 ("panfrost: Emulate GL_CLAMP on Bifrost")
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15939>

2 years agovenus: extend buffer cache to cover layering usage
Yiwei Zhang [Fri, 6 May 2022 19:30:01 +0000 (19:30 +0000)]
venus: extend buffer cache to cover layering usage

Layering clients, e.g. angle and zink, use wide sets of buffer usage
flags because they don't know what a resource will be used for in the
majority cases, which is on the other hand making it easier for layering
to optimize resource management.

This change adds a super-set usage to the buffer cache entries, that
will mostly ensure no cache-miss for non-sparsed buffer usages. Since
that involves usage bits from extensions, we'll mask out those disabled
ones upon querying but will use the static cache create info for
checking cache hit for code simplicity.

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16379>

2 years agogallium/clover: LLVM setLangDefaults moved from clangFrontend to clangBasic
Thomas Debesse [Mon, 18 Apr 2022 02:21:02 +0000 (04:21 +0200)]
gallium/clover: LLVM setLangDefaults moved from clangFrontend to clangBasic

Signed-off-by: Thomas Debesse <dev@illwieckz.net>
Reviewed-by: Kai Wasserbäch <kai@dev.carbon-project.org>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16002>

2 years agoanv: advertise rectangularLines only for Gen10+
Chia-I Wu [Thu, 17 Mar 2022 18:03:18 +0000 (11:03 -0700)]
anv: advertise rectangularLines only for Gen10+

We use the non-strict algorithm (with parallelograms) prior to Gen10 for
wide lines.  We can not advertise rectangularLines.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Fixes: f6e7de41d7b ("anv: Implement VK_EXT_line_rasterization")
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15432>

2 years agollvmpipe: never infer early zs tests when fbfetch is active
Mike Blumenkrantz [Thu, 5 May 2022 13:55:28 +0000 (09:55 -0400)]
llvmpipe: never infer early zs tests when fbfetch is active

this breaks zs fbfetch

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16346>

2 years agonir/gather_info: flag fbfetch on subpass image loads
Mike Blumenkrantz [Thu, 5 May 2022 13:54:18 +0000 (09:54 -0400)]
nir/gather_info: flag fbfetch on subpass image loads

might not be able to determine which output is being read, but these
are definitely fbfetch uses (from lavapipe)

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16346>

2 years agoaco: split load_sbt_amd result
Rhys Perry [Fri, 25 Mar 2022 18:00:56 +0000 (18:00 +0000)]
aco: split load_sbt_amd result

fossil-db (Sienna Cichlid):
Totals from 11 (0.01% of 162293) affected shaders:
Instrs: 47857 -> 47738 (-0.25%)
CodeSize: 261556 -> 261080 (-0.18%)
Latency: 1176822 -> 1176245 (-0.05%)
InvThroughput: 784549 -> 784165 (-0.05%)
Copies: 5959 -> 5840 (-2.00%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16203>

2 years agoradv: use SMEM for a few load_global
Rhys Perry [Fri, 15 Apr 2022 12:30:41 +0000 (13:30 +0100)]
radv: use SMEM for a few load_global

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16203>

2 years agoradv: remove subtractions in address calculations
Rhys Perry [Fri, 15 Apr 2022 12:15:10 +0000 (13:15 +0100)]
radv: remove subtractions in address calculations

Additions by positive integers can more easily be combined into the
access.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16203>

2 years agoradv: allow LBVH on GFX6+
Rhys Perry [Fri, 15 Apr 2022 11:57:36 +0000 (12:57 +0100)]
radv: allow LBVH on GFX6+

Use integer atomics on GFX8/9.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16203>

2 years agoradv: add radv_has_shader_buffer_float_minmax
Rhys Perry [Thu, 5 May 2022 11:35:09 +0000 (12:35 +0100)]
radv: add radv_has_shader_buffer_float_minmax

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16203>

2 years agoaco/optimizer: re-combine and copy-propagate p_create_vector(p_split_vector)
Daniel Schürmann [Wed, 16 Mar 2022 14:14:29 +0000 (15:14 +0100)]
aco/optimizer: re-combine and copy-propagate p_create_vector(p_split_vector)

Totals from 309 (0.23% of 134913) affected shaders: (GFX10.3)
CodeSize: 1853812 -> 1857732 (+0.21%); split: -0.05%, +0.27%
Instrs: 340810 -> 341789 (+0.29%); split: -0.07%, +0.36%
Latency: 3301814 -> 3301774 (-0.00%); split: -0.02%, +0.02%
InvThroughput: 590473 -> 590914 (+0.07%); split: -0.00%, +0.08%
Copies: 28751 -> 29731 (+3.41%); split: -0.87%, +4.28%
PreSGPRs: 14010 -> 14028 (+0.13%); split: -0.01%, +0.14%

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15414>

2 years agoaco/ra: improve split_vector register assignment if the operand is not killed
Daniel Schürmann [Wed, 16 Mar 2022 16:25:35 +0000 (17:25 +0100)]
aco/ra: improve split_vector register assignment if the operand is not killed

This allows for more coalescing when lowering the copies.

Totals from 44801 (33.21% of 134913) affected shaders: (GFX10.3)
VGPRs: 1513264 -> 1513248 (-0.00%)
CodeSize: 113354240 -> 113172872 (-0.16%); split: -0.16%, +0.00%
Instrs: 21648793 -> 21603397 (-0.21%); split: -0.21%, +0.00%
Latency: 95762290 -> 95757403 (-0.01%); split: -0.01%, +0.00%
InvThroughput: 15427354 -> 15427341 (-0.00%); split: -0.00%, +0.00%
Copies: 2065330 -> 2019933 (-2.20%); split: -2.20%, +0.00%

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15414>

2 years agoaco: don't re-create vectors for load_barycentric_* intrinsics
Daniel Schürmann [Wed, 16 Mar 2022 14:49:05 +0000 (15:49 +0100)]
aco: don't re-create vectors for load_barycentric_* intrinsics

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15414>

2 years agozink: restore conditional ordering for query begin/end
Mike Blumenkrantz [Thu, 5 May 2022 13:08:33 +0000 (09:08 -0400)]
zink: restore conditional ordering for query begin/end

this is the case which (also) handles query[0] for primgen queries,
so it can't be an else case

Fixes: a9451f25995 ("zink: use VK_EXT_primitives_generated_query when available")

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16345>

2 years agoradv: emit fewer framebuffer registers
Mike Blumenkrantz [Thu, 10 Jun 2021 11:13:05 +0000 (07:13 -0400)]
radv: emit fewer framebuffer registers

only the changed cbuf index registers need to be updated, not all of them

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11299>

2 years agoutil/blitter: fix sampler restore with 0 saved samplers
Mike Blumenkrantz [Tue, 26 Apr 2022 12:32:54 +0000 (08:32 -0400)]
util/blitter: fix sampler restore with 0 saved samplers

in a sequence where a driver saves 0 sampler/views before calling
u_blitter, the previous state of having 0 sampler/views bound would
not be restored as expected, resulting in stale sampler/views which
could affect behavior before new sampler/views were bound

cc: mesa-stable

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16178>

2 years agointel: fix stall debug option
Lionel Landwerlin [Wed, 4 May 2022 23:37:27 +0000 (02:37 +0300)]
intel: fix stall debug option

Missing the parsing bit.

Fixes: 317512e0387a ("anv/intel: add a new debug flag for stalling after every draw/dispatch")
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16338>

2 years agofrontend/dri: allow swapped BGR->RGB channel order for MSAA color buffers
Marek Olšák [Sat, 2 Apr 2022 01:43:42 +0000 (21:43 -0400)]
frontend/dri: allow swapped BGR->RGB channel order for MSAA color buffers

This only applies to MSAA visuals. The MSAA channel order doesn't have to
match the visual, but some drivers don't support MSAA with BGR.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16327>

2 years agomesa: consider the sample count when choosing a texture format
Marek Olšák [Wed, 27 Apr 2022 11:35:48 +0000 (07:35 -0400)]
mesa: consider the sample count when choosing a texture format

The set of supported MSAA formats can be smaller than the set of supported
non-MSAA formats.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16326>

2 years agoglsl: Remove unused lower_variable_index_to_cond_assign.
Emma Anholt [Tue, 12 Apr 2022 17:46:42 +0000 (10:46 -0700)]
glsl: Remove unused lower_variable_index_to_cond_assign.

It's been replaced by nir_lower_indirect_derefs().

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agoglsl: Remove EmitNoLoops and the associated lower_jumps(lower_break=true) code.
Emma Anholt [Tue, 12 Apr 2022 05:15:46 +0000 (22:15 -0700)]
glsl: Remove EmitNoLoops and the associated lower_jumps(lower_break=true) code.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agocompiler/glsl: Remove the dead parts of build_program_resource_list().
Emma Anholt [Sat, 9 Apr 2022 00:54:24 +0000 (17:54 -0700)]
compiler/glsl: Remove the dead parts of build_program_resource_list().

These have all moved to NIR linking.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agomesa/st: Clean up a bit of st_prepare_vertex_program().
Emma Anholt [Fri, 8 Apr 2022 23:48:16 +0000 (16:48 -0700)]
mesa/st: Clean up a bit of st_prepare_vertex_program().

Now that the input attrib mapping is gone, this is simpler.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agoglsl: Drop the dead MOD_TO_FLOOR path.
Emma Anholt [Mon, 28 Mar 2022 22:54:31 +0000 (15:54 -0700)]
glsl: Drop the dead MOD_TO_FLOOR path.

It's now called lower_fmod in NIR.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agoglsl: Remove the unused lower_if_to_cond_assign.
Emma Anholt [Mon, 28 Mar 2022 22:42:40 +0000 (15:42 -0700)]
glsl: Remove the unused lower_if_to_cond_assign.

Now that everything goes through NIR, nir_opt_peephole_select has replaced
it.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agogallium: Remove now-unused shader caps.
Emma Anholt [Mon, 28 Mar 2022 22:37:33 +0000 (15:37 -0700)]
gallium: Remove now-unused shader caps.

The only interesting ones here were LOWER_IF_THRESHOLD (which previously
had connected to some lowering in GLSL that was broken in the face of side
effects), and FMA (which turned GLSL IR's fma() into TGSI_OPCODE_FMA
instead of MAD).

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agoglsl: Retire the non-NIR GLSL linking paths.
Emma Anholt [Thu, 24 Mar 2022 00:22:08 +0000 (17:22 -0700)]
glsl: Retire the non-NIR GLSL linking paths.

Now that we have only GLSL->NIR as a path in the frontend, we can rely on
the NIR linking support.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agomesa/st: Remove now unused TGSI paths from disk cache.
Emma Anholt [Tue, 7 Sep 2021 23:46:55 +0000 (16:46 -0700)]
mesa/st: Remove now unused TGSI paths from disk cache.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agogallium/tgsi: Remove tgsi_emulate.
Eric Anholt [Thu, 7 Jan 2021 21:43:00 +0000 (13:43 -0800)]
gallium/tgsi: Remove tgsi_emulate.

Now that the TGSI frontend paths in mesa/st are gone, this code is unused.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agomesa: Remove unused Mesa IR PROGRAM_* register files.
Eric Anholt [Wed, 6 Jan 2021 22:40:18 +0000 (14:40 -0800)]
mesa: Remove unused Mesa IR PROGRAM_* register files.

Now that glsl-to-tgsi is gone, a bunch of this is dead.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agoglsl: Remove UBO reference lowering.
Eric Anholt [Thu, 17 Dec 2020 18:22:18 +0000 (10:22 -0800)]
glsl: Remove UBO reference lowering.

All UBO-supporting drivers now go through the NIR path, which does a
better job of it.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agotgsi_scan: Remove unused input_array_last/output_array_last.
Eric Anholt [Fri, 11 Dec 2020 23:31:53 +0000 (15:31 -0800)]
tgsi_scan: Remove unused input_array_last/output_array_last.

Last use removed in "radeonsi: remove TGSI" this year.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agomesa/st: Remove TGSI-only shader lowering code.
Eric Anholt [Thu, 10 Dec 2020 19:45:39 +0000 (11:45 -0800)]
mesa/st: Remove TGSI-only shader lowering code.

These are no longer called.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agomesa/st: Drop the attrib remapping in st_prepare_vertex_program().
Emma Anholt [Fri, 8 Apr 2022 18:07:13 +0000 (11:07 -0700)]
mesa/st: Drop the attrib remapping in st_prepare_vertex_program().

This was only used in the GLSL-to-TGSI path, which is no longer.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agomesa/st: Remove TGSI shader program variant handling.
Emma Anholt [Fri, 8 Apr 2022 18:11:58 +0000 (11:11 -0700)]
mesa/st: Remove TGSI shader program variant handling.

We no longer have anything generating gl_programs with TGSI in them since
retiring GLSL-to-TGSI.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agomesa/st: Remove st_glsl_to_tgsi.
Emma Anholt [Fri, 8 Apr 2022 17:56:17 +0000 (10:56 -0700)]
mesa/st: Remove st_glsl_to_tgsi.

It is no longer called, and can be retired.

Fixes: #1924, #822, #6073

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agomesa/st: Always generate NIR from GLSL, and use nir_to_tgsi for TGSI drivers.
Eric Anholt [Thu, 10 Dec 2020 19:45:39 +0000 (11:45 -0800)]
mesa/st: Always generate NIR from GLSL, and use nir_to_tgsi for TGSI drivers.

The NIR path through the frontend is effectively the only one maintained
for a quite a while now.  We can see that effect with !15540, where the
TGSI generation path was regressed to assertion fail on real-world
shaders, and nobody noticed until I came along trying to test the
NIR-to-TGSI transition.

We already have a nir_to_tgsi() call for translating NIR representation
for ARB programs into TGSI before handing them off to the driver.  This
change makes that path get taken for GLSL programs as well.

This is the minimum change to get all the drivers on NIR from GLSL, to
give a simple commit to bisect too.  The dead code removal comes next.

Now every driver benefits from shared NIR optimizations for GLSL, and we
can start retiring GLSL optimizations.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8044>

2 years agoci/iris: Add a bunch of APL and KBL flakes recently.
Emma Anholt [Thu, 5 May 2022 22:17:43 +0000 (15:17 -0700)]
ci/iris: Add a bunch of APL and KBL flakes recently.

I got hit by one of them trying to merge !8044.  Just update the list.

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

2 years agokopper: pass the current context to dri_flush
Mike Blumenkrantz [Thu, 5 May 2022 17:19:51 +0000 (13:19 -0400)]
kopper: pass the current context to dri_flush

passing the drawable's context leads to desync and crashing if the app
is using multiple threads and multiple contexts

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16351>

2 years agokopper: invalidate drawables when resizing textures in place
Mike Blumenkrantz [Thu, 5 May 2022 16:06:14 +0000 (12:06 -0400)]
kopper: invalidate drawables when resizing textures in place

this guarantees that swapchains shared between contexts will stay
in sync

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16351>

2 years agoaco: ensure that definitions fixed to operands have matching regclasses
Rhys Perry [Fri, 22 Apr 2022 15:46:21 +0000 (16:46 +0100)]
aco: ensure that definitions fixed to operands have matching regclasses

If the operand is not killed, the definition needs to be large enough so
that the new location for the operand does not intersect with the old
location.

Fixes with zink:
KHR-GL45.shader_image_load_store.basic-allTargets-atomicCS
KHR-GL45.shader_image_load_store.basic-allTargets-atomicGS
KHR-GL45.shader_image_load_store.basic-allTargets-atomicVS

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6276
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16106>

2 years agoci/iris: Demote APL deqp to manual-only for now.
Emma Anholt [Thu, 5 May 2022 16:40:37 +0000 (09:40 -0700)]
ci/iris: Demote APL deqp to manual-only for now.

it's been flaking with "2022-05-05 16:29:49.055151: [0m[31mERROR - Failure
getting run results: parsing results: Reading from dEQP: timed out waiting
for fd to be ready (See \"//results/c32.r1.log\")" and a pile of missings
since the brief "whoops, HW CI failed to listen to the test exit code"
regression.

The only ways I know of to hit this case would be:

1) The deqp binary abruptly wedges on its own.  This happens with NFS
failures sometimes, but the rest of the run went fine and we never got the
kernel complaining about NFS, so that seems unlikely.

2) The stderr pipe filled up before stdout was completed, and deqp got
wedged trying to output stderr (happens sometimes when you do like
NIR_DEBUG=print in your run).

Both of these seem unlikely, given that we've got a big .qpa file that
made it all the way to writing out test case durations at the end of the
run before abruptly terminating.  Why didn't we have at least some of the
test results parsed?

The next deqp-runner release we integrate will solve #2, and cleans up
these error paths a bunch, so I'm hoping we get more information soon.

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

2 years agopanfrost: Increase the maximum tiler heap size
Alyssa Rosenzweig [Wed, 4 May 2022 16:16:27 +0000 (12:16 -0400)]
panfrost: Increase the maximum tiler heap size

Required to avoid tiler heap out-of-memory condition on Valhall on tests
including:

dEQP-GLES31.functional.draw_indirect.compute_interop.large.drawelements_combined_grid_1200x1200_drawcount_8

This test passes on Bifrost without the fix because varyings are only allocated
from the tiler heap on Valhall.

Minimal perf or memory usage impacted is expected, as even old versions of
panfrost.ko support growable memory.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16330>

2 years agodocs/features: flag VK_KHR_timeline_semaphore as implemented
Iago Toral Quiroga [Thu, 5 May 2022 08:18:06 +0000 (10:18 +0200)]
docs/features: flag VK_KHR_timeline_semaphore as implemented

We got this implemented for v3dv when Jason ported the submit code
to the common submit framework.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16344>

2 years agov3dv: trivially implement VK_KHR_separate_depth_stencil_layouts
Iago Toral Quiroga [Thu, 5 May 2022 07:54:38 +0000 (09:54 +0200)]
v3dv: trivially implement VK_KHR_separate_depth_stencil_layouts

We don't currently benefit from seeing barriers and layout
transitions that affect just the depth or stencil aspects,
so we don't expose this feature.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16344>

2 years agov3dv: implement VK_EXT_separate_stencil_usage
Iago Toral Quiroga [Thu, 5 May 2022 06:58:54 +0000 (08:58 +0200)]
v3dv: implement VK_EXT_separate_stencil_usage

We don't care about the depth/stencil usage other than to determine
if an image format is supported for that usage.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16344>

2 years agov3dv: check input attachment usage as sampled usage
Iago Toral Quiroga [Thu, 5 May 2022 06:44:45 +0000 (08:44 +0200)]
v3dv: check input attachment usage as sampled usage

Since we implement input attachments as textures we should check
support for input attachment usage the same way we check support
for sampled images.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16344>

2 years agopvr: Update pvrsrvkm to fw 1.17 .
Karmjit Mahil [Fri, 8 Apr 2022 10:50:40 +0000 (11:50 +0100)]
pvr: Update pvrsrvkm to fw 1.17 .

Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16238>

2 years agov3dv: use wait stage for wait semaphores to decide about binning syncs
Iago Toral Quiroga [Wed, 4 May 2022 09:07:07 +0000 (11:07 +0200)]
v3dv: use wait stage for wait semaphores to decide about binning syncs

If the wait stage for a semaphore doesn't involve geometry stages we
don't need a binning sync.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16322>

2 years agov3dv: skip binning sync if binning shaders don't access external resources
Iago Toral Quiroga [Tue, 3 May 2022 07:05:19 +0000 (09:05 +0200)]
v3dv: skip binning sync if binning shaders don't access external resources

Until now we have been enabling binning sync if we found a barrier
involving geometry stages (a bcl barrier), however, if the actual
binning shaders involved with the job don't access any external
buffers or images there is no reason to sync at the binning stage.

In this patch we don't immediately consume the bcl barrier flag from
the command buffer state when we create a new job. Instead, we check
this state when we are about to emit a draw call by checking if the
shaders involved with binning may access external resources, such as
vertex buffers, UBOs, or textures. If none of the draw calls in the
job use binning shaders that access external resources then we never
enable binning sync for the job.

It is possible that a binning shader uses resources that are not
synchronized through a barrier though, so we keep track of the
access masks used with barriers for both buffers and images separately
to better identify if the binning shader is affected by the barrier.

If a serialized job never consumes the bcl barrier flag because none
of its draw calls ever required a bcl sync, then the flag will be
cleared when the job is finished.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16322>

2 years agov3dv: flag BCL barriers for all-graphics and all-commands stages
Iago Toral Quiroga [Tue, 3 May 2022 07:30:58 +0000 (09:30 +0200)]
v3dv: flag BCL barriers for all-graphics and all-commands stages

Since these also include geometry stages in the pipeline.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16322>

2 years agov3dv: drop default sampler states if not used
Iago Toral Quiroga [Mon, 2 May 2022 11:31:27 +0000 (13:31 +0200)]
v3dv: drop default sampler states if not used

If a shader doesn't use any samplers (including default sampler states),
make sure we drop them so other parts of the driver can recognize that
the program doesn't actually use any samplers at all.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16322>

2 years agoradv: disable instance packing to fix pipeline query stats
Samuel Pitoiset [Tue, 19 Apr 2022 11:46:12 +0000 (13:46 +0200)]
radv: disable instance packing to fix pipeline query stats

RDNA2 is affected by a hardware bug when instance packing is enabled
for adjacent primitive topologies and instance_count > 1, pipeline
stats generated by GE are incorrect. It needs to be applied for
indexed and non-indexed draws.

This is based on PAL waDisableInstancePacking.

This fixes KHR-GL46.pipeline_statistics_query_tests_ARB.* with Zink.

Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6257
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15877>

2 years agoci: Fix tests expectations
Guilherme Gallo [Wed, 4 May 2022 14:55:54 +0000 (11:55 -0300)]
ci: Fix tests expectations

For some days, the CI was bypassing LAVA and bare-metal jobs due to an
issue in the init-stage2.sh script. After the fix some tests
crashed/failed. This commit updates the expectations for them.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16325>

2 years agoci: Update trace after CI fix
Guilherme Gallo [Wed, 4 May 2022 15:02:59 +0000 (12:02 -0300)]
ci: Update trace after CI fix

For some days, the CI was bypassing LAVA and bare-metal jobs due to an
issue in the init-stage2.sh script. After the fix the neverball trace on
panfrost-t860 is producing a different image, due to a bugfix in
Mesa itself driver. This commit updates the neverball trace on that
device.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16325>

2 years agoci: Fix init-stage2 exit code
Guilherme Gallo [Wed, 4 May 2022 13:52:10 +0000 (10:52 -0300)]
ci: Fix init-stage2 exit code

After a LAVA job submitter rework, the init-stage2.sh was changed to be
compatible with new LAVA job definitions, but the result from the script
represented by `HWCI_TEST_SCRIPT` variable is obfuscated by the `set -e`
command. So when the test script fails, `set` will override the exit
code and the jobs will pass when they should fail.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16325>

2 years agodocs: Add sh256sum for mesa 20.0.3
Dylan Baker [Wed, 4 May 2022 22:51:13 +0000 (15:51 -0700)]
docs: Add sh256sum for mesa 20.0.3

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

2 years agodocs: add release notes for 22.0.3
Dylan Baker [Wed, 4 May 2022 22:17:44 +0000 (15:17 -0700)]
docs: add release notes for 22.0.3

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

2 years agodocs: update calendar for 22.1.0-rc4
Dylan Baker [Wed, 4 May 2022 22:54:23 +0000 (15:54 -0700)]
docs: update calendar for 22.1.0-rc4

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

2 years agodocs: update calendar for 22.1.0-rc3
Dylan Baker [Wed, 4 May 2022 22:54:20 +0000 (15:54 -0700)]
docs: update calendar for 22.1.0-rc3

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

2 years agodocs: Extend calendar entries for 22.1 by 1 releases.
Dylan Baker [Wed, 4 May 2022 22:54:01 +0000 (15:54 -0700)]
docs: Extend calendar entries for 22.1 by 1 releases.

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

2 years agodocs: update calendar and link releases notes for 22.0.3
Dylan Baker [Wed, 4 May 2022 22:53:22 +0000 (15:53 -0700)]
docs: update calendar and link releases notes for 22.0.3

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

2 years agodocs: Extend calendar entries for 22.0 by 1 releases.
Dylan Baker [Wed, 4 May 2022 22:51:51 +0000 (15:51 -0700)]
docs: Extend calendar entries for 22.0 by 1 releases.

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

2 years agozink: Fix memory leak on error path.
Vinson Lee [Sat, 30 Apr 2022 05:57:02 +0000 (22:57 -0700)]
zink: Fix memory leak on error path.

Fix defect reported by Coverity Scan.

Resource leak (RESOURCE_LEAK)
leaked_storage: Variable sampler_view going out of scope leaks the storage it points to.

Fixes: 625457caafb ("zink: handle swapchain acquire failures more directly")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16258>

2 years agovulkan/wsi: Add signal_fence/semaphore_for_image helpers
Jason Ekstrand [Mon, 15 Mar 2021 17:04:56 +0000 (12:04 -0500)]
vulkan/wsi: Add signal_fence/semaphore_for_image helpers

These operations are about to get a bit more complex so let's add a
couple nice helpers to keep things clean.

Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16333>