mesa.git
4 years agomeson: Bump required version to 0.52.0
Dylan Baker [Fri, 24 Apr 2020 17:58:53 +0000 (10:58 -0700)]
meson: Bump required version to 0.52.0

This matches what other graphics space projects require now, and allows
us to simplify a number of cases, as well as make use of new features in
meson.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2737
Acked-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4740>

4 years agopan/mdg: Enable out-of-order execution after texture ops
Alyssa Rosenzweig [Thu, 21 May 2020 23:14:23 +0000 (19:14 -0400)]
pan/mdg: Enable out-of-order execution after texture ops

We don't make great use of it (due to the scheduler not being aware
yet), but we can pack for it regardless and maybe pick up some win.

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

4 years agopan/mdg: Add quirk for missing out-of-order support
Alyssa Rosenzweig [Mon, 1 Jun 2020 18:26:11 +0000 (14:26 -0400)]
pan/mdg: Add quirk for missing out-of-order support

Added in T760, like the other good parts of Midgard.

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

4 years agopan/mdg: Disassemble out-of-order bits
Alyssa Rosenzweig [Thu, 21 May 2020 22:51:52 +0000 (18:51 -0400)]
pan/mdg: Disassemble out-of-order bits

Optimization for texture instructions, allowing ALU and LD/ST within a
single thread while a texture read is still in flight.

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

4 years agopanfrost: Remove unused nir_lower_framebuffer pass
Alyssa Rosenzweig [Mon, 25 May 2020 17:21:37 +0000 (13:21 -0400)]
panfrost: Remove unused nir_lower_framebuffer pass

Superseded.

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

4 years agopanfrost: Don't flush explicitly when mipmapping
Alyssa Rosenzweig [Wed, 20 May 2020 18:33:38 +0000 (14:33 -0400)]
panfrost: Don't flush explicitly when mipmapping

The reorder work already takes cares of this nicely.

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

4 years agopanfrost: Use VTX tag for vertex texturing
Alyssa Rosenzweig [Thu, 21 May 2020 17:23:46 +0000 (13:23 -0400)]
panfrost: Use VTX tag for vertex texturing

Fixes BARRIER faults.

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

4 years agopanfrost: Permit AFBC of RGB8
Alyssa Rosenzweig [Thu, 21 May 2020 23:43:18 +0000 (19:43 -0400)]
panfrost: Permit AFBC of RGB8

Ugly but hey.

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

4 years agopanfrost: Fix PRESENT flag mix-up
Alyssa Rosenzweig [Thu, 21 May 2020 23:53:34 +0000 (19:53 -0400)]
panfrost: Fix PRESENT flag mix-up

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

4 years agopan/mdg: Fuse f2f16 into load_interpolated_input
Alyssa Rosenzweig [Fri, 22 May 2020 20:23:06 +0000 (16:23 -0400)]
pan/mdg: Fuse f2f16 into load_interpolated_input

To become a ld_vary intrinsic.

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

4 years agopan/mdg: Handle 16-bit ld_vary
Alyssa Rosenzweig [Fri, 22 May 2020 20:22:48 +0000 (16:22 -0400)]
pan/mdg: Handle 16-bit ld_vary

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

4 years agopanfrost: Update fails list
Alyssa Rosenzweig [Fri, 15 May 2020 16:19:15 +0000 (12:19 -0400)]
panfrost: Update fails list

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

4 years agopanfrost: Use internal_format throughout
Alyssa Rosenzweig [Thu, 21 May 2020 21:01:38 +0000 (17:01 -0400)]
panfrost: Use internal_format throughout

Fixes R32F_S8 texturing.

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

4 years agopanfrost: Add separate_stencil BO to batch
Alyssa Rosenzweig [Thu, 21 May 2020 20:35:48 +0000 (16:35 -0400)]
panfrost: Add separate_stencil BO to batch

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

4 years agopanfrost: Check for large tilebuffer requirements
Alyssa Rosenzweig [Thu, 14 May 2020 23:53:33 +0000 (19:53 -0400)]
panfrost: Check for large tilebuffer requirements

Fixes the rest of dEQP-GLES3.functional.fragment_out.array.uint.*, this
situation occurs with MRT and large pixels.

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

4 years agopanfrost: Let Gallium pack colours
Alyssa Rosenzweig [Thu, 14 May 2020 23:33:18 +0000 (19:33 -0400)]
panfrost: Let Gallium pack colours

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

4 years agopanfrost: Account for differing types in blend lower
Alyssa Rosenzweig [Wed, 13 May 2020 20:27:25 +0000 (16:27 -0400)]
panfrost: Account for differing types in blend lower

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

4 years agopanfrost: Conditionally allow fp16 blending
Alyssa Rosenzweig [Wed, 13 May 2020 20:01:08 +0000 (16:01 -0400)]
panfrost: Conditionally allow fp16 blending

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

4 years agopanfrost: Switch to pan_lower_framebuffer
Alyssa Rosenzweig [Wed, 13 May 2020 19:04:47 +0000 (15:04 -0400)]
panfrost: Switch to pan_lower_framebuffer

It now supports what we need.

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

4 years agopanfrost: Un/pack sRGB via NIR
Alyssa Rosenzweig [Thu, 14 May 2020 22:54:38 +0000 (18:54 -0400)]
panfrost: Un/pack sRGB via NIR

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

4 years agopanfrost: Un/pack R11G11B10
Alyssa Rosenzweig [Thu, 14 May 2020 22:06:58 +0000 (18:06 -0400)]
panfrost: Un/pack R11G11B10

NIR has a helper for it already; we can reuse.

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

4 years agopanfrost: Un/pack RGB10_A2_UINT
Alyssa Rosenzweig [Thu, 14 May 2020 21:59:52 +0000 (17:59 -0400)]
panfrost: Un/pack RGB10_A2_UINT

It's different. Because forget me.

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

4 years agopanfrost: Un/pack RGB10_A2_UNORM
Alyssa Rosenzweig [Thu, 14 May 2020 21:35:25 +0000 (17:35 -0400)]
panfrost: Un/pack RGB10_A2_UNORM

It's a funny one.

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

4 years agopanfrost: Un/pack RGB565 and RGB5A1
Alyssa Rosenzweig [Thu, 14 May 2020 18:49:08 +0000 (14:49 -0400)]
panfrost: Un/pack RGB565 and RGB5A1

Basically the same as RGBA4

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

4 years agopanfrost: Un/pack UNORM 4
Alyssa Rosenzweig [Thu, 14 May 2020 17:31:07 +0000 (13:31 -0400)]
panfrost: Un/pack UNORM 4

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

4 years agopanfrost: Flesh out dispatch
Alyssa Rosenzweig [Wed, 13 May 2020 18:53:21 +0000 (14:53 -0400)]
panfrost: Flesh out dispatch

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

4 years agopanfrost: Un/pack 8-bit UNORM
Alyssa Rosenzweig [Wed, 13 May 2020 18:06:55 +0000 (14:06 -0400)]
panfrost: Un/pack 8-bit UNORM

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

4 years agopanfrost: Un/pack pure 8-bit
Alyssa Rosenzweig [Wed, 13 May 2020 17:55:51 +0000 (13:55 -0400)]
panfrost: Un/pack pure 8-bit

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

4 years agopanfrost: Un/pack pure 16-bit
Alyssa Rosenzweig [Wed, 13 May 2020 17:35:20 +0000 (13:35 -0400)]
panfrost: Un/pack pure 16-bit

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

4 years agopanfrost: Un/pack pure 32-bit
Alyssa Rosenzweig [Wed, 13 May 2020 16:36:45 +0000 (12:36 -0400)]
panfrost: Un/pack pure 32-bit

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

4 years agopanfrost: Stub out lowering boilerplate
Alyssa Rosenzweig [Wed, 13 May 2020 18:43:50 +0000 (14:43 -0400)]
panfrost: Stub out lowering boilerplate

Structure ourselves as a NIR pass replacing loads/stores with
unpacked/packed versions as necessary. Not actually functional yet.

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

4 years agopanfrost: Determine classes for stores
Alyssa Rosenzweig [Wed, 13 May 2020 16:23:53 +0000 (12:23 -0400)]
panfrost: Determine classes for stores

Fewer special cases here, thankfully.

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

4 years agopanfrost: Determine load classes for formats
Alyssa Rosenzweig [Wed, 13 May 2020 16:22:22 +0000 (12:22 -0400)]
panfrost: Determine load classes for formats

Via quirks.

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

4 years agopanfrost: Add quirks for blend shader types
Alyssa Rosenzweig [Wed, 13 May 2020 16:15:28 +0000 (12:15 -0400)]
panfrost: Add quirks for blend shader types

Every hardware has its own set of what it can and can't do... let's
document it all as quirks so the lowering code is GPU-agnostic.

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

4 years agopanfrost: Determine unpacked type for formats
Alyssa Rosenzweig [Wed, 13 May 2020 16:07:46 +0000 (12:07 -0400)]
panfrost: Determine unpacked type for formats

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

4 years agopanfrost: Add theory for new framebuffer lowering
Alyssa Rosenzweig [Wed, 13 May 2020 15:50:18 +0000 (11:50 -0400)]
panfrost: Add theory for new framebuffer lowering

We take a somewhat different strategy that should be more flexible.

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

4 years agopan/mdg: Implement raw colourbuf loads on T720
Alyssa Rosenzweig [Sat, 30 May 2020 01:11:11 +0000 (21:11 -0400)]
pan/mdg: Implement raw colourbuf loads on T720

Uses a similar path to the fp16 cbuf loads on T760. It should make sense
given the symmetry with T860.

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

4 years agopan/mdg: Drop the u8 from the colorbuf op names
Alyssa Rosenzweig [Sat, 30 May 2020 01:08:32 +0000 (21:08 -0400)]
pan/mdg: Drop the u8 from the colorbuf op names

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

4 years agopan/mdg: Print 8-bit constants
Alyssa Rosenzweig [Thu, 14 May 2020 17:30:41 +0000 (13:30 -0400)]
pan/mdg: Print 8-bit constants

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

4 years agopan/mdg: Handle bitsize for packs
Alyssa Rosenzweig [Wed, 13 May 2020 22:42:19 +0000 (18:42 -0400)]
pan/mdg: Handle bitsize for packs

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

4 years agopan/mdg: Treat packs "specially"
Alyssa Rosenzweig [Wed, 13 May 2020 22:41:52 +0000 (18:41 -0400)]
pan/mdg: Treat packs "specially"

We maybe would prefer synthetic ops? We'll find out in due time..

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

4 years agopan/mdg: Add pack_unorm_4x8 via 8-bit
Alyssa Rosenzweig [Tue, 12 May 2020 23:07:48 +0000 (19:07 -0400)]
pan/mdg: Add pack_unorm_4x8 via 8-bit

More efficient than the 32-bit version in NIR.

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

4 years agopan/mdg: Handle un/pack opcodes as moves
Alyssa Rosenzweig [Wed, 13 May 2020 20:17:46 +0000 (16:17 -0400)]
pan/mdg: Handle un/pack opcodes as moves

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

4 years agoiris: Fixup copy'n'paste mistake in Makefile.sources
Chris Wilson [Fri, 29 May 2020 18:51:28 +0000 (19:51 +0100)]
iris: Fixup copy'n'paste mistake in Makefile.sources

In changing iris_seqno.[ch] to iris_fine_fence.[ch] and moving the
lines earlier, the newline escape was forgotten.

Fixes: 034329128b703f8c2e8a ("iris: Rename iris_seqno to iris_fine_fence")
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5264>

4 years agointel/dev: Don't consider all TGL SKUs as GT1 only
Satyeshwar Singh [Thu, 28 May 2020 07:44:26 +0000 (00:44 -0700)]
intel/dev: Don't consider all TGL SKUs as GT1 only

We should be passing _gt instead of 1 to GEN12_FEATURES or else all TGL
SKUs will be considered as gt1 only.

Fixes: 54996ad4927 ("intel/dev: Split .num_subslices out of GEN12_FEATURES macro")
Signed-off-by: Satyeshwar Singh <satyeshwar.singh@intel.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5261>

4 years agor300g: Remove extra printf format specifiers.
Vinson Lee [Sat, 30 May 2020 00:13:35 +0000 (17:13 -0700)]
r300g: Remove extra printf format specifiers.

Fix warning reported by Coverity Scan.
Missing argument to printf format specifier (PRINTF_ARGS)
missing_argument: No argument for format specifier %s.

Fixes: 04c1536bf7ab ("r300g: rasterizer debug logging")
Fixes: 85efb2fff0d4 ("r300g: try to use color varyings for texcoords if max texcoord limit is exceeded")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5274>

4 years agonouveau: allow invalidating coherent/persistent buffer backings
Ilia Mirkin [Sat, 30 May 2020 06:47:42 +0000 (02:47 -0400)]
nouveau: allow invalidating coherent/persistent buffer backings

This is needed to support the core's usage of coherent buffers for
glVertex-style input. The reason why this was disallowed is that any
mappings will be invalidated. Let the state tracker worry about that,
and just reallocate when we're told.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Cc: mesa-stable@lists.freedesktop.org
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5276>

4 years agointel/fs: Emit HALT for discard on Gen4-5
Jason Ekstrand [Sat, 25 Apr 2020 19:59:30 +0000 (14:59 -0500)]
intel/fs: Emit HALT for discard on Gen4-5

Using HALT to immediately jump to the end of the shader is required to
implement GL_EXT_gpu_shader4 and OpenGL 3.0.  However, vanilla OpenGL
1.2 doesn't forbid it and it likely makes something somewhere faster.
We should be consistent and implement the same discard behavior on all
hardware if we can.

The rules for HALT on Gen4-5 are a bit different from Gen6+.  On the
older hardware, there is no stack for HALT; instead it's up to software
to save and restore mask registers.  However, there's no real saving
needed since we only use HALT to jump to the end of the program where
we're about about to do our FB writes.  All we need to do is reset AMask
to DMask, the value it was initialized to at the start of the thread.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5244>

4 years agointel/fs: Fix unused texture coordinate zeroing on Gen4-5
Jason Ekstrand [Sun, 26 Apr 2020 14:48:16 +0000 (09:48 -0500)]
intel/fs: Fix unused texture coordinate zeroing on Gen4-5

We were inserting the right number of MOVs but, thanks to the way we
advanced msg_end earlier in the function, were often writing the zeros
past the end of where we actually read in the register file.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5243>

4 years agointel/vec4: Stomp the return type of RESINFO to UINT32
Jason Ekstrand [Sat, 25 Apr 2020 19:15:11 +0000 (14:15 -0500)]
intel/vec4: Stomp the return type of RESINFO to UINT32

We already do this in the FS back-end; we just weren't doing it in vec4
so RESINFO messages weren't returning the right data.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5243>

4 years agoradv: fix regression with builtin cache
Timothy Arceri [Fri, 29 May 2020 07:02:24 +0000 (17:02 +1000)]
radv: fix regression with builtin cache

If the ~/.cache dir already exists continue on without failing.

Fixes: cd61f5234d2c ("radv: Handle failing to create .cache dir.")
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5249>

4 years agogallium/dri: Remove lowered_yuv tracking for plane mapping.
Bas Nieuwenhuizen [Fri, 29 May 2020 11:47:00 +0000 (13:47 +0200)]
gallium/dri: Remove lowered_yuv tracking for plane mapping.

Just heard that etnaviv is also compatible with it even
in the non-lowered cases, so let us enable it for everyone.

Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5253>

4 years agopanfrost: Fix printf format specifier.
Vinson Lee [Thu, 28 May 2020 23:36:54 +0000 (16:36 -0700)]
panfrost: Fix printf format specifier.

bifrost_sampler_descriptor.zero1 is of type uint8_t.

Fix warning reported by Coverity.

Invalid type in argument to printf format specifier (PRINTF_ARGS)
invalid_type: Argument s->zero1 to format specifier %lx was expected to
have type unsigned long but has type unsigned char.

Fixes: 6148d1be4bb5 ("panfrost: Fix size of bifrost sampler descriptor")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5248>

4 years agoglthread: don't upload for glDraw inside a display list and always sync
Marek Olšák [Thu, 28 May 2020 20:21:39 +0000 (16:21 -0400)]
glthread: don't upload for glDraw inside a display list and always sync

Let the vbo module handle it, not glthread.

This handles functions set in vbo_initialize_save_dispatch.

Fixes: 2840bc3065b ("glthread: upload non-VBO vertices and indices for non-Indirect non-IBM draws")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3001
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5246>

4 years agoutil/format: Add more multi-planar formats.
Bas Nieuwenhuizen [Sun, 24 May 2020 22:05:20 +0000 (00:05 +0200)]
util/format: Add more multi-planar formats.

These don't have a fourcc code as far as I can tell, but we want
them for internal Vulkan use.

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5195>

4 years agoutil/format: Use correct pipe format for VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM.
Bas Nieuwenhuizen [Sun, 24 May 2020 20:57:28 +0000 (22:57 +0200)]
util/format: Use correct pipe format for VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM.

NV12 is UVUVUV (https://wiki.videolan.org/YUV#NV12) and in Vulkan is
VK_FORMAT_G8_B8R8_2PLANE_420_UNORM. So U=B and V=R. So plane order in
VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM is YUV, which is PIPE_FORMAT_IYUV.

Further confirmation: https://fourcc.org/yuv.php U=Cb V=Cr. From the nir
ycbcr conversion, B=Cb and R=Cr.

Fixes: 75d7ee80291 "util/format: translate 422_UNORM and 420_UNORM vulkan formats"
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5195>

4 years agoutil/format: Add VK_FORMAT_D16_UNORM_S8_UINT.
Bas Nieuwenhuizen [Sun, 24 May 2020 17:11:16 +0000 (19:11 +0200)]
util/format: Add VK_FORMAT_D16_UNORM_S8_UINT.

Not participating in packing/unpacking/stencil-only/depth-only,
because it doesn't mix well in a single plane.

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5195>

4 years agoetnaviv: Fix memory leak on error path.
Vinson Lee [Tue, 26 May 2020 22:54:06 +0000 (15:54 -0700)]
etnaviv: Fix memory leak on error path.

Fix warning reported by Coverity Scan.

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

Suggested-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Fixes: eed5a009897a ("etnaviv: convert perfmon queries to acc queries")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5220>

4 years agopanfrost: Probe G31/G52 if PAN_MESA_DEBUG=bifrost
Alyssa Rosenzweig [Fri, 29 May 2020 23:24:45 +0000 (19:24 -0400)]
panfrost: Probe G31/G52 if PAN_MESA_DEBUG=bifrost

We're not *quite* ready to open the flood gates on Bifrost (a major
blocker is CI, which is itself blocked on the lockdowns - expected to be
resolved in the coming months..)

Nevertheless, let's add a debug option to probe on compatible Bifrost
devices to avoid keeping out-of-tree patches around.

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

4 years agopanfrost: Add GPU IDs for G31/G52
Alyssa Rosenzweig [Fri, 29 May 2020 23:24:05 +0000 (19:24 -0400)]
panfrost: Add GPU IDs for G31/G52

Dvalin/Gondul respectively.

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

4 years agopanfrost: Disable QUAD_STRIP/POLYGON on Bifrost
Alyssa Rosenzweig [Fri, 29 May 2020 18:02:43 +0000 (14:02 -0400)]
panfrost: Disable QUAD_STRIP/POLYGON on Bifrost

Support was dropped and now raises a DATA_INVALID_FAULT on G31. Unknown
if retained on other devices. GL_QUADS is still ok.

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

4 years agopan/bi: Passthrough deps of the branch target
Alyssa Rosenzweig [Thu, 28 May 2020 19:38:04 +0000 (15:38 -0400)]
pan/bi: Passthrough deps of the branch target

Now that we have the infrastructure, follow the branch.

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

4 years agopan/bi: Allow two successors in header packing
Alyssa Rosenzweig [Thu, 28 May 2020 19:23:18 +0000 (15:23 -0400)]
pan/bi: Allow two successors in header packing

We need to take the union of the dependencies.

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

4 years agopan/bi: Measure backwards branches as well
Alyssa Rosenzweig [Thu, 28 May 2020 19:01:14 +0000 (15:01 -0400)]
pan/bi: Measure backwards branches as well

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

4 years agopan/bi: Add bi_foreach_block_from_rev helper
Alyssa Rosenzweig [Thu, 28 May 2020 19:01:38 +0000 (15:01 -0400)]
pan/bi: Add bi_foreach_block_from_rev helper

Needed for next commit.

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

4 years agopan/bi: Defer block naming until after emit
Alyssa Rosenzweig [Thu, 28 May 2020 18:44:33 +0000 (14:44 -0400)]
pan/bi: Defer block naming until after emit

This ensures names are meaningful.

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

4 years agopan/bi: Pack unconditional branch
Alyssa Rosenzweig [Thu, 28 May 2020 18:38:44 +0000 (14:38 -0400)]
pan/bi: Pack unconditional branch

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

4 years agopan/bi: Set branch conditional bit
Alyssa Rosenzweig [Thu, 28 May 2020 18:15:09 +0000 (14:15 -0400)]
pan/bi: Set branch conditional bit

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

4 years agopan/bi: Set back-to-back bit more accurately
Alyssa Rosenzweig [Thu, 28 May 2020 18:13:12 +0000 (14:13 -0400)]
pan/bi: Set back-to-back bit more accurately

See Connor's ISA notes. Basically set unless it's a branch (explicit or
fallthrough).

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

4 years agopan/bi: Set branch_conditional if b2b is set
Alyssa Rosenzweig [Thu, 28 May 2020 18:01:29 +0000 (14:01 -0400)]
pan/bi: Set branch_conditional if b2b is set

Match the blob.

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

4 years agopan/bi: Pack proper clause offsets
Alyssa Rosenzweig [Thu, 28 May 2020 18:00:45 +0000 (14:00 -0400)]
pan/bi: Pack proper clause offsets

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

4 years agopan/bi: Measure distance between blocks
Alyssa Rosenzweig [Thu, 28 May 2020 17:49:59 +0000 (13:49 -0400)]
pan/bi: Measure distance between blocks

For branch offset calculation.

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

4 years agopan/bi: Add bi_foreach_clause_in_block_from{_rev} helpers
Alyssa Rosenzweig [Thu, 28 May 2020 17:49:41 +0000 (13:49 -0400)]
pan/bi: Add bi_foreach_clause_in_block_from{_rev} helpers

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

4 years agopan/bi: Link clauses back to their blocks
Alyssa Rosenzweig [Thu, 28 May 2020 17:48:46 +0000 (13:48 -0400)]
pan/bi: Link clauses back to their blocks

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

4 years agopan/bi: Preliminary branch packing
Alyssa Rosenzweig [Thu, 28 May 2020 16:39:42 +0000 (12:39 -0400)]
pan/bi: Preliminary branch packing

Simple == 0 branch packing. Offset is still to-do.

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

4 years agopan/bi: Assign constant port for branch offsets
Alyssa Rosenzweig [Thu, 28 May 2020 17:27:31 +0000 (13:27 -0400)]
pan/bi: Assign constant port for branch offsets

By convention.

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

4 years agopan/bi: Set branch_constant if there is a branch
Alyssa Rosenzweig [Thu, 28 May 2020 17:14:53 +0000 (13:14 -0400)]
pan/bi: Set branch_constant if there is a branch

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

4 years agopan/bi: Pack branch offset constants
Alyssa Rosenzweig [Thu, 28 May 2020 17:08:04 +0000 (13:08 -0400)]
pan/bi: Pack branch offset constants

This is not fully generic but for a single constant it will do.
Extensions left for future work.

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

4 years agopan/bi: Add branch constant field to IR
Alyssa Rosenzweig [Thu, 28 May 2020 16:53:22 +0000 (12:53 -0400)]
pan/bi: Add branch constant field to IR

The offsets used for branches need some extra bits twiddled, so add a
field to the clause to indicate this is happening. This is not ambiguous
since a clause can only have a single branch.

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

4 years agopan/bi: Passthrough ZERO in branch packing
Alyssa Rosenzweig [Thu, 28 May 2020 16:39:26 +0000 (12:39 -0400)]
pan/bi: Passthrough ZERO in branch packing

There's a special mode for it.

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

4 years agopan/bi: Fix branch condition typesize
Alyssa Rosenzweig [Thu, 28 May 2020 16:39:14 +0000 (12:39 -0400)]
pan/bi: Fix branch condition typesize

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

4 years agopan/bi: Fix CONVERT component counting
Alyssa Rosenzweig [Wed, 27 May 2020 22:35:50 +0000 (18:35 -0400)]
pan/bi: Fix CONVERT component counting

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

4 years agopan/bi: Only rewrite COMBINE dest if not SSA
Alyssa Rosenzweig [Wed, 27 May 2020 22:29:01 +0000 (18:29 -0400)]
pan/bi: Only rewrite COMBINE dest if not SSA

If it's already a register, there's no point in rewriting and it will
disturb the existing register, i.e. for

   if (..) {
      r0 = vecN ..
   } else {
      r0 = vecN ..
   }

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

4 years agopan/bi: Fix emit_if successor assignment
Alyssa Rosenzweig [Wed, 27 May 2020 22:27:08 +0000 (18:27 -0400)]
pan/bi: Fix emit_if successor assignment

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fixes: 9a00cf3d1ef ("pan/bi: Add support for if-else blocks")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260>

4 years agopan/bi: Allow printing branches without targets
Alyssa Rosenzweig [Wed, 27 May 2020 22:09:44 +0000 (18:09 -0400)]
pan/bi: Allow printing branches without targets

Useful for debugging codegen.

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

4 years agopan/bi: Remove schedule_barrier
Alyssa Rosenzweig [Wed, 27 May 2020 21:58:41 +0000 (17:58 -0400)]
pan/bi: Remove schedule_barrier

Legacy from Midgard.

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

4 years agopan/bi: Add helper to measure clause size
Alyssa Rosenzweig [Tue, 5 May 2020 22:20:08 +0000 (18:20 -0400)]
pan/bi: Add helper to measure clause size

Useful for branching.

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

4 years agopan/bi: Add bi_layout.c for clause layout helpers
Alyssa Rosenzweig [Tue, 5 May 2020 21:58:16 +0000 (17:58 -0400)]
pan/bi: Add bi_layout.c for clause layout helpers

Figuring out what "shapes" of clauses are kosher happens during
scheduling, not packing, but shouldn't distract the scheduler. So let's
add a new file for these sorts of questions.

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

4 years agopan/bi: Remove more artefacts of 2-pass scheduling
Alyssa Rosenzweig [Tue, 5 May 2020 21:29:24 +0000 (17:29 -0400)]
pan/bi: Remove more artefacts of 2-pass scheduling

A clause is, by definition, already scheduled.

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

4 years agopan/bi: Add MUL.i32 to disasm
Alyssa Rosenzweig [Tue, 5 May 2020 20:15:44 +0000 (16:15 -0400)]
pan/bi: Add MUL.i32 to disasm

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

4 years agopan/bi: Disassemble pos=0xe
Alyssa Rosenzweig [Tue, 5 May 2020 20:15:36 +0000 (16:15 -0400)]
pan/bi: Disassemble pos=0xe

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

4 years agopan/bi: Document constant count invariant
Alyssa Rosenzweig [Tue, 5 May 2020 20:15:16 +0000 (16:15 -0400)]
pan/bi: Document constant count invariant

   constants + instructions <= 13

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

4 years agopan/bi: Move bi_flip_ports out of port assignment
Alyssa Rosenzweig [Tue, 5 May 2020 18:34:58 +0000 (14:34 -0400)]
pan/bi: Move bi_flip_ports out of port assignment

It's more of a packing fixup than anything scheduler-y, and port
assignment will soon be the domain of the scheduler.

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

4 years agopan/bi: Add FILE* argument to bi_print_registers
Alyssa Rosenzweig [Tue, 5 May 2020 18:31:20 +0000 (14:31 -0400)]
pan/bi: Add FILE* argument to bi_print_registers

In case we need it in general IR printing.

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

4 years agopan/bi: Drop `struct` from bi_registers
Alyssa Rosenzweig [Tue, 5 May 2020 18:30:06 +0000 (14:30 -0400)]
pan/bi: Drop `struct` from bi_registers

It's a full-fledged part of the IR now.

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

4 years agopan/bi: Move bi_registers to bi_bundle
Alyssa Rosenzweig [Tue, 5 May 2020 18:28:53 +0000 (14:28 -0400)]
pan/bi: Move bi_registers to bi_bundle

Make it a part of the IR itself.

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

4 years agopan/bi: Move bi_registers to common IR structures
Alyssa Rosenzweig [Tue, 5 May 2020 18:23:41 +0000 (14:23 -0400)]
pan/bi: Move bi_registers to common IR structures

Port assignments are critical to scheduling, this can't just live in
bi_pack.

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

4 years agopan/bi: Remove comment about old scheduler design
Alyssa Rosenzweig [Tue, 5 May 2020 18:17:58 +0000 (14:17 -0400)]
pan/bi: Remove comment about old scheduler design

I've realized it really has to be 1-pass to be sane.

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

4 years agopan/bi: Remove FMA? parameter from get_src
Alyssa Rosenzweig [Mon, 4 May 2020 23:46:32 +0000 (19:46 -0400)]
pan/bi: Remove FMA? parameter from get_src

We can lower away zeroes a bit earlier.

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

4 years agopanfrost: Preload gl_FragCoord on Bifrost
Alyssa Rosenzweig [Fri, 29 May 2020 20:06:39 +0000 (16:06 -0400)]
panfrost: Preload gl_FragCoord on Bifrost

It's a precoloured register but we do need to specify in the cmdstream
that we want the preloading to happen.

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