platform/upstream/mesa.git
2 years agoagx: Use consistent ncomps
Alyssa Rosenzweig [Sat, 24 Jul 2021 18:55:16 +0000 (14:55 -0400)]
agx: Use consistent ncomps

Fixes register allocation failure in:
dEQP-GLES3.functional.ubo.single_basic_array.shared.row_major_mat4_fragment

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

2 years agoagx: Dump register file when failing to allocate
Alyssa Rosenzweig [Sat, 24 Jul 2021 18:54:34 +0000 (14:54 -0400)]
agx: Dump register file when failing to allocate

Usually shows a bug.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

2 years agoagx: Fix mismatched units in load_ubo
Alyssa Rosenzweig [Sat, 24 Jul 2021 18:39:44 +0000 (14:39 -0400)]
agx: Fix mismatched units in load_ubo

Fixes assertion failure in
dEQP-GLES3.functional.ubo.single_basic_type.shared.highp_float_fragment

   Assertion failed: ((value & 1) == 0), function agx_print_sized, file
   ../src/asahi/compiler/agx_print.c, line 39.

Fixes: 033d4d09fc7 ("agx: Implement load_ubo/kernel_input")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

2 years agoagx: Don't set helper invocation kill bit
Alyssa Rosenzweig [Sat, 24 Jul 2021 18:27:35 +0000 (14:27 -0400)]
agx: Don't set helper invocation kill bit

In the future we'll need data flow analysis similar to what we do in
panfrost.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

2 years agoasahi: Assert texture layer is nonzero
Alyssa Rosenzweig [Sat, 24 Jul 2021 17:55:19 +0000 (13:55 -0400)]
asahi: Assert texture layer is nonzero

The app shouldn't do funny things with layers... currently unsupported,
one issue at a time...

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

2 years agoasahi: Require tiling for cube maps
Alyssa Rosenzweig [Sat, 24 Jul 2021 17:06:32 +0000 (13:06 -0400)]
asahi: Require tiling for cube maps

Makes my dEQP happy.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

2 years agoasahi: Simplify can_tile type signature
Alyssa Rosenzweig [Sat, 24 Jul 2021 17:06:11 +0000 (13:06 -0400)]
asahi: Simplify can_tile type signature

dev parameter inherited from panfrost.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

2 years agoasahi: Allow tiled cube maps
Alyssa Rosenzweig [Sat, 24 Jul 2021 16:56:29 +0000 (12:56 -0400)]
asahi: Allow tiled cube maps

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

2 years agoasahi: Use agx_rsrc_offset for linear transfer_map
Alyssa Rosenzweig [Sat, 24 Jul 2021 17:01:08 +0000 (13:01 -0400)]
asahi: Use agx_rsrc_offset for linear transfer_map

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

2 years agoasahi: Implement cube map tiling transfers
Alyssa Rosenzweig [Sat, 24 Jul 2021 16:52:41 +0000 (12:52 -0400)]
asahi: Implement cube map tiling transfers

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

2 years agoasahi: Calculate resource offsets for cube maps
Alyssa Rosenzweig [Sat, 24 Jul 2021 16:52:15 +0000 (12:52 -0400)]
asahi: Calculate resource offsets for cube maps

Needed to transfer.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

2 years agoasahi: Calculate cube map stride
Alyssa Rosenzweig [Sat, 24 Jul 2021 16:51:00 +0000 (12:51 -0400)]
asahi: Calculate cube map stride

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

2 years agoasahi: Set texture dimension field
Alyssa Rosenzweig [Sat, 24 Jul 2021 16:23:56 +0000 (12:23 -0400)]
asahi: Set texture dimension field

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

2 years agoasahi: Identify texture dimension field
Alyssa Rosenzweig [Sat, 24 Jul 2021 16:20:17 +0000 (12:20 -0400)]
asahi: Identify texture dimension field

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

2 years agoasahi: Fix sampler filtering flag
Alyssa Rosenzweig [Sat, 24 Jul 2021 17:20:13 +0000 (13:20 -0400)]
asahi: Fix sampler filtering flag

Typo in the XML. Fixes broken filtering. Still chasing an off-by-one.

Fixes: cad54e2721d ("asahi: Add command buffer XML definitions")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

2 years agoasahi: Identify texture address field
Alyssa Rosenzweig [Sat, 24 Jul 2021 17:55:05 +0000 (13:55 -0400)]
asahi: Identify texture address field

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

2 years agomicrosoft/spirv_to_dxil: Adding continue opt pass to fix DXIL loop gen
Enrico Galli [Fri, 23 Jul 2021 21:47:33 +0000 (14:47 -0700)]
microsoft/spirv_to_dxil: Adding continue opt pass to fix DXIL loop gen

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12048>

2 years agovulkan/wsi: replace prime_blit_buffer by a bool
Chia-I Wu [Fri, 23 Jul 2021 21:31:30 +0000 (14:31 -0700)]
vulkan/wsi: replace prime_blit_buffer by a bool

venus only needs to know if a WSI image is a prime blit source.  In an
upcoming swapchain image rework, the prime blit destination is unknown
when the WSI image is created.  Replace prime_blit_buffer by a bool.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12046>

2 years agoaco: Use cpp_msvc_compat_args.
Georg Lehmann [Fri, 25 Jun 2021 15:40:44 +0000 (17:40 +0200)]
aco: Use cpp_msvc_compat_args.

Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11610>

2 years agoradv: Use c_msvc_compat_args.
Georg Lehmann [Fri, 25 Jun 2021 15:39:10 +0000 (17:39 +0200)]
radv: Use c_msvc_compat_args.

Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11610>

2 years agopanvk: Fix sampler filter modes on Bifrost
Alyssa Rosenzweig [Fri, 23 Jul 2021 14:31:15 +0000 (10:31 -0400)]
panvk: Fix sampler filter modes on Bifrost

The logic was incorrectly inverted, although it is correct for Midgard
and in OpenGL.

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

2 years agopanfrost: Make panfrost_batch_get_bifrost_tiler per-gen
Alyssa Rosenzweig [Tue, 13 Jul 2021 17:58:10 +0000 (13:58 -0400)]
panfrost: Make panfrost_batch_get_bifrost_tiler per-gen

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

2 years agopanfrost: Move init_batch to GenXML vtbl
Alyssa Rosenzweig [Tue, 13 Jul 2021 17:42:55 +0000 (13:42 -0400)]
panfrost: Move init_batch to GenXML vtbl

Secretly depends on GenXML.

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

2 years agopanfrost: Use PAN_ARCH for the rest of pan_cmdstream
Alyssa Rosenzweig [Tue, 13 Jul 2021 16:08:16 +0000 (12:08 -0400)]
panfrost: Use PAN_ARCH for the rest of pan_cmdstream

Mostly trivial substitutions to get rid of dev->arch, dev->quirks, and
pan_is_bifrost()

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

2 years agopanfrost: Add a concatenation macro for genxml
Alyssa Rosenzweig [Tue, 13 Jul 2021 16:02:20 +0000 (12:02 -0400)]
panfrost: Add a concatenation macro for genxml

This is safer, since it allows the thing being concatenated to itself be
an expande macro, which we'll use as a stopgap to construct tiler jobs
with unified code. It's also a bit more readable, I think.

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

2 years agopanfrost: #ifdef fragment RSD packing
Alyssa Rosenzweig [Tue, 13 Jul 2021 00:26:12 +0000 (20:26 -0400)]
panfrost: #ifdef fragment RSD packing

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

2 years agopanfrost: #ifdef pan_merge_empty_fs
Alyssa Rosenzweig [Mon, 12 Jul 2021 23:58:22 +0000 (19:58 -0400)]
panfrost: #ifdef pan_merge_empty_fs

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

2 years agopanfrost: Share blend code across architectures
Alyssa Rosenzweig [Mon, 12 Jul 2021 23:56:52 +0000 (19:56 -0400)]
panfrost: Share blend code across architectures

Midgard code is basically a subset of the Bifrost/Valhall code.

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

2 years agopanfrost: Share sampler code across archs
Alyssa Rosenzweig [Mon, 12 Jul 2021 23:35:03 +0000 (19:35 -0400)]
panfrost: Share sampler code across archs

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

2 years agopanfrost: Match sampler "nearest" names
Alyssa Rosenzweig [Mon, 12 Jul 2021 23:32:17 +0000 (19:32 -0400)]
panfrost: Match sampler "nearest" names

Midgard calls this nearest but Bifrost calls it point sample. Of the
two, nearest is the standard term, so change the Bifrost XML to use that
name. That way we can share more code constructing samplers.

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

2 years agopanfrost: Don't make get_index_buffer_bounded per-gen
Alyssa Rosenzweig [Mon, 12 Jul 2021 23:20:16 +0000 (19:20 -0400)]
panfrost: Don't make get_index_buffer_bounded per-gen

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

2 years agopanfrost: Statically determine uses_clamp
Alyssa Rosenzweig [Mon, 12 Jul 2021 22:36:40 +0000 (18:36 -0400)]
panfrost: Statically determine uses_clamp

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

2 years agopanfrost: Compile pan_cmdstream per-gen
Alyssa Rosenzweig [Mon, 12 Jul 2021 23:15:46 +0000 (19:15 -0400)]
panfrost: Compile pan_cmdstream per-gen

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

2 years agopanfrost: Move sysval analysis out of per-gen
Alyssa Rosenzweig [Mon, 12 Jul 2021 23:09:33 +0000 (19:09 -0400)]
panfrost: Move sysval analysis out of per-gen

Arch-independent.

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

2 years agopanfrost: Make sampler view creation private
Alyssa Rosenzweig [Mon, 12 Jul 2021 23:03:13 +0000 (19:03 -0400)]
panfrost: Make sampler view creation private

Move it up in the file to avoid forward decls.

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

2 years agopanfrost: Move context initalization to the vtable
Alyssa Rosenzweig [Mon, 12 Jul 2021 22:48:46 +0000 (18:48 -0400)]
panfrost: Move context initalization to the vtable

Now there's only a single genx entrypoint.

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

2 years agoci/freedreno: Enable the MSAA deqp tests.
Emma Anholt [Thu, 22 Jul 2021 18:15:19 +0000 (11:15 -0700)]
ci/freedreno: Enable the MSAA deqp tests.

We've had issues with these before when merging to Chrome OS, so let's
make sure we're testing them now that we can do surfaceless pbuffer MSAA.

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

2 years agoegl/dri2: Stop disabling pbuffer support on msaa configs
Adam Jackson [Tue, 3 Sep 2019 19:57:47 +0000 (15:57 -0400)]
egl/dri2: Stop disabling pbuffer support on msaa configs

We started doing this in:

    commit 4d6d55deef291b489af4d7870c6f5eb223c8da5d
    Author: Tapani Pälli <tapani.palli@intel.com>
    Date:   Mon Sep 26 10:03:32 2016 +0300

        egl: stop claiming support for pbuffer + msaa

        This fixes a crash in egl-create-msaa-pbuffer-surface Piglit test
        and same crash in many dEQP EGL tests.

Whatever bug that was papering over appears to be fixed by now, I can
no longer reproduce that crash with piglit. Furthermore, disabling that
bit in the generic dri2 code had the side effect that the surfaceless
platform would advertise EGLConfigs with _no_ supported surface types
(since surfaceless only supports pbuffers).

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

2 years agovirgl: disallow null-terminated debug messages
Ryan Neph [Fri, 23 Jul 2021 17:27:03 +0000 (10:27 -0700)]
virgl: disallow null-terminated debug messages

virglrenderer doesn't support null-terminated message strings, so
there's no reason for the guest to allow it.

Signed-off-by: Ryan Neph <ryanneph@google.com>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12043>

2 years agonir: Validate newly documented texture restrictions
Jason Ekstrand [Fri, 9 Jul 2021 13:09:46 +0000 (08:09 -0500)]
nir: Validate newly documented texture restrictions

Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11775>

2 years agonir/validate: refactor validate_assert to have a return value
Mike Blumenkrantz [Fri, 7 May 2021 18:06:23 +0000 (14:06 -0400)]
nir/validate: refactor validate_assert to have a return value

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11775>

2 years agodxil: Set coord_components on the txf in lower_int_sampler
Erik Faye-Lund [Mon, 12 Jul 2021 20:00:01 +0000 (15:00 -0500)]
dxil: Set coord_components on the txf in lower_int_sampler

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11775>

2 years agonir/lower_tex: Rework invalid implicit LOD lowering
Jason Ekstrand [Fri, 9 Jul 2021 16:34:23 +0000 (11:34 -0500)]
nir/lower_tex: Rework invalid implicit LOD lowering

Only fragment and some compute shaders support implicit derivatives.
They're totally meaningless without helper invocations and some
understanding of the dispatch pattern.  We've got code to lower
nir_texop_tex in these shader stages to use an explicit derivative of 0
but it was pretty badly broken:

 1. It only handled nir_texop_tex, not nir_texop_txb or nir_texop_lod.

 2. It didn't take min_lod into account

 3. It was conflated with adding a missing LOD parameter to opcodes
    which expect one such as nir_texop_txf.  While not really a bug,
    this does make it way harder to reason about the code.

 4. Unless you set a flag (which most drivers don't), it left the
    opcode nir_texop_tex instead of nir_texop_txl which it should have
    been.

This reworks it to go through roughly the same path as other LOD
lowering only with a constant lod of 0 instead of calling out to
nir_texop_lod.  We also get rid of the lower_tex_without_implicit_lod
flag because most drivers set it and those that don't are probably
subtly broken.  If someone really wants to get nir_texop_tex in their
vertex shaders, they can write a new patch to add the flag back in.

Fixes: e382890e25c0 "nir: set default lod to texture opcodes that..."
Fixes: d5ac5d6e836f "nir: Add option to lower tex to txl when..."
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11775>

2 years agopan/mdg: Garbage collect silly quirk
Alyssa Rosenzweig [Fri, 23 Jul 2021 15:44:35 +0000 (11:44 -0400)]
pan/mdg: Garbage collect silly quirk

As discussed with Jason and Connor, this is probably subtly broken on
Mali T720.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11775>

2 years agointel/blorp: Use nir_texop_txl
Jason Ekstrand [Fri, 9 Jul 2021 13:56:17 +0000 (08:56 -0500)]
intel/blorp: Use nir_texop_txl

We set an explicit LOD immediately afterwards so we don't want implicit
mipmap selection.

Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11775>

2 years agodocs,nir: Document NIR texture instructions
Jason Ekstrand [Wed, 7 Jul 2021 22:44:27 +0000 (17:44 -0500)]
docs,nir: Document NIR texture instructions

Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11775>

2 years agonir: Suffix all the MCS texture stuff _intel
Jason Ekstrand [Wed, 7 Jul 2021 22:06:46 +0000 (17:06 -0500)]
nir: Suffix all the MCS texture stuff _intel

It's intel-specific, used to get at MSAA compression information.

Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11775>

2 years agopanfrost: Don't handle nir_texop_txf_ms_mcs
Jason Ekstrand [Fri, 9 Jul 2021 15:57:39 +0000 (10:57 -0500)]
panfrost: Don't handle nir_texop_txf_ms_mcs

It's an intel-specific opcode and will never be seen on panfrost

Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11775>

2 years agoamd: Don't handle nir_tex_src_ms_mcs
Jason Ekstrand [Fri, 9 Jul 2021 13:32:01 +0000 (08:32 -0500)]
amd: Don't handle nir_tex_src_ms_mcs

It's an intel-specific texture source and will never be seen on AMD.

Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11775>

2 years agottn: Don't handle texop_txf_ms_mcs
Jason Ekstrand [Wed, 7 Jul 2021 22:06:16 +0000 (17:06 -0500)]
ttn: Don't handle texop_txf_ms_mcs

It's an intel-specific opcode and will never come through TGSI.

Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11775>

2 years agov3d: handle debug options with debug_named_value
Juan A. Suarez Romero [Fri, 23 Jul 2021 12:16:10 +0000 (14:16 +0200)]
v3d: handle debug options with debug_named_value

Switch from using debug_control structure to debug_named_value
structure.

The main nice feature is that it provides a "help" option, so using
"V3D_DEBUG=help" will print all the debug options with a brief
description.

Useful to avoid going to https://docs.mesa3d.org/envvars.html everytime
we need to know the available options.

v1:
 - Modify a couple of debug option documentation (Alejandro)

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12036>

2 years agotargets/graw-xlib: Add missing dep_x11
Alyssa Rosenzweig [Thu, 22 Jul 2021 15:28:44 +0000 (11:28 -0400)]
targets/graw-xlib: Add missing dep_x11

Required to build Mesa on macOS with

   -Dbuild-tests=true -Dglx=gallium-xlib

Without this change, the build fails with

   In file included from ../src/gallium/targets/graw-xlib/graw_xlib.c:8:
   ../src/gallium/include/frontend/xlibsw_api.h:5:10: fatal error: 'X11/Xlib.h' file not found
   #include <X11/Xlib.h>

With `brew sh` X11 is found but linking fails due to `llvm-ar` missing
in the path. That issue appears to be unrelated to this missing
dependency. X11 is installed via XQuartz, so Homebrew should not be
required.

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

3 years agoglsl: relax rule on varying matching for shaders older than 4.20
Timothy Arceri [Wed, 14 Jul 2021 07:29:46 +0000 (17:29 +1000)]
glsl: relax rule on varying matching for shaders older than 4.20

This expands on commit c54c42321ea5. See the code comment for full
justifications. At the time of the previous commit Ian wanted to
limit the relaxing of the rule to GLSL 3.30 as that was the highest
version of shaders seen in the wild that were having trouble with
the stricter rules.

However since then I've found that the long standing issue with tess
shaders failing to compile in the game 'Layers Of Fear' is due to
this same issue. The game uses 4.10 shaders and also makes use of
explicit varying locations, so here we relax the rule to 4.20 and
make sure to apply the restriction to shaders using varyings with
explicit locations also.

Fixes: c54c42321ea5 ("glsl: relax rule on varying matching for shaders older than 4.00")

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11873>

3 years agodraw/llvmpipe: multiply polygon offset units by 2
Dave Airlie [Mon, 20 Jul 2020 21:05:17 +0000 (07:05 +1000)]
draw/llvmpipe: multiply polygon offset units by 2

I was trying to fix this test, but noticed brw_clip.c in i965
does a * 2 here, and it seems to fix this test as well.

Fixes:
dEQP-GLES2.functional.polygon_offset.default_displacement_with_units

Fixes: f9e2c2432686 ("draw,llvmpipe,util: add depth bias calculation for arb_depth_buffer_float")

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

3 years agointel/compiler: Handle ternary add in lower_simd_width
Sagar Ghuge [Wed, 21 Jul 2021 22:24:29 +0000 (15:24 -0700)]
intel/compiler: Handle ternary add in lower_simd_width

We need to lower the add3 instruction simd width otherwise in simd32
mode, we endup writing 4 register wide data which is not allowed.

Reported-by: Jordan Justen <jordan.l.justen@intel.com>
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11985>

3 years agointel/compiler: Fix missing break in switch
Sagar Ghuge [Tue, 20 Jul 2021 02:29:03 +0000 (19:29 -0700)]
intel/compiler: Fix missing break in switch

CoverityID: 1487496

Fixes: cde9ca616d7 "intel/compiler: Make decision based on source type instead of opcode"
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11985>

3 years agopanfrost,panvk: Remove broken v4 spilling code
Alyssa Rosenzweig [Thu, 22 Jul 2021 21:34:07 +0000 (17:34 -0400)]
panfrost,panvk: Remove broken v4 spilling code

Tells you how much use Mali T720 gets that nobody noticed but
Icecream95...

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reported-by: Icecream95 <ixn@disroot.org>
Acked-by: Icecream95 <ixn@disroot.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12027>

3 years agofreedreno: Lock access to msm_pipe for RB object suballocation.
Emma Anholt [Wed, 21 Jul 2021 18:50:24 +0000 (11:50 -0700)]
freedreno: Lock access to msm_pipe for RB object suballocation.

Hopefully this fixes the flakes that have happened since the suballoc
changes.

Fixes: 737d4caa83a9 ("freedreno: Suballocate our long-lived ring objects.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12002>

3 years agogallium/ureg: Sort the output decls.
Eric Anholt [Fri, 12 Mar 2021 21:53:33 +0000 (13:53 -0800)]
gallium/ureg: Sort the output decls.

glsl_to_tgsi had been emitting outputs in sorted order, and it seems virgl
has a dependency on that -- it collects outputs into an array and indexes
by the subtracting the ".First" value of the first one seen, even if
that's not the first entry in the array.

Fixes the regressions in deqp-gles2 on virgl with ST_DEBUG=force_nir, and
fixes neverball trace rendering.

Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11934>

3 years agointel/eu: Don't validate LSC transpose on ops that don't have it
Jason Ekstrand [Tue, 20 Jul 2021 23:44:15 +0000 (18:44 -0500)]
intel/eu: Don't validate LSC transpose on ops that don't have it

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11991>

3 years agogallivm/img: use uint for image coord builder.
Dave Airlie [Thu, 15 Jul 2021 04:52:07 +0000 (14:52 +1000)]
gallivm/img: use uint for image coord builder.

VK CTS has a test that does -256 for sample index but since we use
signed >= we fail and write to random memory, changing to uint here
for comparisons for out of bounds and address calcs should ensure,
we stay within bounds even for negative vals.

Remove unused int_type/bld while here.

Fixes dEQP-VK.texture.multisample.invalid_sample_index.sample_count_4

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

3 years agollvmpipe: rework query fence signalling for get_query_result_resource
Dave Airlie [Thu, 15 Jul 2021 00:01:28 +0000 (10:01 +1000)]
llvmpipe: rework query fence signalling for get_query_result_resource

For compute shaders stats avail was never signalling because nothing
flushed.

Fixes dEQP-VK.query_pool.statistics_query.host_query_reset.compute_shader_invocations.64bits_cmdcopyquerypoolresults_primary
and others

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

3 years agoturnip: Replace tu_lower_image_size with nir_lower_image
Jason Ekstrand [Wed, 21 Jul 2021 21:52:35 +0000 (16:52 -0500)]
turnip: Replace tu_lower_image_size with nir_lower_image

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

3 years agoradv,radeonsi: Do cube size divide-by-6 lowering in NIR
Jason Ekstrand [Wed, 21 Jul 2021 21:41:14 +0000 (16:41 -0500)]
radv,radeonsi: Do cube size divide-by-6 lowering in NIR

No point in carrying all this code around twice each in two back-ends.

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

3 years agonir/lower_tex: Add a lower_txs_cube_array option
Jason Ekstrand [Wed, 21 Jul 2021 21:39:15 +0000 (16:39 -0500)]
nir/lower_tex: Add a lower_txs_cube_array option

Several bits of hardware require the division by 6 to happen in the
shader.  May as well have common lowering for it.

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

3 years agonir/lower_image: Handle index and bindless image_size
Jason Ekstrand [Thu, 22 Jul 2021 05:17:33 +0000 (00:17 -0500)]
nir/lower_image: Handle index and bindless image_size

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

3 years agopan/bi: Mark mod to string as maybe unused
Alyssa Rosenzweig [Wed, 21 Jul 2021 19:14:17 +0000 (15:14 -0400)]
pan/bi: Mark mod to string as maybe unused

Fixes warnings like the following under clang:

src/panfrost/bifrost/bi_printer.c:599:1: warning: unused function 'bi_widen_as_str' [-Wunused-function]
bi_widen_as_str(enum bi_widen widen)

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

3 years agopan/bi: Remove duplicate NIR compiler options
Alyssa Rosenzweig [Wed, 21 Jul 2021 19:14:17 +0000 (15:14 -0400)]
pan/bi: Remove duplicate NIR compiler options

Fixes the warning caught by clang (why did gcc miss this one?)

../src/panfrost/bifrost/bifrost_compile.h:81:45: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
        .lower_bitfield_extract_to_shifts = true,

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

3 years agopan/bi: Add explicit cast for lod_or_mode
Alyssa Rosenzweig [Wed, 21 Jul 2021 19:14:17 +0000 (15:14 -0400)]
pan/bi: Add explicit cast for lod_or_mode

The enums alias. Fixes the following warning under clang:

../src/panfrost/bifrost/bifrost_compile.c:2515:25: warning: implicit conversion from enumeration type 'enum bifrost_texture_fetch' to different enumeration type 'enum bifrost_lod_mode' [-Wenum-conversion]
                        BIFROST_TEXTURE_FETCH_TEXEL;

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

3 years agopanfrost: Only build libpanfrost with GL/VK
Alyssa Rosenzweig [Wed, 21 Jul 2021 19:14:17 +0000 (15:14 -0400)]
panfrost: Only build libpanfrost with GL/VK

It's not needed for the standalone compiler. These depend on xf86drm.h which is
not available on other platforms where we might want to build the standalone
compiler.

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

3 years agopanfrost: Remove unnecessary bifrost_compiler deps
Alyssa Rosenzweig [Wed, 21 Jul 2021 19:14:17 +0000 (15:14 -0400)]
panfrost: Remove unnecessary bifrost_compiler deps

These dependencies are not necessarily portbale, but bifrost_compiler itself is.

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

3 years agomeson: Build panfrost with tools=panfrost
Alyssa Rosenzweig [Wed, 21 Jul 2021 19:14:17 +0000 (15:14 -0400)]
meson: Build panfrost with tools=panfrost

...even if neither GL or VK drivers are being built. Useful for building the
standalone compiler on non-Linux systems.

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

3 years agogallivm: fix FTBFS on i386 with LLVM >= 13, StackAlignmentOverride is gone
Kai Wasserbäch [Thu, 22 Jul 2021 05:42:12 +0000 (07:42 +0200)]
gallivm: fix FTBFS on i386 with LLVM >= 13, StackAlignmentOverride is gone

Use the newly added wrapper lp_set_module_stack_alignment_override() to
achieve the same end result.

Signed-off-by: Kai Wasserbäch <kai@dev.carbon-project.org>
Closes: mesa/mesa#4906
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11940>

3 years agogallivm: add new wrapper around Module::setOverrideStackAlignment()
Kai Wasserbäch [Thu, 22 Jul 2021 05:34:09 +0000 (07:34 +0200)]
gallivm: add new wrapper around Module::setOverrideStackAlignment()

We need it in the next commit to replace setting the stack alignment on
i386 with LLVM >= 13 through the TargetOption::StackAlignmentOverride,
which was removed in the upstream commit
<https://github.com/llvm/llvm-project/commit/3787ee457173c3612aac4c9b1a2b6d6ab0202616>.

Unfortunately Module::setOverrideStackAlignment() is not available
through the C API and we need to wrap it ourselves.

Signed-off-by: Kai Wasserbäch <kai@dev.carbon-project.org>
Reference: mesa/mesa#4906
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11940>

3 years agoegl: add support for EGL_EXT_device_drm_render_node
Simon Ser [Fri, 9 Jul 2021 11:10:24 +0000 (13:10 +0200)]
egl: add support for EGL_EXT_device_drm_render_node

This new EGL extension has been introduced in [1].

When we have a DRM device and a render node, we can advertise the
extension and return the render node name for the
EGL_DRM_RENDER_NODE_FILE_EXT query.

For the special software EGL device, we can advertise the extension
and return NULL for the EGL_DRM_RENDER_NODE_FILE_EXT query, because
we can guarantee that llvmpipe will never use a render node for
rendering operations.

However, llvmpipe might be using a primary node when used with the
GBM platform. So we can't advertise EXT_device_drm in this case.

When we have a DRM device but no render node, that means we're on a
split render/display SoC. We _should_ return the render node used
by the renderonly driver, however Mesa needs more plumbing to allow
this, so let's just disable the extension for now.

[1]: https://github.com/KhronosGroup/EGL-Registry/pull/127

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11797>

3 years agoEGL: sync headers with Khronos
Simon Ser [Fri, 9 Jul 2021 10:30:14 +0000 (12:30 +0200)]
EGL: sync headers with Khronos

Taken from EGL-Registry commit dc0b58dca533c5882c38bc623d133190fff883a4.

Signed-off-by: Simon Ser <contact@emersion.fr>
Acked-by: Emil Velikov <emil.l.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11797>

3 years agoci/v3d: add piglit flake test
Juan A. Suarez Romero [Thu, 22 Jul 2021 14:56:56 +0000 (16:56 +0200)]
ci/v3d: add piglit flake test

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12020>

3 years agoaco: don't create v_madmk_f32/v_madak_f32 from v_fma_legacy_f16
Rhys Perry [Wed, 21 Jul 2021 19:18:12 +0000 (20:18 +0100)]
aco: don't create v_madmk_f32/v_madak_f32 from v_fma_legacy_f16

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

3 years agofreedreno/registers: update dsi registers to support tpg
Rob Clark [Thu, 22 Jul 2021 03:12:10 +0000 (20:12 -0700)]
freedreno/registers: update dsi registers to support tpg

Based-on: https://patchwork.freedesktop.org/patch/445672/?series=92870&rev=1
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12021>

3 years agoutil: add workaround for Full Bore
Timothy Arceri [Sat, 17 Jul 2021 11:39:55 +0000 (21:39 +1000)]
util: add workaround for Full Bore

Unfortunately I contacted the dev about this issue years ago and he
made a fix, but it has never been released after all these years.

This stops the screen from being completely black in game.

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

3 years agollvmpipe: add support for time elapsed queries.
Dave Airlie [Mon, 19 Jul 2021 01:57:12 +0000 (11:57 +1000)]
llvmpipe: add support for time elapsed queries.

It turns out for QBO you really need to explicitly support time
elapsed queries to avoid wierd interactions with the non-qbo
query paths.

Fixes: 506e51b8560f ("llvmpipe: initial query buffer object support. (v2)")
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11946>

3 years agoRevert "CI: Disable LAVA devices"
Daniel Stone [Thu, 22 Jul 2021 07:40:48 +0000 (08:40 +0100)]
Revert "CI: Disable LAVA devices"

This reverts commit 1f4ff4ed2e6fbefb5026d8300a80049ccf4912a5.

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

3 years agozink: fix cached descriptor allocation clamping
Mike Blumenkrantz [Fri, 21 May 2021 20:45:41 +0000 (16:45 -0400)]
zink: fix cached descriptor allocation clamping

the number of allocated sets should be directly compared to the maximum

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

3 years agozink: improve lazy descriptor pool handling
Mike Blumenkrantz [Fri, 21 May 2021 21:17:09 +0000 (17:17 -0400)]
zink: improve lazy descriptor pool handling

do set allocation when getting pool, queue filled pools for delete

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

3 years agozink: add define for descriptor alloc clamping
Mike Blumenkrantz [Tue, 1 Jun 2021 12:09:14 +0000 (08:09 -0400)]
zink: add define for descriptor alloc clamping

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

3 years agozink: clamp descriptor allocation bucket sizing to defined limit
Mike Blumenkrantz [Fri, 21 May 2021 20:45:08 +0000 (16:45 -0400)]
zink: clamp descriptor allocation bucket sizing to defined limit

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

3 years agozink: split mem cache per type
Mike Blumenkrantz [Wed, 12 May 2021 12:27:12 +0000 (08:27 -0400)]
zink: split mem cache per type

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

3 years agozink: inline mem cache hash table
Mike Blumenkrantz [Wed, 12 May 2021 12:18:08 +0000 (08:18 -0400)]
zink: inline mem cache hash table

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

3 years agozink: move mem cache to sub-struct
Mike Blumenkrantz [Wed, 12 May 2021 12:15:25 +0000 (08:15 -0400)]
zink: move mem cache to sub-struct

no functional changes

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

3 years agozink: rework oom flushing
Mike Blumenkrantz [Sat, 15 May 2021 14:20:43 +0000 (10:20 -0400)]
zink: rework oom flushing

tracking mem usage on the context is bad because if an app is always using
a large amount of memory across multiple batches, it triggers the oom flushes
on every flush and forces fencing

instead, add an explicit flag for oom flushing and another for stalling, then
flag oom flushing and stalling as needed, with set_framebuffer_state being an
additional flush point now since it's guaranteed not to split renderpasses

also proactively prune pending batch states if there's a lot of them

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

3 years agozink: add a param to check_batch_completion for toggling lock-taking
Mike Blumenkrantz [Wed, 9 Jun 2021 18:12:13 +0000 (14:12 -0400)]
zink: add a param to check_batch_completion for toggling lock-taking

need this to avoid deadlocks

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

3 years agozink: use a local var for draw mode during draw
Mike Blumenkrantz [Tue, 20 Jul 2021 00:41:17 +0000 (20:41 -0400)]
zink: use a local var for draw mode during draw

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

3 years agozink: make batch_rp and norp static inlines
Mike Blumenkrantz [Tue, 11 May 2021 23:42:20 +0000 (19:42 -0400)]
zink: make batch_rp and norp static inlines

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

3 years agozink: make zink_end_render_pass public
Mike Blumenkrantz [Tue, 11 May 2021 23:42:12 +0000 (19:42 -0400)]
zink: make zink_end_render_pass public

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

3 years agozink: split draw_count checking to local variable
Mike Blumenkrantz [Tue, 11 May 2021 23:29:36 +0000 (19:29 -0400)]
zink: split draw_count checking to local variable

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

3 years agozink: split and move maybe_flush_or_stall mechanic
Mike Blumenkrantz [Tue, 11 May 2021 22:13:02 +0000 (18:13 -0400)]
zink: split and move maybe_flush_or_stall mechanic

the batch state counting belongs in the flush call, and draws/computes
should each just check their counts and flush directly

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

3 years agozink: handle vertex buffer offset overflows
Mike Blumenkrantz [Thu, 13 May 2021 19:54:36 +0000 (15:54 -0400)]
zink: handle vertex buffer offset overflows

there's a screen limit for vertex buffer offsets (???), so if a buffer
is going to overflow that limit, just rebind it as a new tmp buffer and
clamp the offset to 0

this also applies to buffer rebinds

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

3 years agozink: change vbo_bind_count to a mask of slots
Mike Blumenkrantz [Fri, 14 May 2021 14:44:02 +0000 (10:44 -0400)]
zink: change vbo_bind_count to a mask of slots

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

3 years agozink: add mechanism for generating VkBuffers for rebinding
Mike Blumenkrantz [Thu, 13 May 2021 18:54:43 +0000 (14:54 -0400)]
zink: add mechanism for generating VkBuffers for rebinding

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

3 years agomeson: allow egl_native_platform to be specified
Chia-I Wu [Wed, 21 Jul 2021 00:52:47 +0000 (17:52 -0700)]
meson: allow egl_native_platform to be specified

After commit f8dc22bf61c, it was no longer possible to have explicitly
enabled platforms with surfaceless being the EGL native platform.  This
fixes that by adding -Degl-native-platform.

Fixes: f8dc22bf61c ("meson: drop deprecated EGL platform build options")
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11992>