platform/upstream/mesa.git
22 months agoci: bump mold to 1.5
Eric Engestrom [Tue, 27 Sep 2022 08:46:05 +0000 (09:46 +0100)]
ci: bump mold to 1.5

Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18838>

22 months agoci: unexport local variable (and fix formatting)
Eric Engestrom [Tue, 27 Sep 2022 08:45:25 +0000 (09:45 +0100)]
ci: unexport local variable (and fix formatting)

Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18838>

22 months agointel/devinfo: DG2 supports ray-tracing
Jason Ekstrand [Thu, 5 Nov 2020 17:53:51 +0000 (11:53 -0600)]
intel/devinfo: DG2 supports ray-tracing

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv: Advertise ray-tracing on DG2
Jason Ekstrand [Wed, 13 May 2020 20:45:06 +0000 (15:45 -0500)]
anv: Advertise ray-tracing on DG2

Also disable ray-tracing support if with_intel_vk_rt is not set.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agomeson: Define with_intel_vk_rt based on with_intel_clc
Jordan Justen [Thu, 21 Apr 2022 21:24:53 +0000 (14:24 -0700)]
meson: Define with_intel_vk_rt based on with_intel_clc

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agomeson: Deprecate vulkan-rt-drivers intel
Jordan Justen [Sun, 6 Mar 2022 00:57:03 +0000 (16:57 -0800)]
meson: Deprecate vulkan-rt-drivers intel

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv/meson: Use anv_flags and anv_cpp_flags in genX compiles
Jordan Justen [Sat, 5 Mar 2022 23:49:35 +0000 (15:49 -0800)]
anv/meson: Use anv_flags and anv_cpp_flags in genX compiles

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv: use the right dispatch size for tracing shaders
Lionel Landwerlin [Tue, 22 Feb 2022 13:51:50 +0000 (15:51 +0200)]
anv: use the right dispatch size for tracing shaders

We assumed the trampoline shader would always be SIMD8.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Zhang, Jianxun <jianxun.zhang@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv: bump client visible address heap to 32GiB
Lionel Landwerlin [Wed, 18 Aug 2021 14:20:35 +0000 (17:20 +0300)]
anv: bump client visible address heap to 32GiB

Some raytracing tests are allocating lots of buffer and because of our
2Mb alignment restriction on local memory, we're running our of VMA...

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Zhang, Jianxun <jianxun.zhang@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv: setup scratch space correctly for RT shaders
Lionel Landwerlin [Tue, 17 Aug 2021 11:51:12 +0000 (14:51 +0300)]
anv: setup scratch space correctly for RT shaders

Things are a bit confusing because we use the term "scratch" for 2
different things :
  * the buffer for register allocation spilling
  * the buffer for storing live values between splitted shaders around shader calls

Here we're fixing the missing register allocation spilling buffer.

v2: update comments (Caio)
    fix scratch bo size computation with pipeline libraries (Lionel)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv: Build BVHs on the GPU with GRL
Jason Ekstrand [Thu, 21 Jan 2021 08:18:32 +0000 (02:18 -0600)]
anv: Build BVHs on the GPU with GRL

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agointel/grl: Parse GRL files and generate C
Jason Ekstrand [Tue, 2 Mar 2021 23:43:41 +0000 (17:43 -0600)]
intel/grl: Parse GRL files and generate C

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv/grl: Add a helper for dispatching our pre-built kernels
Jason Ekstrand [Tue, 2 Mar 2021 23:50:49 +0000 (17:50 -0600)]
anv/grl: Add a helper for dispatching our pre-built kernels

v2: Use the default pipeline cache (Lionel)

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv/grl: Build OpenCL kernels
Jason Ekstrand [Tue, 23 Feb 2021 04:18:29 +0000 (22:18 -0600)]
anv/grl: Build OpenCL kernels

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv/grl: Add a GRL file parser
Iván Briano [Tue, 2 Mar 2021 20:34:10 +0000 (14:34 -0600)]
anv/grl: Add a GRL file parser

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv: Import GRL
Jason Ekstrand [Mon, 22 Feb 2021 23:44:46 +0000 (17:44 -0600)]
anv: Import GRL

GRL, or Graphics Library for Ray-tracing is a library we share with the
Windows drivers for doing BVH builds on the GPU.  It consists of a few
headers shared between CL and C code, a bunch of CL kernels, and some
GRL meta-kernels in their own format.

Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv: add new command buffer space allocation
Lionel Landwerlin [Thu, 17 Feb 2022 12:22:57 +0000 (14:22 +0200)]
anv: add new command buffer space allocation

To be used for acceleration structure building.

v2: fix missing u_vector_finish
    Free all BOs

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jianxun Zhang <jianxun.zhang@linux.intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv: Add support for OpenCL-style kernel dispatch
Jason Ekstrand [Tue, 29 Sep 2020 23:47:09 +0000 (18:47 -0500)]
anv: Add support for OpenCL-style kernel dispatch

v2: Use brw_cs_get_dispatch_info() (Lionel)
    Merge barrier fixes (Lionel)

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv: Add support for compiling OpenCL-style kernels
Jason Ekstrand [Tue, 29 Sep 2020 22:35:35 +0000 (17:35 -0500)]
anv: Add support for compiling OpenCL-style kernels

v2: remove unused definitions

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv: Add extern "C" guards
Jason Ekstrand [Thu, 24 Sep 2020 21:27:20 +0000 (16:27 -0500)]
anv: Add extern "C" guards

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv: disable SIMD16 for RT shaders
Lionel Landwerlin [Tue, 3 May 2022 19:12:57 +0000 (22:12 +0300)]
anv: disable SIMD16 for RT shaders

Since divergence is a lot more likely in RT than compute, it makes
sense to limit ourselves to SIMD8.

The trampoline shader defaults to SIMD16 since this one is uniform.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv: Set up the memory-backed FIFO buffer
Jason Ekstrand [Mon, 9 Nov 2020 21:33:17 +0000 (15:33 -0600)]
anv: Set up the memory-backed FIFO buffer

v2: Fix incorrect goto (Caio)
    Comment 3DSTATE_BTD programming (Caio)

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv: Implement VK_KHR_pipeline_library
Jason Ekstrand [Mon, 7 Sep 2020 07:24:20 +0000 (02:24 -0500)]
anv: Implement VK_KHR_pipeline_library

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv: Add an anv_address_map helper
Jason Ekstrand [Wed, 5 Aug 2020 22:30:13 +0000 (17:30 -0500)]
anv: Add an anv_address_map helper

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agoanv/formats: Advertise ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT
Jason Ekstrand [Sat, 20 Jun 2020 15:40:34 +0000 (10:40 -0500)]
anv/formats: Advertise ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT

v2: Only expose the bit when ray tracing is supported.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agointel/mi_builder: allow half GP registers for dereferencing
Lionel Landwerlin [Mon, 21 Feb 2022 12:15:14 +0000 (14:15 +0200)]
intel/mi_builder: allow half GP registers for dereferencing

Some of the GRL metakernels will generate 64bit value in a register,
then use only half of that as the last operation on that value.

v2: Add comment (Caio)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agointel/mi_builder: Add a helper for incrementing reference counts
Jason Ekstrand [Fri, 5 Mar 2021 06:43:49 +0000 (00:43 -0600)]
intel/mi_builder: Add a helper for incrementing reference counts

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agointel/mi_builder: add a way to reserve a register
Jason Ekstrand [Fri, 26 Feb 2021 23:13:25 +0000 (17:13 -0600)]
intel/mi_builder: add a way to reserve a register

Will be useful for GRL metakernels.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agogenxml: add missing no duplicate anyhit flag
Lionel Landwerlin [Wed, 2 Jun 2021 09:31:56 +0000 (12:31 +0300)]
genxml: add missing no duplicate anyhit flag

This mirrors the VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR
enum of VkGeometryFlagBitsKHR. Purely here for documentation.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agointel/fs: disable split_array_vars on opencl kernels
Lionel Landwerlin [Mon, 8 Aug 2022 06:17:21 +0000 (09:17 +0300)]
intel/fs: disable split_array_vars on opencl kernels

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agointel/nir: disable assert on async stack id
Lionel Landwerlin [Fri, 18 Feb 2022 13:44:13 +0000 (15:44 +0200)]
intel/nir: disable assert on async stack id

This can be accessed from :
   - RT shaders
   - CS trampoline shader

We missed the second part here.

Fixes: 046571479028 ("intel/nir/rt: add more helpers for ray queries")
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agointel/nir: fix potential invalid function impl ptr usage
Lionel Landwerlin [Thu, 21 Apr 2022 14:32:51 +0000 (07:32 -0700)]
intel/nir: fix potential invalid function impl ptr usage

We keep the nir_builder::impl value around, but we've run some passes
that might have change the main function.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 96fde5518b5c ("intel/rt: Add a helper to create the raygen trampoline shader")
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agointel/nir: fixup preserved metadata in rayquery lowering
Lionel Landwerlin [Wed, 13 Apr 2022 13:04:25 +0000 (16:04 +0300)]
intel/nir: fixup preserved metadata in rayquery lowering

Another case of not clearing the metadata correctly.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: c78be5da300a ("intel/fs: lower ray query intrinsics")
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agointel/fs: take a builder arg for resolve_source_modifiers()
Lionel Landwerlin [Mon, 5 Jul 2021 13:01:41 +0000 (16:01 +0300)]
intel/fs: take a builder arg for resolve_source_modifiers()

There will be situations where we will want to use a local builder
rather than the one associated with NIR->backend translation.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agointel/nir: reuse rt helper
Lionel Landwerlin [Thu, 4 Nov 2021 10:43:04 +0000 (12:43 +0200)]
intel/nir: reuse rt helper

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agointel/rt: fix procedural primitive ID access
Lionel Landwerlin [Fri, 13 Aug 2021 14:15:55 +0000 (07:15 -0700)]
intel/rt: fix procedural primitive ID access

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agointel/fs: SEL_EXEC uses the integer pipe for 64-bit stuff
Jason Ekstrand [Thu, 29 Oct 2020 14:35:10 +0000 (09:35 -0500)]
intel/fs: SEL_EXEC uses the integer pipe for 64-bit stuff

Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agointel/fs: Always use integer types for indirect MOVs
Jason Ekstrand [Thu, 29 Oct 2020 14:34:08 +0000 (09:34 -0500)]
intel/fs: Always use integer types for indirect MOVs

There's a new Gen12.5 restriction which forbids using the VxH or Vx1 on
the floating-point pipe.

Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agointel/devinfo: Rename & implement num_dual_subslices
Lionel Landwerlin [Thu, 19 Aug 2021 11:55:39 +0000 (14:55 +0300)]
intel/devinfo: Rename & implement num_dual_subslices

v2: Use the upper bound of dual subslices as the ID is not remapped
with fused off parts and this is what we'll use for a bunch of
computation in RT.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agomeson: bump required llvm-spirv version with intel-clc
Lionel Landwerlin [Thu, 22 Sep 2022 10:08:59 +0000 (13:08 +0300)]
meson: bump required llvm-spirv version with intel-clc

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

22 months agoanv: remove HDC flush from invalidate bits
Lionel Landwerlin [Tue, 7 Jun 2022 11:29:27 +0000 (14:29 +0300)]
anv: remove HDC flush from invalidate bits

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: a49b145e8d59 ("anv: Replace DC Flush with HDC Pipeline Flush")
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16970>

22 months agointel/compiler: Vectorize gl_TessLevelInner/Outer[] writes
Kenneth Graunke [Thu, 4 Aug 2022 09:06:52 +0000 (02:06 -0700)]
intel/compiler: Vectorize gl_TessLevelInner/Outer[] writes

Setting the NIR options takes care of iris thanks to the common st/mesa
linking code, and updating brw_nir_link_shaders should handle anv.

The main effort here is updating remap_tess_levels, which needs to
handle vector stores, writemasking, and swizzling.  Unfortunately,
we also need to continue handling the existing single-component
access because it's used for TES inputs, which we don't vectorize.

We could try to vectorize TES inputs too, but they're all pushed
anyway, so it wouldn't buy us much other than deleting this code.
Also, we do have opt_combine_stores, but not one for loads.

One limitation of using nir_vectorize_tess_levels is that it works
on variables, and so isn't able to combine outer/inner writes that
happen to live in the same vec4 slot (for triangle domains).  That
said, it's still better than before.

For writes, we allow the intrinsics to supply up to the full size
of the variable (vec4 for outer, vec2 for inner) even if the domain
only requires a subset of those components (i.e. triangles needs 3).

shader-db results on Icelake:

   total instructions in shared programs: 19605070 -> 19602284 (-0.01%)
   instructions in affected programs: 65338 -> 62552 (-4.26%)
   helped: 271 / HURT: 0
   helped stats (abs) min: 6 max: 24 x̄: 10.28 x̃: 12
   helped stats (rel) min: 1.30% max: 18.18% x̄: 5.80% x̃: 7.59%
   95% mean confidence interval for instructions value: -10.71 -9.85
   95% mean confidence interval for instructions %-change: -6.17% -5.43%
   Instructions are helped.

   total cycles in shared programs: 851854659 -> 851820320 (<.01%)
   cycles in affected programs: 618749 -> 584410 (-5.55%)
   helped: 271 / HURT: 0
   helped stats (abs) min: 69 max: 540 x̄: 126.71 x̃: 108
   helped stats (rel) min: 2.57% max: 37.97% x̄: 6.17% x̃: 5.06%
   95% mean confidence interval for cycles value: -135.89 -117.54
   95% mean confidence interval for cycles %-change: -6.72% -5.63%
   Cycles are helped.

   total sends in shared programs: 1025285 -> 1024355 (-0.09%)
   sends in affected programs: 6454 -> 5524 (-14.41%)
   helped: 271 / HURT: 0
   helped stats (abs) min: 2 max: 8 x̄: 3.43 x̃: 4
   helped stats (rel) min: 5.71% max: 25.00% x̄: 14.98% x̃: 17.39%
   95% mean confidence interval for sends value: -3.57 -3.29
   95% mean confidence interval for sends %-change: -15.42% -14.54%
   Sends are helped.

According to Felix DeGrood, this results in a 10% improvement in
the draw call time for certain draw calls from Strange Brigade.

Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17944>

22 months agost/mesa: Optionally call nir_vectorize_tess_levels()
Kenneth Graunke [Thu, 4 Aug 2022 03:37:20 +0000 (20:37 -0700)]
st/mesa: Optionally call nir_vectorize_tess_levels()

This lets us vectorize gl_TessLevel{Inner,Outer} writes, using a pass
developed for RADV.  Not all backends are prepared to handle this, so
we make it optional.

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

22 months agointel/compiler: Use an existing URB write to end TCS threads when viable
Kenneth Graunke [Thu, 4 Aug 2022 03:54:52 +0000 (20:54 -0700)]
intel/compiler: Use an existing URB write to end TCS threads when viable

VS, TCS, TES, and GS threads must end with a URB write message with the
EOT (end of thread) bit set.  For VS and TES, we shadow output variables
with temporaries and perform all stores at the end of the shader, giving
us an existing message to do the EOT.

In tessellation control shaders, we don't defer output stores until the
end of the thread like we do for vertex or evaluation shaders.  We just
process store_output and store_per_vertex_output intrinsics where they
occur, which may be in control flow.  So we can't guarantee that there's
a URB write being at the end of the shader.

Traditionally, we've just emitted a separate URB write to finish TCS
threads, doing a writemasked write to an single patch header DWord.
On Broadwell, we need to set a "TR DS Cache Disable" bit, so this is
a convenient spot to do so.  But on other platforms, there's no such
field, and this write is purely wasteful.

Insetad of emitting a separate write, we can just look for an existing
URB write at the end of the program and tag that with EOT, if possible.
We already had code to do this for geometry shaders, so just lift it
into a helper function and reuse it.

No changes in shader-db.

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

22 months agoci: disable intel-clc on debian-vulkan
Lionel Landwerlin [Fri, 23 Sep 2022 14:21:27 +0000 (17:21 +0300)]
ci: disable intel-clc on debian-vulkan

We're getting a number of UBSan error while running intel-clc in that
image. It seems that we're the first ones to run into a number of code
paths with intel-clc and it shows a number of undefined behavior
operations like signed extension stuff in NIR/IntelBackend, unaligned
pointer accesses in embedded list iterators, etc...

Preparing some patches in a different MR to fix this.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18788>

22 months agoci: bump llvm to 13 for some builders
Lionel Landwerlin [Fri, 23 Sep 2022 10:35:40 +0000 (13:35 +0300)]
ci: bump llvm to 13 for some builders

Namely :
  - debian-clang
  - debian-cl
  - debian-vulkan

Seems to trigger/fix failures on llvmpipe, filed
https://gitlab.freedesktop.org/mesa/mesa/-/issues/7336

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18788>

22 months agoci/debian: don't use libclc from the system
Lionel Landwerlin [Thu, 22 Sep 2022 21:45:55 +0000 (00:45 +0300)]
ci/debian: don't use libclc from the system

Debian (unlike Ubuntu) has a broken libclc package missing files we
would very much like to have in our image, so that intel_clc doesn't
fail. Namely :

   /usr/lib/clc/spirv-mesa3d-.spv
   /usr/lib/clc/spirv64-mesa3d-.spv

Dropping libclc from the distribution and build int the build & base
test image.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18788>

22 months agoci: build our own version of the LLVM SPIRV translator
Lionel Landwerlin [Thu, 22 Sep 2022 15:56:45 +0000 (18:56 +0300)]
ci: build our own version of the LLVM SPIRV translator

Debian stable and Fedora do not package the required version for
intel-clc.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18788>

22 months agoci: disable intel-clc on fedora
Lionel Landwerlin [Thu, 22 Sep 2022 10:13:42 +0000 (13:13 +0300)]
ci: disable intel-clc on fedora

Would require Fedora 35.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18788>

22 months agoci: add python3-ply to debian/fedora images
Lionel Landwerlin [Thu, 22 Sep 2022 09:26:05 +0000 (12:26 +0300)]
ci: add python3-ply to debian/fedora images

This is needed by Anv to parse GRL (meta opencl kernels).

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18788>

22 months agogallivm/nir: bitcast when non-float ptr type.
Dave Airlie [Tue, 27 Sep 2022 05:26:42 +0000 (15:26 +1000)]
gallivm/nir: bitcast when non-float ptr type.

This matters more when opaque pointers are used.

Fixes: 203920d4c693 ("gallivm: add atomic 32-bit float support")

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18835>

22 months agogallivm/nir: fix fmin/fmax translation
Dave Airlie [Mon, 26 Sep 2022 19:17:39 +0000 (05:17 +1000)]
gallivm/nir: fix fmin/fmax translation

Fixes: 203920d4c693 ("gallivm: add atomic 32-bit float support")

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18835>

22 months agolavapipe: add fmin/fmax to image lowering.
Dave Airlie [Mon, 26 Sep 2022 19:15:26 +0000 (05:15 +1000)]
lavapipe: add fmin/fmax to image lowering.

Fixes: 31695f81c925 ("lavapipe: export VK_KHR_shader_atomic_float")

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18835>

22 months agozink: also lower 64bit function temps
Mike Blumenkrantz [Wed, 21 Sep 2022 16:21:28 +0000 (12:21 -0400)]
zink: also lower 64bit function temps

now that these aren't always lowered from indirects,
64bit function temp arrays may exist in shaders, and they need to use
all the same rewrite machinery

fixes #7310

SoroushIMG <soroush.kashani@imgtec.com>

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

22 months agozink: split up lower_64bit_vars pass
Mike Blumenkrantz [Wed, 21 Sep 2022 16:20:56 +0000 (12:20 -0400)]
zink: split up lower_64bit_vars pass

the component functions will be reused; no functional changes

SoroushIMG <soroush.kashani@imgtec.com>

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

22 months agozink: always run optimize_nir after lower_64bit_vars
Mike Blumenkrantz [Wed, 21 Sep 2022 16:19:24 +0000 (12:19 -0400)]
zink: always run optimize_nir after lower_64bit_vars

it's otherwise possible (and likely) that optimizations won't
happen since there's no shader key data active

Fixes: 5b2f850425e ("zink: rewrite 64bit shader i/o as 32bit")

SoroushIMG <soroush.kashani@imgtec.com>

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

22 months agozink: don't flatten 64bit arrays during rewrite
Mike Blumenkrantz [Wed, 21 Sep 2022 16:18:26 +0000 (12:18 -0400)]
zink: don't flatten 64bit arrays during rewrite

dunno what I was thinking here

Fixes: 5b2f850425e ("zink: rewrite 64bit shader i/o as 32bit")

SoroushIMG <soroush.kashani@imgtec.com>

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

22 months agonir/opt_undef: add a pass to clean up 64bit undefs
Mike Blumenkrantz [Wed, 21 Sep 2022 13:49:11 +0000 (09:49 -0400)]
nir/opt_undef: add a pass to clean up 64bit undefs

somehow 64bit lowering creates patterns like

vec1 64 ssa_1 = undefined
ssa_2 = unpack_64_2x32_split_x ssa_1

and then the 64bit value is never otherwise used. for this case, rewriting
the unpack to just be a 32bit undef allows the 64bit undef to be optimized
out, avoiding spec violations

fixes #6945

SoroushIMG <soroush.kashani@imgtec.com>

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

22 months agorusticl/device: fix custom device detection
Karol Herbst [Sun, 25 Sep 2022 11:43:13 +0000 (13:43 +0200)]
rusticl/device: fix custom device detection

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18809>

22 months agozink: always set VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT sometimes
Mike Blumenkrantz [Thu, 22 Sep 2022 17:27:14 +0000 (13:27 -0400)]
zink: always set VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT sometimes

some drivers (mostly desktop) are known to ignore this pipeline flag,
thus it can be set unconditionally in pipeline state to deduplicate
pipeline variants without affecting performance

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

22 months agozink: use feedback loop layout to correctly handle implicit feedback loops
Mike Blumenkrantz [Thu, 22 Sep 2022 17:02:17 +0000 (13:02 -0400)]
zink: use feedback loop layout to correctly handle implicit feedback loops

an implicit feedback loop occurs when an app happens to bind the same image
as both a framebuffer attachment and a sampler for the same draw

an explicit feedback loop occurs when an app uses fbfetch to read data back
from the framebuffer using input attachments

fbfetch is already handled, but implicit feedback loops require more work:
* detecting them happens on-the-fly
* pipeline variants are required

this handles implicit feedback loops by detecting them at draw time during
barrier updates and then flagging pipeline state change to trigger variant creation.
the bits are then unset when the framebuffer/sampler binds are removed

fixes #7309

fixes (tu):
KHR-GL46.texture_barrier.disjoint-texels
KHR-GL46.texture_barrier.overlapping-texels
KHR-GL46.texture_barrier.same-texel-rw-multipass
KHR-GL46.texture_barrier_ARB.disjoint-texels
KHR-GL46.texture_barrier_ARB.overlapping-texels
KHR-GL46.texture_barrier_ARB.same-texel-rw-multipass

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

22 months agozink: add a mask of fb attachment idx for resources
Mike Blumenkrantz [Thu, 22 Sep 2022 15:33:20 +0000 (11:33 -0400)]
zink: add a mask of fb attachment idx for resources

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

22 months agozink: reorder zink_resource a little
Mike Blumenkrantz [Thu, 22 Sep 2022 15:31:09 +0000 (11:31 -0400)]
zink: reorder zink_resource a little

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

22 months agozink: rename fb_binds -> fb_bind_count
Mike Blumenkrantz [Thu, 22 Sep 2022 15:28:51 +0000 (11:28 -0400)]
zink: rename fb_binds -> fb_bind_count

this is more accurate

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

22 months agozink: remove zink_context::new_swapchain
Mike Blumenkrantz [Thu, 22 Sep 2022 15:16:14 +0000 (11:16 -0400)]
zink: remove zink_context::new_swapchain

this was my (feeble) attempt at tracking validity for swapchain images,
but it doesn't actually work right, and zink_resource::valid is better

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

22 months agozink: enable VK_ATTACHMENT_LOAD_OP_DONT_CARE for zs in renderpasses
Mike Blumenkrantz [Wed, 21 Sep 2022 23:14:02 +0000 (19:14 -0400)]
zink: enable VK_ATTACHMENT_LOAD_OP_DONT_CARE for zs in renderpasses

dynamic render path already handled this

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

22 months agomesa: set normalized_coords for bindless texture buffer samplers
Mike Blumenkrantz [Tue, 27 Sep 2022 15:58:52 +0000 (11:58 -0400)]
mesa: set normalized_coords for bindless texture buffer samplers

this isn't "used", but it's the default

cc: mesa-stable

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

22 months agoegl: Remove a bogus restriction from eglMakeCurrent
Adam Jackson [Thu, 22 Sep 2022 19:15:14 +0000 (15:15 -0400)]
egl: Remove a bogus restriction from eglMakeCurrent

The comment here is from the EGL_MESA_configless_context era, and maybe
that was true, but EGL_KHR_no_config_context has no such restriction.
The only restriction is that both surfaces be compatible with the
context, but a no-config context is defined to be compatible with any
surface.

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

22 months agoegl/dri2: Fix a weird conditional in dri2_make_current
Adam Jackson [Tue, 20 Sep 2022 21:50:42 +0000 (17:50 -0400)]
egl/dri2: Fix a weird conditional in dri2_make_current

It's not valid to get here with no context but with real surfaces.

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

22 months agoegl: Factor some common terminate cleanup up to common code
Adam Jackson [Tue, 20 Sep 2022 18:55:37 +0000 (14:55 -0400)]
egl: Factor some common terminate cleanup up to common code

It's a little difficult to see from the diff, but this is effectively
the same calling sequence as before, and more importantly it means the
backend only cleans up backend state rather than needing to call up to
the core.

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

22 months agoegl: Formatting fix
Adam Jackson [Tue, 20 Sep 2022 21:51:42 +0000 (17:51 -0400)]
egl: Formatting fix

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

22 months agomesa/fbo: Don't force both read/draw bindings to zero
Adam Jackson [Thu, 22 Sep 2022 17:20:18 +0000 (13:20 -0400)]
mesa/fbo: Don't force both read/draw bindings to zero

... when we're only changing one of the two to zero. I could maybe
understand the old behavior here if we really did need both read/draw to
either be both from winsys or both user, but we don't. You can still
get to that half-and-half state even with the old code, you just need to
set whichever of read/draw to 0 that you want first, and then set the
other to the user fbo.

The first code to introduce a read fb to this path was dbfb375805d94,
which was trying to make sure we restored both values passed to
glXMakeCurrentRead when going back to fb 0. The commit message suggests
that "the API" doesn't allow split read/draw, but that seems to have
ignored the #ifdef EXT_framebuffer_object code immediately nearby which
did exactly that.

Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18824>

22 months agoradeonsi/vce: using fixed value for vce 52
Ruijing Dong [Mon, 26 Sep 2022 15:37:32 +0000 (11:37 -0400)]
radeonsi/vce: using fixed value for vce 52

VCE 52 needs some hard-coded values.

Fixed: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7290

Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18823>

22 months agorusticl: Fix compilation if stdout and/or stderr aren't symbols
LingMan [Sun, 18 Sep 2022 12:59:25 +0000 (14:59 +0200)]
rusticl: Fix compilation if stdout and/or stderr aren't symbols

ISO C only guarantees that `stdout` and `stderr` are expressions of type `FILE*`. It does not
guarantee that they are symbols which can be bound to. In particular, they are macros on the BSDs,
which bindgen cannot deal with (yet?).
Add our own symbol-defining wrapper.

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

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18810>

22 months agoci/amd: move radeonsi in amd directory
David Heidelberg [Mon, 19 Sep 2022 20:53:08 +0000 (22:53 +0200)]
ci/amd: move radeonsi in amd directory

Deduplicate jobs, make easier to use GL+VK scenarios.

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

22 months agoci/radeonsi: add traces for radeonsi Zork
David Heidelberg [Tue, 2 Aug 2022 22:22:47 +0000 (00:22 +0200)]
ci/radeonsi: add traces for radeonsi Zork

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

22 months agoci/traces: prevent showing wine instalation dialog
David Heidelberg [Mon, 8 Aug 2022 12:00:07 +0000 (14:00 +0200)]
ci/traces: prevent showing wine instalation dialog

Causing piglit timeouts because of an open window instead of running apitrace.

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

22 months agoci: also handle default wine rootfs (for testing)
David Heidelberg [Tue, 13 Sep 2022 15:18:39 +0000 (17:18 +0200)]
ci: also handle default wine rootfs (for testing)

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

22 months agoci/dxvk: fix DXVK 64-bit only wine setup
David Heidelberg [Wed, 14 Sep 2022 19:36:51 +0000 (21:36 +0200)]
ci/dxvk: fix DXVK 64-bit only wine setup

Reported: https://github.com/doitsujin/dxvk/issues/2921

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

22 months agoci/lava: prepare wineprefix for GL and DXVK
David Heidelberg [Thu, 4 Aug 2022 14:02:35 +0000 (16:02 +0200)]
ci/lava: prepare wineprefix for GL and DXVK

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

22 months agoci/lava: add wine and apitrace into amd64 rootfs container
David Heidelberg [Sat, 16 Jul 2022 12:11:16 +0000 (14:11 +0200)]
ci/lava: add wine and apitrace into amd64 rootfs container

Wine is from WineHQ, with stripped i386 part, which we don't use.

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

22 months agoradv: fix handling multiview with GPL
Samuel Pitoiset [Tue, 20 Sep 2022 10:53:11 +0000 (12:53 +0200)]
radv: fix handling multiview with GPL

When multiview is used, the last pre-rasterization stage should export
the layer to the fragment shader. With GPL, the next stage is
implicitly FS.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18699>

22 months agoradv: fix handling primitive ID and clip/cull distances with GPL
Samuel Pitoiset [Tue, 20 Sep 2022 09:19:13 +0000 (11:19 +0200)]
radv: fix handling primitive ID and clip/cull distances with GPL

When compiling the pre-rasterization stages with GPL, we can't know if
the fragment shader reads the primitive ID or the clip/cull distances
as inputs and we have to export them unconditionally.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18699>

22 months agoradv: fix handling ViewportIndex with GPL
Samuel Pitoiset [Tue, 20 Sep 2022 09:40:35 +0000 (11:40 +0200)]
radv: fix handling ViewportIndex with GPL

When the fragment shader reads the viewport index as input and the last
pre-rasterization stage doesn't export it, it should be implicitly
zero (ie. first viewport). When the next stage is known, it's already
lowered in NIR, but with GPL we can't because we don't know if the FS
reads it. To fix this use AC_EXP_PARAM_DEFAULT_VAL_000.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18699>

22 months agoradv: rework multiview lowering in NIR slightly
Samuel Pitoiset [Tue, 20 Sep 2022 10:46:15 +0000 (12:46 +0200)]
radv: rework multiview lowering in NIR slightly

This will be used to export multiview unconditionally with GPL.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18699>

22 months agov3dv: expose VK_EXT_image_robustness
Iago Toral Quiroga [Fri, 23 Sep 2022 07:10:36 +0000 (09:10 +0200)]
v3dv: expose VK_EXT_image_robustness

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

22 months agobroadcom/compiler: add a lowering for robust image access
Iago Toral Quiroga [Mon, 26 Sep 2022 08:47:19 +0000 (10:47 +0200)]
broadcom/compiler: add a lowering for robust image access

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

22 months agobroadcom/compiler: rename static helpers involved with robust buffer access
Iago Toral Quiroga [Fri, 23 Sep 2022 09:19:34 +0000 (11:19 +0200)]
broadcom/compiler: rename static helpers involved with robust buffer access

To make it explicit that they involve buffers, since we will be adding
robust image access shortly.

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

22 months agobroadcom/compiler: rename v3d_nir_lower_robust_buffer_access.c
Iago Toral Quiroga [Fri, 23 Sep 2022 09:01:45 +0000 (11:01 +0200)]
broadcom/compiler: rename v3d_nir_lower_robust_buffer_access.c

We are going to add code to handle image robustness shortly, so
better rename this to v3d_nir_lower_robust_access.c

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

22 months agodocs: fixup broken rst syntax
Erik Faye-Lund [Sat, 17 Sep 2022 11:09:20 +0000 (13:09 +0200)]
docs: fixup broken rst syntax

Seems I messed this up when converting things, and nobody noticed until
now!

Fixes: d4397c00485 ("docs: use envvar role for envvars")
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18641>

22 months agoci/docs: Stick to specific version of python packages
Yonggang Luo [Tue, 27 Sep 2022 02:23:42 +0000 (10:23 +0800)]
ci/docs: Stick to specific version of python packages

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18833>

22 months agomesa/main: don't copy signed rgtc via float
Erik Faye-Lund [Thu, 8 Sep 2022 09:48:49 +0000 (11:48 +0200)]
mesa/main: don't copy signed rgtc via float

There's no good reason to copy via float instead of snorm, so let's take
that shortcut.

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

22 months agomesa/main: fix broken indent
Erik Faye-Lund [Thu, 8 Sep 2022 09:32:17 +0000 (11:32 +0200)]
mesa/main: fix broken indent

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

22 months agonir/loop_analyze: remove cost of redundant selects
Timothy Arceri [Wed, 14 Sep 2022 01:21:00 +0000 (11:21 +1000)]
nir/loop_analyze: remove cost of redundant selects

If we know that a select will be eliminated once the loop is
unrolled than we don't need to count the instruction towards the
cost of the loop.

This change helps 2 loops unroll in an xcom enemy unknown shader
that is loaded full of these redundant selects.

Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18587>

22 months agonir/loop_analyze: delay instruction cost calculation
Timothy Arceri [Wed, 14 Sep 2022 00:18:05 +0000 (10:18 +1000)]
nir/loop_analyze: delay instruction cost calculation

Here we move the calculation of the instruction cost of the loop
after we have processed other information such as finding the
induction variables. This is useful because we can use this further
information to find instructions that will be eliminated if the
loop was to unroll and therefore give them a cost of 0.

Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18587>

22 months agorusticl/mem: return errors for OOB accesses
Karol Herbst [Sun, 25 Sep 2022 12:20:59 +0000 (14:20 +0200)]
rusticl/mem: return errors for OOB accesses

There is a little bit more to do, but this at least resolves crashes due
to OOB accesses and/or assertions.

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

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18806>

22 months agomesa: make glPopMatrix a no-op if the matrix hasn't changed
Marek Olšák [Tue, 23 Aug 2022 04:13:37 +0000 (00:13 -0400)]
mesa: make glPopMatrix a no-op if the matrix hasn't changed

This happens a lot with viewperf because glMultMatrixf contains identity
matrices.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18828>

22 months agomesa: use memcmp instead of floating-point comparisons in glMultMatrixf
Marek Olšák [Tue, 23 Aug 2022 04:12:59 +0000 (00:12 -0400)]
mesa: use memcmp instead of floating-point comparisons in glMultMatrixf

This is faster.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18828>

22 months agoglthread: skip glMultMatrixf if it's identity
Marek Olšák [Tue, 23 Aug 2022 04:12:09 +0000 (00:12 -0400)]
glthread: skip glMultMatrixf if it's identity

This is common with viewperf and it helps.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18828>

22 months agoglthread,hud: draw per-frame values and expose the number of batches per frame
Marek Olšák [Tue, 23 Aug 2022 04:09:23 +0000 (00:09 -0400)]
glthread,hud: draw per-frame values and expose the number of batches per frame

This is better because we see the statistics for 1 frame instead of 1 second.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18828>