platform/upstream/mesa.git
2 years agontt: remove dead input variables before lowering FS IO
Gert Wollny [Sun, 24 Apr 2022 15:03:42 +0000 (17:03 +0200)]
ntt: remove dead input variables before lowering FS IO

Because for fragment shaders we still use the variables, and
lower_io_to_vector may leave dead variables that duplicate inputs
that are now vectorized, we have to call this pass, because otherwise
we will may hit the assertion

src/gallium/auxiliary/tgsi/tgsi_ureg.c:318:
  ureg_DECL_fs_input_centroid_layout:
   Assertion `(ureg->input[i].usage_mask & usage_mask) == 0'

This is relevant for
  spec@arb_enhanced_layouts@execution@component-layout@*
on r600/ntt

Fixes: a4840e15ab77b44a72cabd7d503172e8357477eb
  r600: Use nir-to-tgsi instead of TGSI when the NIR debug opt is disabled

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16130>

2 years agonir: Don't optimize to 64 bit fsub if the driver doesn't support it
Gert Wollny [Sun, 24 Apr 2022 12:25:01 +0000 (14:25 +0200)]
nir: Don't optimize to 64 bit fsub if the driver doesn't support it

Fixes: a4840e15ab77b44a72cabd7d503172e8357477eb
  r600: Use nir-to-tgsi instead of TGSI when the NIR debug opt is disabled.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16130>

2 years agovenus: flush when batched draw calls reach a threshold
Yiwei Zhang [Tue, 26 Apr 2022 19:25:54 +0000 (19:25 +0000)]
venus: flush when batched draw calls reach a threshold

Add VN_DRAW_CMD_BATCH_LIMIT option

e.g. for Android
adb shell setprop mesa.vn.draw.cmd.batch.limit 100

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16110>

2 years agovenus: refactor vn_cmd_submit
Yiwei Zhang [Tue, 26 Apr 2022 18:10:05 +0000 (18:10 +0000)]
venus: refactor vn_cmd_submit

The caller checks cmd->state instead.

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16110>

2 years agovenus: add VN_PERF option no_async_queue_submit
Yiwei Zhang [Fri, 22 Apr 2022 22:06:23 +0000 (22:06 +0000)]
venus: add VN_PERF option no_async_queue_submit

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16110>

2 years agovenus: add VN_PERF option no_async_buffer_create
Yiwei Zhang [Fri, 22 Apr 2022 21:47:38 +0000 (21:47 +0000)]
venus: add VN_PERF option no_async_buffer_create

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16110>

2 years agovenus: add env perf options and introduce no_async_set_alloc
Yiwei Zhang [Fri, 22 Apr 2022 21:37:27 +0000 (21:37 +0000)]
venus: add env perf options and introduce no_async_set_alloc

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16110>

2 years agovenus: refactor to add struct vn_env
Yiwei Zhang [Tue, 26 Apr 2022 18:26:16 +0000 (18:26 +0000)]
venus: refactor to add struct vn_env

This is to prepare for adding perf options.

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16110>

2 years agonir: Constant fold sampler/texture offsets
Jason Ekstrand [Tue, 26 Apr 2022 16:34:35 +0000 (11:34 -0500)]
nir: Constant fold sampler/texture offsets

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16171>

2 years agonir/constant_folding: Break TXB folding into a helper function
Jason Ekstrand [Tue, 26 Apr 2022 16:28:36 +0000 (11:28 -0500)]
nir/constant_folding: Break TXB folding into a helper function

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16171>

2 years agovenus: fix view format for ahb image
Yiwei Zhang [Tue, 26 Apr 2022 06:11:46 +0000 (06:11 +0000)]
venus: fix view format for ahb image

There's below AHB VU on the image view:

VUID-VkImageViewCreateInfo-image-02399
If image has an external format, format must be VK_FORMAT_UNDEFINED

This is well hidden and completely missed from the original venus ahb
implementation.

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16159>

2 years agokopper: copy a bunch of code for texture_from_pixmap
Mike Blumenkrantz [Mon, 25 Apr 2022 18:32:59 +0000 (14:32 -0400)]
kopper: copy a bunch of code for texture_from_pixmap

seems to work?

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

2 years agokopper: store whether screen has dmabuf support
Mike Blumenkrantz [Mon, 25 Apr 2022 18:15:17 +0000 (14:15 -0400)]
kopper: store whether screen has dmabuf support

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

2 years agokopper: move drawable geometry updating up in function
Mike Blumenkrantz [Mon, 25 Apr 2022 18:14:45 +0000 (14:14 -0400)]
kopper: move drawable geometry updating up in function

no functional changes

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

2 years agokopper: always fetch and store drawable info
Mike Blumenkrantz [Mon, 25 Apr 2022 14:41:46 +0000 (10:41 -0400)]
kopper: always fetch and store drawable info

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

2 years agodrisw: remove dead code
Mike Blumenkrantz [Mon, 25 Apr 2022 14:00:08 +0000 (10:00 -0400)]
drisw: remove dead code

this was from a very early version of kopper, but it can no longer
be reached

Fixes: d760a9151b7 ("gallium: Learn about kopper")

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

2 years agopanfrost: Enable NIR lowering of half float packing
Icecream95 [Tue, 26 Apr 2022 20:23:35 +0000 (08:23 +1200)]
panfrost: Enable NIR lowering of half float packing

The GLSL lowering of half float packing involves software conversion
to half-float; instead, use the lowering in NIR.

Both Midgard and Bifrost are already set to lower the instructions to
bit operations, but change mdg_should_scalarize so that the lowerable
split variants of the pack/unpack instructions are generated.

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

2 years agozink: fix up swapchain depth buffer geometry during fb update
Mike Blumenkrantz [Mon, 25 Apr 2022 19:46:28 +0000 (15:46 -0400)]
zink: fix up swapchain depth buffer geometry during fb update

due to desync between the frontend and the driver, the size that the
depth buffer was created with may not match the size of the swapchain if
the window is being resized very quickly, so just go ahead and clobber
the existing depth buffer with a series of very illegal internal object
replacements to make everything match up

do not try at home.

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

2 years agozink: fix/improve swapchain surface info updating
Mike Blumenkrantz [Mon, 25 Apr 2022 19:43:40 +0000 (15:43 -0400)]
zink: fix/improve swapchain surface info updating

if the swapchain is updated, the base surface info needs to be updated
so that the surface info used for the framebuffer is updated

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

2 years agokopper: add DISPLAY_TARGET bind for depth buffer
Mike Blumenkrantz [Mon, 25 Apr 2022 19:41:30 +0000 (15:41 -0400)]
kopper: add DISPLAY_TARGET bind for depth buffer

this doesn't affect functionality and is only used for validation
in the driver

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

2 years agoradv: Copy shader modules to avoid use after free
Konstantin Seurer [Tue, 19 Apr 2022 10:20:08 +0000 (12:20 +0200)]
radv: Copy shader modules to avoid use after free

The vkd3d-proton ray tracing tests delete shader modules after creating
pipeline libraries from them. This resulted in a use after free when
creating ray tracing pipelines.

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

2 years agovulkan: Add a shader module clone helper
Konstantin Seurer [Tue, 26 Apr 2022 07:36:29 +0000 (09:36 +0200)]
vulkan: Add a shader module clone helper

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

2 years agopanfrost: Add a test for pan_image_layout_init
Alyssa Rosenzweig [Tue, 19 Apr 2022 20:42:03 +0000 (16:42 -0400)]
panfrost: Add a test for pan_image_layout_init

Would have caught a significant issue with ETC2 handling. Luckily Midgard dEQP
failed on this, even though Bifrost didn't (due to explicit strides?)

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

2 years agopanfrost: Simplify how image_layout_init is called
Alyssa Rosenzweig [Tue, 19 Apr 2022 21:54:57 +0000 (17:54 -0400)]
panfrost: Simplify how image_layout_init is called

Rather than using it as a catch-all initialize, use it to fill in derived from
fields from a partially initialized image_layout. This is easier to understand
and, more importantly, easier to unit test.

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

2 years agopanfrost: Unit test block size queries
Alyssa Rosenzweig [Sat, 16 Apr 2022 15:48:24 +0000 (11:48 -0400)]
panfrost: Unit test block size queries

Simple interface, make sure we don't screw it up.

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

2 years agopanfrost: Remove unused dev argument
Alyssa Rosenzweig [Tue, 19 Apr 2022 20:36:45 +0000 (16:36 -0400)]
panfrost: Remove unused dev argument

This function has enough arguments as it is... Motivated by wanting to unit test
this monster.

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

2 years agopanfrost: Unify paths through image_layout_init
Alyssa Rosenzweig [Sat, 16 Apr 2022 14:47:02 +0000 (10:47 -0400)]
panfrost: Unify paths through image_layout_init

We can always align the width/height, now that block_size is defined (as 1x1)
for linear textures. We can also remove the useless effective_depth assignment.

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

2 years agopanfrost: Unify panfrost_block_size paths
Alyssa Rosenzweig [Sat, 16 Apr 2022 14:42:43 +0000 (10:42 -0400)]
panfrost: Unify panfrost_block_size paths

Handle linear, interleaved, and AFBC formats. This requires taking a format, as
block compressed u-interleaved textures have a different tile size than other
u-interleaved textures.

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

2 years agopanfrost: Use pan_block_size in layout calculation
Alyssa Rosenzweig [Sat, 16 Apr 2022 14:37:07 +0000 (10:37 -0400)]
panfrost: Use pan_block_size in layout calculation

This gets rid of the weird "call block_dim twice with a mystery argument"
pattern, and will allow us to further unify code.

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

2 years agopanfrost: Extract panfrost_afbc_is_wide helper
Alyssa Rosenzweig [Sat, 16 Apr 2022 14:31:18 +0000 (10:31 -0400)]
panfrost: Extract panfrost_afbc_is_wide helper

Rather than open-code the > 16 check in multiple places and have to justify it
in each. This is easier to understand at the call sites.

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

2 years agopanfrost: Don't pretend to support multiplane AFBC
Alyssa Rosenzweig [Sat, 16 Apr 2022 14:28:17 +0000 (10:28 -0400)]
panfrost: Don't pretend to support multiplane AFBC

This requires tons of driver changes we're not ready for. In the mean time, this
will just get in the way of refactoring AFBC support.

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

2 years agopanfrost: Use panfrost_afbc_superblock_width
Alyssa Rosenzweig [Sat, 16 Apr 2022 14:26:49 +0000 (10:26 -0400)]
panfrost: Use panfrost_afbc_superblock_width

..instead of panfrost_block_dim. This is clearer, and gets rid of block dim
users.

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

2 years agopanfrost: Add afbc_superblock_{size, width, height} helpers
Alyssa Rosenzweig [Sat, 16 Apr 2022 14:23:33 +0000 (10:23 -0400)]
panfrost: Add afbc_superblock_{size, width, height} helpers

...and use them to implement block_dim transitionally.

These should be clearer than the general block_dim.

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

2 years agopanfrost: Always use 64-bit SD with strides
Alyssa Rosenzweig [Tue, 26 Apr 2022 15:34:45 +0000 (11:34 -0400)]
panfrost: Always use 64-bit SD with strides

Midgard has multiple Surface Descriptor formats selectable in the texture
descriptor. Previously, we have used both the "64-bit surface descriptor" and
the "64-bit surface descriptor with 32-bit line stride and 32-bit layer stride".
A delicate routine tried to guess what stride the hardware will use if we don't
specify it explicitly, and omit the stride if it matches. Unfortunately, that
routine is broken in at least two ways:

* Textures with ASTC must always specify an explicit stride. Failing to do so
  (like we were doing) is invalid.

* It applies even for interleaved textures. The comment above the function
  saying otherwise is incorrect. (TODO: double check this)

Bifrost onwards always specify the strides explicitly. Let's just do that and
unify the gens. What is lost from doing this? A ludicrously trivial amount of
memory and texture descriptor cache space. 8 bytes per layer*level per texture,
in fact. Compared to the size of the textures being addressed, the memory usage
is trivial. The texture descriptor cache size maybe matters more. But given
Arm's hardware people went this direction for Bifrost and stuck to it, I doubt
it matters much.

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

2 years agopanfrost: Split pan_layout.c from pan_texture.c
Alyssa Rosenzweig [Sat, 16 Apr 2022 14:02:51 +0000 (10:02 -0400)]
panfrost: Split pan_layout.c from pan_texture.c

Before we used GenXML, pan_texture mixed layout code with texture descriptor
packing code. For the most part, the layout code is generation-independent; the
pack code is not. We introduced an anti-pattern where the file was compiled N+1
times: N times for each PAN_ARCH value, and an extra time with no PAN_ARCH
value. And then the contents of the file changed completely depending on
PAN_ARCH. This is a pretty weird construction.

Let's instead split off the layout file from the descriptor file, compile the
layout file once, and compile the descriptor file per-gen.

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

2 years agopanfrost: Advertise all textures in drm-shim
Alyssa Rosenzweig [Tue, 26 Apr 2022 15:08:38 +0000 (11:08 -0400)]
panfrost: Advertise all textures in drm-shim

I was rather confused when I couldn't reproduce an ASTC bug under drm-shim...
Fix that.

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

2 years agonir: Remove single-source phis before opt_if_loop_last_continue
Yevhenii Kolesnikov [Thu, 21 Apr 2022 18:20:13 +0000 (21:20 +0300)]
nir: Remove single-source phis before opt_if_loop_last_continue

We might have some single-source phis leftover after prior optimizations. We
want to get rid of them before merging the blocks.

Fixes: 5921a19d4b0 ("nir: add if opt opt_if_loop_last_continue()")

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

Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Reviewed-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16095>

2 years agoetnaviv: set VIVS_GL_VERTEX_ELEMENT_CONFIG depending on prim type
Lucas Stach [Tue, 19 Apr 2022 10:54:55 +0000 (12:54 +0200)]
etnaviv: set VIVS_GL_VERTEX_ELEMENT_CONFIG depending on prim type

New blob versions always emit this state on GPUs that don't have the
NEW_GPIPE feature bit before drawing a primitive, as it needs to be
set according to the primitive type.

Closes: #2933
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16094>

2 years agoetnaviv: update headers from rnndb
Lucas Stach [Tue, 19 Apr 2022 10:47:41 +0000 (12:47 +0200)]
etnaviv: update headers from rnndb

Update to etna_viv commit 100009142dc2.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16094>

2 years agovulkan/log: Allow but warn for client-invisible objects
Jason Ekstrand [Fri, 22 Apr 2022 17:48:22 +0000 (12:48 -0500)]
vulkan/log: Allow but warn for client-invisible objects

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

2 years agovulkan/log: Allow but warn if called with a NULL object
Jason Ekstrand [Fri, 22 Apr 2022 17:46:02 +0000 (12:46 -0500)]
vulkan/log: Allow but warn if called with a NULL object

Most of the time when the logging code is invoked, it means we're
already in an edge case.  It should be as robust as possible, otherwise
we risk making hard to debug things even harder.  To that end, instead
of blowing up if passed a NULL object on the list, handle it as
gracefully as we can.

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

2 years agospirv: Handle Op*MulExtended for non-32-bit types
Jason Ekstrand [Wed, 20 Apr 2022 16:37:19 +0000 (11:37 -0500)]
spirv: Handle Op*MulExtended for non-32-bit types

Fixes: 58bcebd987b7 ("spirv: Allow [i/u]mulExtended to use new nir opcode")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6306
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16060>

2 years agopanfrost: Kick off v9 support in the driver
Alyssa Rosenzweig [Thu, 7 Apr 2022 14:34:00 +0000 (10:34 -0400)]
panfrost: Kick off v9 support in the driver

Call panfrost_cmdstream_screen_init_v9.

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

2 years agopanfrost: Compile for v9
Alyssa Rosenzweig [Tue, 5 Apr 2022 16:38:38 +0000 (12:38 -0400)]
panfrost: Compile for v9

Now that everything is ported!

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

2 years agopanfrost: Generate Valhall Malloc IDVS jobs
Alyssa Rosenzweig [Tue, 19 Apr 2022 13:54:02 +0000 (09:54 -0400)]
panfrost: Generate Valhall Malloc IDVS jobs

These look similar to Bifrost IDVS but with a twist: memory allocation is
handled by the hardware, and the descriptors are split up. Add the handling for
these.

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

2 years agopanfrost: Use dirty flags to emit v9 descriptors
Alyssa Rosenzweig [Thu, 14 Apr 2022 22:54:24 +0000 (18:54 -0400)]
panfrost: Use dirty flags to emit v9 descriptors

These new descriptors take the place of removed descriptors like the RSD, and
need corresponding dirty tracking.

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

2 years agopanfrost: Specialize shader descriptors for Valhall
Alyssa Rosenzweig [Tue, 19 Apr 2022 13:54:19 +0000 (09:54 -0400)]
panfrost: Specialize shader descriptors for Valhall

Instead of being globbed into the RSD, Valhall uses minimal shader program
descriptors. For IDVS, we need separate descriptors for position and varying
shaders. It's actually worse -- we need separate descriptors for drawing points
and drawing lines/triangles in order to skip over the gl_PointSize write. Adapt
prepare_shader to upload all these descriptors.

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

2 years agopanfrost: Specialize ZSA state for Valhall
Alyssa Rosenzweig [Thu, 7 Apr 2022 14:26:00 +0000 (10:26 -0400)]
panfrost: Specialize ZSA state for Valhall

Now we have a much nicer Z/Stencil Descriptor.

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

2 years agopanfrost: Specialize vertex elements for Valhall
Alyssa Rosenzweig [Tue, 19 Apr 2022 13:54:14 +0000 (09:54 -0400)]
panfrost: Specialize vertex elements for Valhall

The split between attribute descriptors and buffer descriptors parallels that of
Bifrost's attribute descriptors and attribute buffer descriptors, with some
shuffling and simplication.

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

2 years agopanfrost: Simplify attribute format expression
Alyssa Rosenzweig [Tue, 19 Apr 2022 13:54:12 +0000 (09:54 -0400)]
panfrost: Simplify attribute format expression

Chew through a layer of indirection for clarity.

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

2 years agopanfrost: Specialize rasterizer state for Valhall
Alyssa Rosenzweig [Tue, 19 Apr 2022 13:54:10 +0000 (09:54 -0400)]
panfrost: Specialize rasterizer state for Valhall

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

2 years agopanfrost: Adapt compute job emit for Valhall
Alyssa Rosenzweig [Tue, 19 Apr 2022 14:10:48 +0000 (10:10 -0400)]
panfrost: Adapt compute job emit for Valhall

Similar data structure, simpler packing.

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

2 years agopanfrost: Use common state emit for compute jobs
Alyssa Rosenzweig [Tue, 19 Apr 2022 14:09:28 +0000 (10:09 -0400)]
panfrost: Use common state emit for compute jobs

This reduces the "specialness" of the Bifrost compute job emit path. It's not
useful in its own right since we currently put compute jobs in their own batch.
This could be optimized.

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

2 years agopanfrost: Don't fix up alpha test on Bifrost
Alyssa Rosenzweig [Tue, 19 Apr 2022 13:54:15 +0000 (09:54 -0400)]
panfrost: Don't fix up alpha test on Bifrost

Since 7d1d7cdf575 ("panfrost: Don't check alpha test in fs_required on
Bifrost+"), we don't use the alpha testing state on Bifrost. So the fixup isn't
needed either.

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

2 years agopanfrost: Port uniform/UBO logic to Valhall
Alyssa Rosenzweig [Thu, 7 Apr 2022 15:27:28 +0000 (11:27 -0400)]
panfrost: Port uniform/UBO logic to Valhall

Use Valhall descriptors, and report sizes so we can accurately inform the
hardware of sizes.

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

2 years agopanfrost: Add helper to emit UBOs
Alyssa Rosenzweig [Thu, 7 Apr 2022 15:26:30 +0000 (11:26 -0400)]
panfrost: Add helper to emit UBOs

Either as uniform remap table entries on Bifrost, or as simple buffer
descriptors on Valhall. The underlying hardware is different (and there are
compiler changes for load_ubo handling), but the high level UBO upload logic
does not have to care about that.

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

2 years agopanfrost: Compile libpanfrost for v9
Alyssa Rosenzweig [Tue, 5 Apr 2022 16:37:59 +0000 (12:37 -0400)]
panfrost: Compile libpanfrost for v9

Now that everything is ported.

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

2 years agopanfrost: Don't allocate storage for PSIZ on Valhall
Alyssa Rosenzweig [Thu, 13 Jan 2022 22:42:15 +0000 (17:42 -0500)]
panfrost: Don't allocate storage for PSIZ on Valhall

It's implicit.

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

2 years agopan/blit: Support v9 data structures
Alyssa Rosenzweig [Tue, 26 Apr 2022 14:13:14 +0000 (10:13 -0400)]
pan/blit: Support v9 data structures

Now that everything is appropriately refactored, we can support Valhall's data
structures in the blitter. Things look similar to Bifrost, but the RSD no longer
exists.

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

2 years agopan/blit: Prepare for Valhall port
Alyssa Rosenzweig [Tue, 26 Apr 2022 14:01:33 +0000 (10:01 -0400)]
pan/blit: Prepare for Valhall port

Valhall's data structures are organized differently. In particular, they don't
use RSDs. So we need to reshuffle the blitter's data structures so we can map to
Valhall.

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

2 years agopan/blit: Generalize texture alignment
Alyssa Rosenzweig [Tue, 26 Apr 2022 14:06:02 +0000 (10:06 -0400)]
pan/blit: Generalize texture alignment

For Valhall compat.

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

2 years agopan/blit: Compile blit shaders without IDVS
Alyssa Rosenzweig [Tue, 26 Apr 2022 14:02:15 +0000 (10:02 -0400)]
pan/blit: Compile blit shaders without IDVS

On Valhall, the fragment shader differs based on whether IDVS or the legacy
geometry flow is used be. In particular, varyings are accessed differently.

We use the legacy geometry flow for blitting on all GPUs, so indicate this in
the shader inputs.

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

2 years agopanfrost: Add texture features enum to v9.xml
Alyssa Rosenzweig [Tue, 19 Apr 2022 14:15:01 +0000 (10:15 -0400)]
panfrost: Add texture features enum to v9.xml

Required to query texture features on Valhall. It's technically the same as
previous Malis (except for narrow ASTC), but conceptually it's different as
plane descriptors have superseded indexed pixel formats for block compressed
textures.

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

2 years agodocs: Update supported drivers for 22.x
Adam Jackson [Mon, 7 Mar 2022 16:53:05 +0000 (11:53 -0500)]
docs: Update supported drivers for 22.x

nouveau doesn't support pre-nv30 anymore, pre-DX9 drivers are no longer
supported generally, and llvmpipe jits on more than just x86.

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

2 years agodocs: Note EGL enum allocation for EGL_EXT_present_opaque
Adam Jackson [Thu, 10 Mar 2022 21:14:21 +0000 (16:14 -0500)]
docs: Note EGL enum allocation for EGL_EXT_present_opaque

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15489>

2 years agovulkan: Use ALL_COMMANDS_BIT for waits/signals instead of ~0
Jason Ekstrand [Mon, 25 Apr 2022 17:25:17 +0000 (12:25 -0500)]
vulkan: Use ALL_COMMANDS_BIT for waits/signals instead of ~0

This is a bit more accurate for what's going on and, while all Mesa
drivers today seem to be ok with extra bits, ensures we're passing a
valid Vulkan thing.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16145>

2 years agovulkan: Set signals[i].stageMask = ALL_COMMANDS for QueueSubmit2 wrapping
Jason Ekstrand [Mon, 25 Apr 2022 16:08:42 +0000 (11:08 -0500)]
vulkan: Set signals[i].stageMask = ALL_COMMANDS for QueueSubmit2 wrapping

My understanding of the signal masks is that they control what stages
must complete before the semaphore is signaled.  Using 0 theoretically
means the semaphore could be signaled immediately without waiting on
anything.  Use ~0 instead to say it depends on everything.

Fixes: 97f0a4494b97 ("vulkan: implement legacy entrypoints on top of VK_KHR_synchronization2")
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16145>

2 years agoci: skqp: update URL
David Heidelberg [Fri, 15 Apr 2022 15:18:32 +0000 (17:18 +0200)]
ci: skqp: update URL

The file and functionality isn't present in `main` branch anymore.

Acked-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15973>

2 years agopanvk: quiet non-conformant warning on ci
Erik Faye-Lund [Tue, 19 Apr 2022 12:51:03 +0000 (14:51 +0200)]
panvk: quiet non-conformant warning on ci

This helper has built-in support to be quieted, which seems like a good
idea to do on ci.

We're already setting the env var in the CI environment, so no need to
do that here.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16033>

2 years agolavapipe: quiet non-conformant warning on ci
Erik Faye-Lund [Tue, 19 Apr 2022 12:50:47 +0000 (14:50 +0200)]
lavapipe: quiet non-conformant warning on ci

This helper has built-in support to be quieted, which seems like a good
idea to do on ci.

Let's enable the quieting while we're at it.

Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16033>

2 years agoanv: workaround apps that assume full subgroups without specifying it
Sviatoslav Peleshko [Thu, 31 Mar 2022 13:44:15 +0000 (16:44 +0300)]
anv: workaround apps that assume full subgroups without specifying it

Without this we might choose 8 or 16 width, while the app assumes 32.
With subgroup operations it may cause wrong calculations and thus bugs.

Examples of such games are Aperture Desk Job and DOOM Eternal.

v2: Make it a driconf option instead of applying unconditionally, move
    from brw_required_dispatch_width to brw_compile_cs
v3: Rename allow_assuming_full_subgroups -> assume_full_subgroups.
    Include assume_full_subgroups value in anv_pipeline_hash_compute().
v4: Move actual workaround code from brw_fs.c -> anv_pipeline.c.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6171
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15708>

2 years agoradv: fix clearing of TRUNC_COORD with tg4 and immutable samplers
Rhys Perry [Mon, 25 Apr 2022 18:42:30 +0000 (19:42 +0100)]
radv: fix clearing of TRUNC_COORD with tg4 and immutable samplers

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Fixes: 15640e58d96 ("radv,aco: lower texture descriptor loads in NIR")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16148>

2 years agogallium/util: Increase the debug_flush map depth to 64
Charmaine Lee [Thu, 10 Mar 2022 02:20:46 +0000 (18:20 -0800)]
gallium/util: Increase the debug_flush map depth to 64

Piglit tests fbo-generatemipmap-3d RGB9_E5 and
fbo-generatemipmap-cubemap array RGB9_E5 hit assert when debug_flush
is active. Increase the debug map depth to 64.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16061>

2 years agosvga: Add support for SVGAv3
Zack Rusin [Tue, 8 Feb 2022 21:41:32 +0000 (16:41 -0500)]
svga: Add support for SVGAv3

SVGAv3 changes the PCI id due to differences in how PCI configuration
is handled - removal of VRAM and FIFO PCI resources, switch to MMIO
registers and MSI/MSI-X IRQ support but the 3D commands remain largely
the same.

This enables 3D/graphics acceleration support on SVGAv3.

Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16061>

2 years agosvga: Use direct maps when GB objects are present
Zack Rusin [Tue, 8 Feb 2022 21:03:21 +0000 (16:03 -0500)]
svga: Use direct maps when GB objects are present

SVGA device always supports direct maps which are preferable in all cases
because they avoid temporary surfaces and extra transfers. Furthermore
DMA transfers on devices with GB objects have undefined timing semantics.

Also the DMA transfers can not work on SVGAv3 because the device lacks
VRAM to be able to perform them.

Fix the last paths still using DMA transfers to make sure they're never
used on GB enabled configs. This fixes gnome-shell startup on SVGAv3.

Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Martin Krastev <krastevm@vmware.com>
Reviewed-by: Michael Banack <banackm@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16061>

2 years agosvga: finish readbacks before mapping resources
Zack Rusin [Wed, 2 Mar 2022 19:08:09 +0000 (14:08 -0500)]
svga: finish readbacks before mapping resources

Flushing the command queue before mapping a resource is not enough
to guaruantee that the mapped content is not stale. We have to finish
to make sure that the gb readback actually updated the guest surface.

This fixes races in direct maps (map reads raced with gb readbacks)

Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Neha Bhende <bhenden@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16061>

2 years agosvga: Don't try to build x86/x64 assembly on different arch's
Zack Rusin [Mon, 16 Aug 2021 18:25:36 +0000 (14:25 -0400)]
svga: Don't try to build x86/x64 assembly on different arch's

svga used to use vmx backdoor directly to send logs to the host.
This functionality has been implemented in vmwgfx 2.17, but
to make sure we still work with old kernels the functionality
to use the backdoor directly has been kept.

There's no reason to port that code to arm since vmwgfx
implements it and arm64 (or other new platforms) would
depend on vmwgfx versions a lot newer than 2.17, so everywhere
but on x86/x64 it's fine to assume vmwgfx always support the host
logging ioctls.

Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: Reviewed-by: Neha Bhende <bhenden@vmware.com>
Reviewed-by: Martin Krastev <krastevm@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16061>

2 years agopan/bi: Implement pack_uvec[24]_to_uint
Alyssa Rosenzweig [Sat, 23 Apr 2022 20:53:38 +0000 (16:53 -0400)]
pan/bi: Implement pack_uvec[24]_to_uint

This maps nicely to Mali's weirdo MKVEC, so implement it rather than
scalarizing. The scalarization wants an extract implemented which we don't have.
Fixes dEQP-VK.glsl.builtin.function.pack_unpack.*

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

2 years agonir: Use u_worklist to back nir_block_worklist
Alyssa Rosenzweig [Tue, 19 Apr 2022 16:46:43 +0000 (12:46 -0400)]
nir: Use u_worklist to back nir_block_worklist

u_worklist is nir_block_worklist, suitably generalized. All we need to do is
define the macros to translate between the APIs.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16046>

2 years agoutil: Add a generic worklist implementation
Alyssa Rosenzweig [Tue, 19 Apr 2022 15:57:45 +0000 (11:57 -0400)]
util: Add a generic worklist implementation

Models a double-ended queue of elements from an a list. Based on NIR's worklist
data structure. This is useful in most backend compilers for data flow analysis.

Using this data structure has several advantages for backends:

* Simplicity, avoids open-coding a worklist data structure.
* Performance, the data structure is lighter weight than e.g sets
* Correctness, e.g. sets are nondeterministic and can cause random bugs.

Using a worklist approach at all is good for performance of liveness analysis
to avoid performing excess walks over the IR.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16046>

2 years agoradv: add an SQTT workaround for chips with disabled RBs
Samuel Pitoiset [Mon, 25 Apr 2022 07:46:08 +0000 (09:46 +0200)]
radv: add an SQTT workaround for chips with disabled RBs

Ported from RadeonSI.

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/16133>

2 years agovk/cache: unbreak vk_pipeline_cache_create with flags
Mike Blumenkrantz [Mon, 25 Apr 2022 18:06:12 +0000 (14:06 -0400)]
vk/cache: unbreak vk_pipeline_cache_create with flags

long ago I fixed this in individual drivers

now I fix it in all drivers

Fixes: 591da987790 ("vulkan: Add a common VkPipelineCache implementation"

Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16149>

2 years agonir: Lower all bit sizes of usub_borrow
Jason Ekstrand [Mon, 25 Apr 2022 17:12:10 +0000 (12:12 -0500)]
nir: Lower all bit sizes of usub_borrow

It's not clear why this is restricted to 32-bit besides that being the
only bit size where GLSL has an intrinsic for this.  All drivers that
set this probably want it lowered for all bit sizes as far as I can
tell.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6353
Fixes: 8a3e3441802c ("nir/opt_algebraic: Fix some expressions with ambiguous bit sizes")
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16146>

2 years agopanfrost: Fix memory leaks on unit test failures.
Vinson Lee [Mon, 25 Apr 2022 04:28:50 +0000 (21:28 -0700)]
panfrost: Fix memory leaks on unit test failures.

Change ASSERT_EQ to EXPECT_EQ to avoid aborting before freeing memory.

Fix defects reported by Coverity Scan.

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

Fixes: bb6c14a6978 ("panfrost: Unit test u-interleaved tiling routines")
Suggested-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16127>

2 years agovulkan: bump layer api versions to current vk header version
Mike Blumenkrantz [Mon, 25 Apr 2022 12:48:15 +0000 (08:48 -0400)]
vulkan: bump layer api versions to current vk header version

should probably try to keep these in sync? maybe?

cc: mesa-stable

Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16138>

2 years agomeson: call run_command with check=true
Michel Zou [Wed, 6 Apr 2022 18:09:27 +0000 (20:09 +0200)]
meson: call run_command with check=true

This avoids a warning in meson since the default value will change:
WARNING: You should add the boolean check kwarg to the run_command call.
         It currently defaults to false,
         but it will default to true in future releases of meson.
         See also: https://github.com/mesonbuild/meson/issues/9300

It's probably best to use the new default (true) that the old (false)

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

2 years agomeson: replace deprecated dep.get_pkgconfig_variable(...) with dep.get_variable(pkgco...
Eric Engestrom [Mon, 18 Apr 2022 15:52:48 +0000 (16:52 +0100)]
meson: replace deprecated dep.get_pkgconfig_variable(...) with dep.get_variable(pkgconfig : ...)

The former is deprecated since meson 0.56, while the latter is available since meson 0.51, and we currently require meson 0.53+.

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

2 years agor300: set PIPE_BIND_CONSTANT_BUFFER for const_uploader
Pavel Ondračka [Sun, 24 Apr 2022 16:58:14 +0000 (18:58 +0200)]
r300: set PIPE_BIND_CONSTANT_BUFFER for const_uploader

Fixes constant uploads with nine.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5966
CC: mesa-stable
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16125>

2 years agovirgl/ci: Update checksums for some virgl iris traces
Cristian Ciocaltea [Mon, 25 Apr 2022 13:33:18 +0000 (16:33 +0300)]
virgl/ci: Update checksums for some virgl iris traces

A few trace tests started to fail recently due to invalid checksums.

A visual inspection of the images didn't reveal a regression, hence
let's just update the expected checksums to match the actual values.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16141>

2 years agovirgl/ci: Rename virgl-lava-* jobs to virgl-iris-*
Cristian Ciocaltea [Mon, 25 Apr 2022 09:01:18 +0000 (12:01 +0300)]
virgl/ci: Rename virgl-lava-* jobs to virgl-iris-*

Rename 'virgl-lava-*' jobs to a more descriptive 'virgl-iris-*'.

Suggested-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16141>

2 years agopanvk: Lower shared memory
Alyssa Rosenzweig [Sat, 23 Apr 2022 23:04:43 +0000 (19:04 -0400)]
panvk: Lower shared memory

Copy the code. Fixes workgroup tests, now compute kernels should work properly
on Bifrost.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16123>

2 years agopanvk: Handle empty shaders gracefully
Alyssa Rosenzweig [Sat, 23 Apr 2022 22:55:00 +0000 (18:55 -0400)]
panvk: Handle empty shaders gracefully

Fixes dEQP-VK.spirv_assembly.instruction.compute.shader_default_output.int.uninitialized

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16123>

2 years agopan/bi: Implement fquantize2f16
Alyssa Rosenzweig [Sat, 23 Apr 2022 21:33:47 +0000 (17:33 -0400)]
pan/bi: Implement fquantize2f16

Implement as f2f32(f2f16(x)) with the conversions in flush-to-zero mode.
Accessing flush-to-zero mode on Bifrost is nontrivial: it is specified
per-clause, rather than per-instruction. I've opted to pipe support for ftz
clauses through the scheduler. This solution has two nice properties:

* It uses the native hardware for flushing subnormals, avoiding extra lowering.
* It's "smart" about scheduling around FTZ requirements, meaning we get good
code generated even for a shader that e.g. quantizes a vector.

With an unrelated scheduler fix, the *V2F32_TO_V2F16/+F16_TO_F32 operation fits
in a single tuple, minimizing the overhead of the special FTZ clause.

We'll have to do something a bit different for Valhall (FLUSH.f32), but we'll
worry about when we actually have PanVK brought up on Valhall.

Fixes dEQP-VK.spirv_assembly.instruction.compute.opquantize.*

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16123>

2 years agopanvk: Consider primitive restart in index buffer walks
Alyssa Rosenzweig [Mon, 25 Apr 2022 14:28:29 +0000 (10:28 -0400)]
panvk: Consider primitive restart in index buffer walks

Fixes:

dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint32.line_strip

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/16140>

2 years agopanvk: Respect line width
Alyssa Rosenzweig [Mon, 25 Apr 2022 14:24:24 +0000 (10:24 -0400)]
panvk: Respect line width

Fixes:

dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_list

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/16140>

2 years agovulkan: do not depend on alignof(void)
Erik Faye-Lund [Mon, 25 Apr 2022 08:36:51 +0000 (10:36 +0200)]
vulkan: do not depend on alignof(void)

alignof(void) is a non-standard GCC extension, and it doesn't compile on
MSVC. But since the Windows CI has been disabled due to stability
issues, a breakage snuk in nevertheless.

Since alignof(char) works the same as alignof(void), let's pass char
instead of void here. That hides the GCC weirdness without doing any
functional changes.

Fixes: 591da987790 ("vulkan: Add a common VkPipelineCache implementation")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16134>

2 years agoci: put lima farm back online
Erico Nunes [Sun, 24 Apr 2022 15:13:22 +0000 (17:13 +0200)]
ci: put lima farm back online

There was an issue with the network router in the lab, which
should be resolved now.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16135>

2 years agomesa/st: call pipe->link_shader even if ir loaded from cache when linking
Italo Nicola [Wed, 13 Apr 2022 15:24:54 +0000 (12:24 -0300)]
mesa/st: call pipe->link_shader even if ir loaded from cache when linking

Previously, if the shader was already cached, the pipe->link_shader hook
wouldn't be called, and the gallium driver wouldn't know that shaders
were being linked.

This helps VirGL, because sometimes the guest shader cache can be hit,
while the host shader cache would be missed. VirGL uses this hook to
make the host immediately link shaders, instead of lazily linking them
when a draw call happens, which can degrade performance.

Signed-off-by: Italo Nicola <italonicola@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15927>

2 years agoradeonsi/ci: add polaris11 baseline
Marek Olšák [Sat, 23 Apr 2022 01:31:45 +0000 (21:31 -0400)]
radeonsi/ci: add polaris11 baseline

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

2 years agowinsys/amdgpu: fix a mutex deadlock when we fail to create pipe_screen
Marek Olšák [Fri, 22 Apr 2022 18:16:52 +0000 (14:16 -0400)]
winsys/amdgpu: fix a mutex deadlock when we fail to create pipe_screen

Fixes: 2eb067db0fe - winsys/amdgpu: add a new winsys for the new kernel driver

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