mesa.git
16 months agovirgl: apply bgra dest swizzle and add Portal 2
Gurchetan Singh [Mon, 15 Jun 2020 17:52:57 +0000 (10:52 -0700)]
virgl: apply bgra dest swizzle and add Portal 2

Apply the destination swizzle on GLES games based on HL2 engine.
Also add Portal 2 since some people are experiencing issues with
that.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5481>

16 months agoturnip: set the API version
Jonathan Marek [Wed, 17 Jun 2020 13:57:56 +0000 (09:57 -0400)]
turnip: set the API version

Some CTS tests don't run because of this.

Fixes: 91c757b7963f458 ("turnip: use the common code for generating extensions and dispatch tables")
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5522>

16 months agoradv: only requires LLVM 9 for GFX10 if not using ACO
Samuel Pitoiset [Sat, 13 Jun 2020 12:23:17 +0000 (14:23 +0200)]
radv: only requires LLVM 9 for GFX10 if not using ACO

In case someone links RADV with LLVM 8 and wants to use ACO.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5454>

16 months agoRevert "CI: Disable Panfrost Mali-T820 jobs"
Neil Armstrong [Fri, 24 Apr 2020 09:07:32 +0000 (11:07 +0200)]
Revert "CI: Disable Panfrost Mali-T820 jobs"

This reverts commit 46a32f0b6bf91279d001a4905babe4e50007696e.

The lab has recovered health, thus re-enable T820 Panfrost jobs.

Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4727>

16 months agoRevert "CI: Disable Lima jobs due to lab unhealthiness"
Neil Armstrong [Fri, 24 Apr 2020 09:07:31 +0000 (11:07 +0200)]
Revert "CI: Disable Lima jobs due to lab unhealthiness"

This reverts commit adeef43d15092a6910dceb3605f5ee3151dd2c47.

The lab has recovered health, thus re-enable Lima jobs.

Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4727>

16 months agoradv: compute CB_SHADER_MASK from the fragment shader outputs
Samuel Pitoiset [Thu, 11 Jun 2020 14:27:17 +0000 (16:27 +0200)]
radv: compute CB_SHADER_MASK from the fragment shader outputs

The fragment shader doesn't necessarily output the number of components
expected by the target format.

Fixes new dEQP-VK.draw.output_location.*.

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

16 months agoradv: make sure to set CB_SHADER_MASK correctly for internal CB operations
Samuel Pitoiset [Thu, 11 Jun 2020 13:39:46 +0000 (15:39 +0200)]
radv: make sure to set CB_SHADER_MASK correctly for internal CB operations

It should be always set to 0xf.

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

16 months agodocs/features: remove driver-list for forward-compatible context
Erik Faye-Lund [Thu, 18 Jun 2020 08:43:36 +0000 (10:43 +0200)]
docs/features: remove driver-list for forward-compatible context

This is something that's supported by the Gallium state-tracker, there's
nothing to be done per driver here.

16 months agodocs/features: update ARB_texture_buffer_object line
Erik Faye-Lund [Thu, 18 Jun 2020 08:41:43 +0000 (10:41 +0200)]
docs/features: update ARB_texture_buffer_object line

This extension isn't just exposed in OpenGL 3.1 contexts any longer, and
Zink supports it. Let's mark it as such.

16 months agodocs/features: mark GL3 as complete for zink
Erik Faye-Lund [Thu, 18 Jun 2020 08:40:27 +0000 (10:40 +0200)]
docs/features: mark GL3 as complete for zink

16 months agoradv: lower discards to demote to workaround a RDR2 game bug
Samuel Pitoiset [Wed, 17 Jun 2020 14:35:05 +0000 (16:35 +0200)]
radv: lower discards to demote to workaround a RDR2 game bug

This fixes some sort of LOD issue.

Cc: 20.1 <mesa-stable@lists.freedesktop.org>
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5525>

16 months agoglsl_to_nir: fix vote_any/vote_all
Rob Clark [Wed, 17 Jun 2020 00:46:43 +0000 (17:46 -0700)]
glsl_to_nir: fix vote_any/vote_all

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5505>

16 months agoglsl_to_nir: fix shader_clock
Rob Clark [Wed, 17 Jun 2020 00:45:59 +0000 (17:45 -0700)]
glsl_to_nir: fix shader_clock

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5505>

16 months agoglsl_to_nir: fix is_helper_invocation
Rob Clark [Tue, 16 Jun 2020 23:36:32 +0000 (16:36 -0700)]
glsl_to_nir: fix is_helper_invocation

Reported-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5505>

16 months agospirv: drop some dead code
Rob Clark [Tue, 16 Jun 2020 18:23:26 +0000 (11:23 -0700)]
spirv: drop some dead code

This case is never hit, we don't have a nir intrinsic for this spirv
opcode.  And when we do, I'm not sure if it would be vectorized or not.
So best just to drop this case.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5505>

16 months agospirv: atomic_counter_read_deref is not vectorized
Rob Clark [Tue, 16 Jun 2020 18:21:29 +0000 (11:21 -0700)]
spirv: atomic_counter_read_deref is not vectorized

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3141
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5505>

16 months agoturnip: fix renderpass gmem configs when there are too many attachments
Jonathan Marek [Tue, 16 Jun 2020 14:45:58 +0000 (10:45 -0400)]
turnip: fix renderpass gmem configs when there are too many attachments

Since a value of at least "align" is used for nblocks, we might end up
with nblocks greater than the number of GMEM blocks remaining. Check for
this case and bail out, sysmem rendering will be used for such cases.

Fixes some of these tests:
dEQP-VK.pipeline.render_to_image.core.*.huge.*

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5499>

16 months agoturnip: fix a sample shading case
Jonathan Marek [Tue, 16 Jun 2020 13:11:02 +0000 (09:11 -0400)]
turnip: fix a sample shading case

Check pipeline's sampleShadingEnable to enable sample shading.

Also fix behavior of gl_Fragcoord with sample shading.

Fixes at least:
dEQP-VK.pipeline.multisample.min_sample_shading.min_0_5.samples_4.primitive_triangle

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5499>

16 months agoturnip: fix a crash when rasterizerDiscardEnable is set
Jonathan Marek [Wed, 17 Jun 2020 18:23:37 +0000 (14:23 -0400)]
turnip: fix a crash when rasterizerDiscardEnable is set

pMultisampleState needs to be ignored when rasterizerDiscardEnable, so the
current code can crash when trying to load msaa_info->pNext.

At the same time this simplifies tu_pipeline_shader_key_init a bit, by not
calling it for the compute shader case (which doesn't need to set anything
in the key struct).

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5499>

16 months agodocs: remind release maintainers to sign the tarballs and publish their key
Eric Engestrom [Fri, 22 Nov 2019 14:21:05 +0000 (14:21 +0000)]
docs: remind release maintainers to sign the tarballs and publish their key

Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2857>

16 months agodocs: publish our release maintainers' keys
Eric Engestrom [Fri, 22 Nov 2019 14:10:50 +0000 (14:10 +0000)]
docs: publish our release maintainers' keys

They should be published to various key servers as well, but this
provides the authoritative source for their list.

Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2140
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2857>

16 months agofreedreno/ir3: update obsolete comment
Rob Clark [Sun, 14 Jun 2020 16:53:11 +0000 (09:53 -0700)]
freedreno/ir3: update obsolete comment

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

16 months agofreedreno/computerator: MERGEDREGS update
Rob Clark [Sat, 13 Jun 2020 17:43:00 +0000 (10:43 -0700)]
freedreno/computerator: MERGEDREGS update

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

16 months agoturnip: set .MERGEDREGS based on variant
Rob Clark [Sat, 13 Jun 2020 16:35:40 +0000 (09:35 -0700)]
turnip: set .MERGEDREGS based on variant

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

16 months agofreedreno/a6xx: set .MERGEREGS based on variant
Rob Clark [Sat, 13 Jun 2020 16:31:11 +0000 (09:31 -0700)]
freedreno/a6xx: set .MERGEREGS based on variant

Also set HALFREGFOOTPRINT, since in the non-mergeregs case this will be
non-zero.

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

16 months agofreedreno/ir3: make mergedregs a property of the variant
Rob Clark [Sat, 13 Jun 2020 03:48:36 +0000 (20:48 -0700)]
freedreno/ir3: make mergedregs a property of the variant

Rather than assuming a6xx+ means mergedregs.  We can actually (mostly?)
do splitregs on a6xx as well.  And GS/DS/HS currently require it, which
might be papering over a bug, or might be something to do with how
chaining shaders works.  At any rate, we should at least be consistent,
and not have the compiler thinking we are doing mergedregs when we are
actually doing splitregs.

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

16 months agofreedreno/ir3: re-work assembler API
Rob Clark [Sat, 13 Jun 2020 17:49:47 +0000 (10:49 -0700)]
freedreno/ir3: re-work assembler API

Just pass thru the variant, since it has everything we need.  And
will be needed in the next patch.

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

16 months agofreedreno/ir3: pass variant to postsched
Rob Clark [Sat, 13 Jun 2020 16:23:57 +0000 (09:23 -0700)]
freedreno/ir3: pass variant to postsched

Prep for the next patch.

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

16 months agofreedreno/ir3: decouple regset from gpu gen
Rob Clark [Sat, 13 Jun 2020 03:56:48 +0000 (20:56 -0700)]
freedreno/ir3: decouple regset from gpu gen

Allow different regset's to coexist, so we can make mergedregs vs split
reg file a variant property.

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

16 months agofreedreno/ir3: move mergedreg state out of reg
Rob Clark [Sat, 13 Jun 2020 03:42:36 +0000 (20:42 -0700)]
freedreno/ir3: move mergedreg state out of reg

It is only needed one place, let's move it there.

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

16 months agofreedreno/ir3: convert regmask_t to struct
Rob Clark [Sat, 13 Jun 2020 03:33:31 +0000 (20:33 -0700)]
freedreno/ir3: convert regmask_t to struct

Prep to make merged/split register file mode a property of the regmask,
rather than the ir3_register.

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

16 months agofreedreno/fdl6: rework layout code a bit (reduce linear align to 64 bytes)
Jonathan Marek [Tue, 9 Jun 2020 22:48:34 +0000 (18:48 -0400)]
freedreno/fdl6: rework layout code a bit (reduce linear align to 64 bytes)

Reduce linear alignment, and rework the layout code a bit.

This rework has a side effect of also increasing the alignment on linear
levels of tiled (non-ubwc) cpp=1 and cpp=2 layouts. Since we should be
UBWC for those cases anyway, its not a big loss.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5013>

16 months agofreedreno/a6xx: FETCHSIZE is PITCHALIGN
Jonathan Marek [Tue, 12 May 2020 16:34:37 +0000 (12:34 -0400)]
freedreno/a6xx: FETCHSIZE is PITCHALIGN

"FETCHSIZE" is actually a "minimum pitch" or "pitchalign" value that's
relevant for mipmaps. The 0 value means 64-bytes. Understanding this allows
some simplifications and will make it possible to use less alignment on
linear formats.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5013>

16 months agovirgl: replace all dup() with os_dupfd_cloexec()
Eric Engestrom [Fri, 5 Jun 2020 08:55:41 +0000 (10:55 +0200)]
virgl: replace all dup() with os_dupfd_cloexec()

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5369>

16 months agosvga: replace all dup() with os_dupfd_cloexec()
Eric Engestrom [Fri, 5 Jun 2020 08:55:35 +0000 (10:55 +0200)]
svga: replace all dup() with os_dupfd_cloexec()

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5369>

16 months agofreedreno: replace all dup() with os_dupfd_cloexec()
Eric Engestrom [Fri, 5 Jun 2020 08:22:47 +0000 (10:22 +0200)]
freedreno: replace all dup() with os_dupfd_cloexec()

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5369>

16 months agoetnaviv: replace all dup() with os_dupfd_cloexec()
Eric Engestrom [Fri, 5 Jun 2020 08:22:29 +0000 (10:22 +0200)]
etnaviv: replace all dup() with os_dupfd_cloexec()

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5369>

16 months agoegl: replace all dup() with os_dupfd_cloexec()
Eric Engestrom [Fri, 5 Jun 2020 08:22:22 +0000 (10:22 +0200)]
egl: replace all dup() with os_dupfd_cloexec()

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5369>

16 months agoi965: replace all dup() with os_dupfd_cloexec()
Eric Engestrom [Fri, 5 Jun 2020 08:55:03 +0000 (10:55 +0200)]
i965: replace all dup() with os_dupfd_cloexec()

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5369>

16 months agoiris: replace all dup() with os_dupfd_cloexec()
Eric Engestrom [Fri, 5 Jun 2020 08:54:51 +0000 (10:54 +0200)]
iris: replace all dup() with os_dupfd_cloexec()

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5369>

16 months agoanv: replace all dup() with os_dupfd_cloexec()
Eric Engestrom [Fri, 5 Jun 2020 08:54:43 +0000 (10:54 +0200)]
anv: replace all dup() with os_dupfd_cloexec()

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5369>

16 months agoradv: replace all dup() with os_dupfd_cloexec()
Eric Engestrom [Fri, 5 Jun 2020 08:22:04 +0000 (10:22 +0200)]
radv: replace all dup() with os_dupfd_cloexec()

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5369>

16 months agovulkan/wsi: replace all dup() with os_dupfd_cloexec()
Eric Engestrom [Fri, 5 Jun 2020 08:55:22 +0000 (10:55 +0200)]
vulkan/wsi: replace all dup() with os_dupfd_cloexec()

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5369>

16 months agoreplace all F_DUPFD_CLOEXEC with os_dupfd_cloexec()
Eric Engestrom [Thu, 4 Jun 2020 23:09:35 +0000 (01:09 +0200)]
replace all F_DUPFD_CLOEXEC with os_dupfd_cloexec()

All squashed into a single commit because it shouldn't have any
behaviour change, except that it might work now on platforms where it
was broken because F_DUPFD_CLOEXEC is not supported but FD_CLOEXEC is.

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5369>

16 months agoutil: introduce os_dupfd_cloexec() helper
Eric Engestrom [Thu, 4 Jun 2020 23:08:33 +0000 (01:08 +0200)]
util: introduce os_dupfd_cloexec() helper

Adapted from wayland's wl_os_dupfd_cloexec().

Suggested-by: Kristian H. Kristensen <hoegsberg@google.com>
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5369>

16 months agoutil/os_file: replace broken windows-detection code with detect_os.h
Eric Engestrom [Fri, 5 Jun 2020 10:39:28 +0000 (12:39 +0200)]
util/os_file: replace broken windows-detection code with detect_os.h

The meson-windows-vs2019 job was going down the `!defined(WIN32)` path,
leading to a broken build once that path contained non-windows code.

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5369>

16 months agoci: disable the windows tests until the runner can be stabilized again
Eric Anholt [Wed, 17 Jun 2020 22:29:31 +0000 (15:29 -0700)]
ci: disable the windows tests until the runner can be stabilized again

I've been getting a stream of errors from Marge today like:

FAILED: src/gallium/drivers/llvmpipe/lp_test_conv.exe
link @src/gallium/drivers/llvmpipe/lp_test_conv.exe.rsp
LINK : fatal error LNK1102: out of memory
[1080/1141] Compiling C object src/gallium/frontends/wgl/945cc3d@@wgl@sta/stw_getprocaddress.c.obj

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

16 months agodocs: remove plain-text copy of versions.rst
Eric Engestrom [Fri, 22 May 2020 23:26:57 +0000 (01:26 +0200)]
docs: remove plain-text copy of versions.rst

There's no need to keep both, so let's clean things up a bit.

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5178>

16 months agokhronos-update.py: add script to simplify update of Khronos headers & xml files
Eric Engestrom [Fri, 22 May 2020 22:28:23 +0000 (00:28 +0200)]
khronos-update.py: add script to simplify update of Khronos headers & xml files

The idea is to have the canonical source of each of those files
available without having to remember anything, and to be able to update
all the Vulkan files by simply running `bin/khronos-update.py vulkan`.

The script also handles the fact all the EGL/GL/GLES* headers depend on
the KHR header, and the former should not be updated without updating
the latter.

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

16 months agozink: enable xfb extension in screen creation
Mike Blumenkrantz [Mon, 1 Jun 2020 19:01:47 +0000 (15:01 -0400)]
zink: enable xfb extension in screen creation

switch around the feature enabling as well since extensions need the related
feature to also be enabled in order to function

fixes mesa/mesa#2868

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

16 months agozink: switch to passing VkPhysicalDeviceFeatures2 in VkDeviceCreateInfo
Mike Blumenkrantz [Wed, 3 Jun 2020 12:45:57 +0000 (08:45 -0400)]
zink: switch to passing VkPhysicalDeviceFeatures2 in VkDeviceCreateInfo

extensions need to have their feature structs passed in pNext to be enabled,
so switch to using the feature struct here in preparation for that

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

16 months agozink: set PIPE_CAP_VIEWPORT_TRANSFORM_LOWERED and remove POS special casing
Mike Blumenkrantz [Wed, 17 Jun 2020 17:47:22 +0000 (13:47 -0400)]
zink: set PIPE_CAP_VIEWPORT_TRANSFORM_LOWERED and remove POS special casing

this cap creates a different varying output which remains constant to be
emitted by xfb, allowing us to drop the special-casing code in ntv

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

16 months agozink: implement transform feedback support to finish off opengl 3.0
Mike Blumenkrantz [Mon, 1 Jun 2020 18:59:15 +0000 (14:59 -0400)]
zink: implement transform feedback support to finish off opengl 3.0

this adds:
* context hooks for gallium stream output methods
* handling for xfb-related queries
* barrier management for pausing and resuming xfb

loosely based on patches originally written by Dave Airlie <airlied@redhat.com>

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

16 months agozink: implement streamout and xfb handling in ntv
Mike Blumenkrantz [Mon, 1 Jun 2020 18:49:44 +0000 (14:49 -0400)]
zink: implement streamout and xfb handling in ntv

this translates streamout info into xfb decorations and adds some workaround
handling for spurious gl_PointSize values

partly based on patches originally written by Dave Airlie <airlied@redhat.com>

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

16 months agozink: add spirv_builder methods for OpVectorExtractDynamic and OpVectorInsertDynamic
Mike Blumenkrantz [Thu, 4 Jun 2020 21:01:58 +0000 (17:01 -0400)]
zink: add spirv_builder methods for OpVectorExtractDynamic and OpVectorInsertDynamic

based on spirv specs

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

16 months agozink: add spirv builder util functions for emitting xfb decorations
Mike Blumenkrantz [Mon, 1 Jun 2020 18:55:38 +0000 (14:55 -0400)]
zink: add spirv builder util functions for emitting xfb decorations

based on patches originally written by Dave Airlie <airlied@redhat.com>

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

16 months agozink: use '2' variants for device props/feats, check features for ext enabling
Mike Blumenkrantz [Wed, 20 May 2020 14:08:42 +0000 (10:08 -0400)]
zink: use '2' variants for device props/feats, check features for ext enabling

technically both the extension and feature should be checked when enabling
extensions, and some features cannot be properly enabled without using
the more descriptive versions of these APIs

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

16 months agoturnip: use u_format for packing gmem clear values
Jonathan Marek [Mon, 15 Jun 2020 20:31:33 +0000 (16:31 -0400)]
turnip: use u_format for packing gmem clear values

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5485>

16 months agodocs: fixup relnotes after rst-conversion
Erik Faye-Lund [Mon, 15 Jun 2020 09:52:42 +0000 (11:52 +0200)]
docs: fixup relnotes after rst-conversion

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

16 months agoradv/aco: enable FP16 features/extensions on GFX9+
Samuel Pitoiset [Fri, 5 Jun 2020 07:27:01 +0000 (09:27 +0200)]
radv/aco: enable FP16 features/extensions on GFX9+

This enables shaderFloat16, VK_AMD_gpu_shader_half_float and
VK_AMD_gpu_shader_int16.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5347>

16 months agoaco: fix validation of opsel when set for the definition
Rhys Perry [Wed, 17 Jun 2020 13:50:10 +0000 (14:50 +0100)]
aco: fix validation of opsel when set for the definition

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

16 months agoturnip: use draw states for input attachments
Jonathan Marek [Tue, 16 Jun 2020 16:34:57 +0000 (12:34 -0400)]
turnip: use draw states for input attachments

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5446>

16 months agoturnip: input attachment descriptor set rework
Jonathan Marek [Mon, 15 Jun 2020 03:10:01 +0000 (23:10 -0400)]
turnip: input attachment descriptor set rework

Implement GMEM input attachments by using non-bindless texture state which
is emitted at the start of every subpass.

This achieves two things:
* More vulkan-like CmdBindDescriptorSets
* Fixing secondary command buffer input attachments with GMEM

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5446>

16 months agoturnip: refactor draw states and dynamic states
Jonathan Marek [Sun, 14 Jun 2020 14:52:37 +0000 (10:52 -0400)]
turnip: refactor draw states and dynamic states

This reworks dynamic states to use draw states, and reworks draw states.

This moves towards doing as little as possible in bind_draw_states.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5446>

16 months agoturnip: delete dead dynamic state code
Jonathan Marek [Sun, 14 Jun 2020 14:34:25 +0000 (10:34 -0400)]
turnip: delete dead dynamic state code

Remove unused code, split this out to reduce the diff in the next patch.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5446>

16 months agoturnip: improve dirty bit handling a bit
Jonathan Marek [Sun, 14 Jun 2020 14:30:10 +0000 (10:30 -0400)]
turnip: improve dirty bit handling a bit

This moves some logic out of bind_draw_states, moving towards the eventual
goal of doing very little in bind_draw_states.

Split this out as a separate patch to make the DIRTY_INPUT_ATTACHMENTS more
visible: it can be safely removed because pipelines are subpass specific,
so there will always be a pipeline change to go with the CmdBeginRenderPass
and CmdNextSubpass (the CmdBindPipeline may not be in the subpass, but the
draw that flushes the pipeline update will be).

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5446>

16 months agoturnip: move descriptor set BO tracking to CmdBindDescriptorSets
Jonathan Marek [Sun, 14 Jun 2020 14:17:28 +0000 (10:17 -0400)]
turnip: move descriptor set BO tracking to CmdBindDescriptorSets

This avoids the duplicated code.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5446>

16 months agoturnip: compute and graphics have completely separate state
Jonathan Marek [Sun, 14 Jun 2020 14:15:45 +0000 (10:15 -0400)]
turnip: compute and graphics have completely separate state

The comment about fragment shader state overwriting compute shader state
is wrong, if either path is overwriting the other's state then it is a
mistake.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5446>

16 months agotu: Actually remove dead variables after io lowering
Connor Abbott [Wed, 17 Jun 2020 13:39:18 +0000 (15:39 +0200)]
tu: Actually remove dead variables after io lowering

I forgot that their derefs would still be lying around, so we need to
eliminate them first.

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

16 months agoir3: Don't calculate num_samp ourselves
Connor Abbott [Wed, 17 Jun 2020 09:07:26 +0000 (11:07 +0200)]
ir3: Don't calculate num_samp ourselves

In addition to duplicating what core NIR does better, this was wrong for
Vulkan, where it should be 0 as there are no non-bindless samplers.

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

16 months agotu: Set num_components to 0 when building bindless intrinsics
Connor Abbott [Wed, 17 Jun 2020 13:47:29 +0000 (15:47 +0200)]
tu: Set num_components to 0 when building bindless intrinsics

Fixes: 167fa288 (" nir/validate: validate intr->num_components")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5520>

16 months agotu: Remove tu_shader_compile_options
Connor Abbott [Tue, 16 Jun 2020 15:00:31 +0000 (17:00 +0200)]
tu: Remove tu_shader_compile_options

The only two fields were always true, and I don't think we'd ever have
use for them. If we want to disable optimizations then we'd need a
different approach, and I don't even know what include_binning_pass was
for.

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

16 months agotu: Use the ir3 shader API
Connor Abbott [Tue, 16 Jun 2020 09:44:23 +0000 (11:44 +0200)]
tu: Use the ir3 shader API

This will be necessary once we start compiling multiple variants due to
different const size limits, and it will also be necessary for properly
implementing the pipeline cache.

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

16 months agotu: Remove num_samp hack
Connor Abbott [Wed, 17 Jun 2020 11:02:49 +0000 (13:02 +0200)]
tu: Remove num_samp hack

Delete the variables so that ir3 thinks there are no samplers and
images instead.

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

16 months agoir3: Pass reserved_user_consts to ir3_shader_from_nir()
Connor Abbott [Tue, 16 Jun 2020 12:02:24 +0000 (14:02 +0200)]
ir3: Pass reserved_user_consts to ir3_shader_from_nir()

ir3_shader_from_nir() calls ir3_optimize_nir(), which currently sets up
the const state. However, we need to know the number of user consts
reserved by the driver before setting up the const state, which means
that this information needs to be passed into ir3_shader_from_nir()
somehow rather than being set in the shader.

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

16 months agopan/mdg: Reassociate adds for multiply-by-two
Alyssa Rosenzweig [Fri, 12 Jun 2020 21:56:32 +0000 (17:56 -0400)]
pan/mdg: Reassociate adds for multiply-by-two

Only a single shader-db change it looks like, and not even from
scheduling, no fun.

instructions helped:   shader31 MESA_SHADER_FRAGMENT:                    64 -> 63 (-1.56%)
quadwords helped:   shader31 MESA_SHADER_FRAGMENT:                    66 -> 65 (-1.52%)
registers HURT:   shader31 MESA_SHADER_FRAGMENT:                    2 -> 3 (50.00%)

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

16 months agopan/mdg: Canonicalize (x * 2.0) to (x + x)
Alyssa Rosenzweig [Fri, 12 Jun 2020 21:47:19 +0000 (17:47 -0400)]
pan/mdg: Canonicalize (x * 2.0) to (x + x)

This lets the previous commit kick in to schedule to either a multiply
or an add. GLES2 shader-db:

total instructions in shared programs: 50514 -> 50459 (-0.11%)
instructions in affected programs: 7436 -> 7381 (-0.74%)
helped: 14
HURT: 7
helped stats (abs) min: 2 max: 8 x̄: 5.00 x̃: 5
helped stats (rel) min: 0.95% max: 1.14% x̄: 1.07% x̃: 1.08%
HURT stats (abs)   min: 2 max: 3 x̄: 2.14 x̃: 2
HURT stats (rel)   min: 0.85% max: 8.57% x̄: 2.73% x̃: 1.26%
95% mean confidence interval for instructions value: -4.37 -0.87
95% mean confidence interval for instructions %-change: -0.91% 1.31%
Inconclusive result (%-change mean confidence interval includes 0).

total bundles in shared programs: 25680 -> 25573 (-0.42%)
bundles in affected programs: 6148 -> 6041 (-1.74%)
helped: 37
HURT: 7
helped stats (abs) min: 1 max: 9 x̄: 3.14 x̃: 2
helped stats (rel) min: 0.63% max: 8.33% x̄: 2.02% x̃: 2.13%
HURT stats (abs)   min: 1 max: 2 x̄: 1.29 x̃: 1
HURT stats (rel)   min: 0.88% max: 11.11% x̄: 3.92% x̃: 1.30%
95% mean confidence interval for bundles value: -3.32 -1.54
95% mean confidence interval for bundles %-change: -2.00% -0.14%
Bundles are helped.

total quadwords in shared programs: 40887 -> 40815 (-0.18%)
quadwords in affected programs: 14203 -> 14131 (-0.51%)
helped: 61
HURT: 2
helped stats (abs) min: 1 max: 4 x̄: 1.21 x̃: 1
helped stats (rel) min: 0.16% max: 11.11% x̄: 1.11% x̃: 0.57%
HURT stats (abs)   min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel)   min: 2.86% max: 4.00% x̄: 3.43% x̃: 3.43%
95% mean confidence interval for quadwords value: -1.32 -0.96
95% mean confidence interval for quadwords %-change: -1.46% -0.48%
Quadwords are helped.

total registers in shared programs: 3916 -> 3913 (-0.08%)
registers in affected programs: 46 -> 43 (-6.52%)
helped: 5
HURT: 1
helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
helped stats (rel) min: 10.00% max: 33.33% x̄: 14.89% x̃: 10.00%
HURT stats (abs)   min: 2 max: 2 x̄: 2.00 x̃: 2
HURT stats (rel)   min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00%
95% mean confidence interval for registers value: -1.79 0.79
95% mean confidence interval for registers %-change: -33.51% 25.37%
Inconclusive result (value mean confidence interval includes 0).

total threads in shared programs: 2455 -> 2454 (-0.04%)
threads in affected programs: 5 -> 4 (-20.00%)
helped: 1
HURT: 1
helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
HURT stats (abs)   min: 2 max: 2 x̄: 2.00 x̃: 2
HURT stats (rel)   min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00%

total loops in shared programs: 6 -> 6 (0.00%)
loops in affected programs: 0 -> 0
helped: 0
HURT: 0

total spills in shared programs: 168 -> 168 (0.00%)
spills in affected programs: 0 -> 0
helped: 0
HURT: 0

total fills in shared programs: 186 -> 186 (0.00%)
fills in affected programs: 0 -> 0
helped: 0
HURT: 0

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

16 months agopan/mdg: Allow scheduling "x + x" to multipliers
Alyssa Rosenzweig [Fri, 12 Jun 2020 21:24:02 +0000 (17:24 -0400)]
pan/mdg: Allow scheduling "x + x" to multipliers

One of the neat things with Midgard's wacky VLIW... on VADD/SADD this is
(x + x) literally, on VMUL/SMUL/VLUT this is (x * 2.0) where the 2.0 is
exactly representable in FP16 so it fits nicely as an inline constant.
So we don't need to restrict its scheduling.

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

16 months agopan/mdg: Factor out unit check
Alyssa Rosenzweig [Fri, 12 Jun 2020 21:08:19 +0000 (17:08 -0400)]
pan/mdg: Factor out unit check

We'd like to do something a bit more complicated.

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

16 months agoaco: fix sub-dword opsel/sdwa checks
Rhys Perry [Tue, 16 Jun 2020 18:13:34 +0000 (19:13 +0100)]
aco: fix sub-dword opsel/sdwa checks

These should all check if the operand has a regclass. The opsel check
should also be skipped post-RA.

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

16 months agoaco: fix validation error from vgpr spill/restore code
Rhys Perry [Tue, 16 Jun 2020 18:13:04 +0000 (19:13 +0100)]
aco: fix validation error from vgpr spill/restore code

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

16 months agoturnip: fix cubic filtering with CmdBlitImage
Jonathan Marek [Tue, 16 Jun 2020 23:12:07 +0000 (19:12 -0400)]
turnip: fix cubic filtering with CmdBlitImage

This fixes the newly added cubic blit_image tests for A650, by falling back
to the 3D path and setting the filter correctly.

Note: there are still failures with the texture filtering tests.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5509>

16 months agoturnip: fix 3D path always being used for CmdBlitImage
Jonathan Marek [Tue, 16 Jun 2020 23:07:41 +0000 (19:07 -0400)]
turnip: fix 3D path always being used for CmdBlitImage

This change accidentally made it into 72d7df40a5e5b50, and started causing
blit_image flakes (because of the issue fixed in the previous patch)

Fixes: 72d7df40a5e5b50 ("turnip: add layered 3D path clear for CmdClearAttachments")
Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5509>

16 months agoturnip: set VFD_INDEX_OFFSET in 3D clear/blit path
Jonathan Marek [Tue, 16 Jun 2020 22:54:47 +0000 (18:54 -0400)]
turnip: set VFD_INDEX_OFFSET in 3D clear/blit path

This was missing an causing flakes when used after a test that set it to
a non-zero value.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5509>

16 months agospirv: do not set num_components for non-vectorized mbcnt_amd intrinsic
Samuel Pitoiset [Tue, 16 Jun 2020 07:08:02 +0000 (09:08 +0200)]
spirv: do not set num_components for non-vectorized mbcnt_amd intrinsic

Fixes: 167fa2887f0 ("nir/validate: validate intr->num_components")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5493>

16 months agost_glsl_to_nir: fix potential use after free
Timothy Arceri [Mon, 15 Jun 2020 23:35:09 +0000 (09:35 +1000)]
st_glsl_to_nir: fix potential use after free

When updating the shader info used by GL for the API we must
remember to make sure to restore the pointers to its own name
and label strings. There are a number of ways in which the nir
copy of these strings can be freed before GL is finished with
them.

Fixes: 36be8c2fcf94 ("st/glsl_to_nir: use nir_shader_gather_info()")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2875
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5488>

16 months agoglsl: small optimisation fix for uniform array resizing
Timothy Arceri [Mon, 15 Jun 2020 04:25:21 +0000 (14:25 +1000)]
glsl: small optimisation fix for uniform array resizing

The fix in the previous patch removed an erronous attempt to skip
resizing variable types in each stage. Now that has been removed
iterating over each shader stage is no longer required here.

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5487>

16 months agoglsl: fix uniform array resizing in the nir linker
Timothy Arceri [Mon, 15 Jun 2020 04:03:59 +0000 (14:03 +1000)]
glsl: fix uniform array resizing in the nir linker

The initial support tried to match uniform variables from different
shaders based on the variables pointer. This will obviously never
work, instead here we use the variables name whcih also means we
must disable this optimisation for spirv.

Using the base variable name works because when collecting uniform
references we never iterate past the first array dimension, and
only support resizing 1D arrays (we also don't support resizing
arrays inside structs).

We also drop the resized bool as we can't skip processing the var
just because is was resized in another shader, we must resize
the var in all shaders.

Fixes: a34cc97ca3e1 ("glsl: when NIR linker enable use it to resize uniform arrays")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3130
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5487>

16 months agoanv: Add VK_EXT_custom_border_color to relnotes
Iván Briano [Thu, 21 May 2020 20:47:24 +0000 (13:47 -0700)]
anv: Add VK_EXT_custom_border_color to relnotes

Missed it on 5425968d2e46eb3311a75f4bf7bedb1d9dd59459

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

16 months agoanv: enable VK_EXT_pipeline_creation_cache_control
Iván Briano [Wed, 20 May 2020 21:36:49 +0000 (14:36 -0700)]
anv: enable VK_EXT_pipeline_creation_cache_control

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

16 months agoanv: implement VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT
Iván Briano [Wed, 20 May 2020 19:38:46 +0000 (12:38 -0700)]
anv: implement VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT

v2:
* Set pPipeline to NULL in the corresponding
  graphics/compute_create_pipeline function.
* Keep current ANV behavior of bailing on the first real error.

v3:
* Don't return early if the pipeline succeeded.

v:4(5?):
* Simplify return conditions.

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

16 months agoanv: support externally synchronized pipeline caches
Iván Briano [Wed, 20 May 2020 19:30:46 +0000 (12:30 -0700)]
anv: support externally synchronized pipeline caches

Implement the VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
bits of the VK_EXT_pipeline_creation_cache_control extension.

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

16 months agointel/compiler: Remove unnecessary optimization for MUL
Sagar Ghuge [Mon, 8 Jun 2020 22:35:29 +0000 (15:35 -0700)]
intel/compiler: Remove unnecessary optimization for MUL

2 source instruction only support immediate for src1 operand, so no
point in adding optimization condition for src0 oprand.

v2:
- Update commit message and don't remove ADD optimization (Matt Turner)

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5341>

16 months agointel/compiler: Optimize integer add with 0 into mov
Sagar Ghuge [Fri, 29 May 2020 23:44:42 +0000 (16:44 -0700)]
intel/compiler: Optimize integer add with 0 into mov

Kaby Lake
total instructions in shared programs: 326560 -> 323616 (-0.90%)
instructions in affected programs: 178062 -> 175118 (-1.65%)
helped: 129
HURT: 0
helped stats (abs) min: 1 max: 118 x̄: 22.82 x̃: 8
helped stats (rel) min: 0.35% max: 6.56% x̄: 2.57% x̃: 2.47%
95% mean confidence interval for instructions value: -27.71 -17.93
95% mean confidence interval for instructions %-change: -2.81% -2.32%
Instructions are helped.

total cycles in shared programs: 43741127 -> 45397851 (3.79%)
cycles in affected programs: 40880261 -> 42536985 (4.05%)
helped: 94
HURT: 34
helped stats (abs) min: 5 max: 6160 x̄: 598.91 x̃: 45
helped stats (rel) min: 0.20% max: 34.86% x̄: 2.52% x̃: 1.09%
HURT stats (abs)   min: 1 max: 76198 x̄: 50383.00 x̃: 69677
HURT stats (rel)   min: 0.07% max: 48.41% x̄: 15.65% x̃: 6.49%
95% mean confidence interval for cycles value: 8023.10 17863.21
95% mean confidence interval for cycles %-change: <.01% 4.60%
Cycles are HURT.

total spills in shared programs: 1086 -> 978 (-9.94%)
spills in affected programs: 897 -> 789 (-12.04%)
helped: 24
HURT: 0

total fills in shared programs: 1686 -> 1584 (-6.05%)
fills in affected programs: 1371 -> 1269 (-7.44%)
helped: 24
HURT: 0

v2:
- Use brw_reg_type_is_integer (Matt Turner)

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5341>

16 months agomeson: unbreak sysctl.h detection on BSDs
Jan Beich [Sat, 30 May 2020 22:41:48 +0000 (22:41 +0000)]
meson: unbreak sysctl.h detection on BSDs

Code:
 #include <sys/sysctl.h>
Compiler stdout:

Compiler stderr:
 In file included from testfile.c:1:
/usr/include/sys/sysctl.h:1184:40: error: unknown type name 'size_t'
int     sysctl(const int *, u_int, void *, size_t *, const void *, size_t);
                                           ^
/usr/include/sys/sysctl.h:1185:40: error: unknown type name 'size_t'
int     sysctlbyname(const char *, void *, size_t *, const void *, size_t);
                                           ^
/usr/include/sys/sysctl.h:1186:42: error: unknown type name 'size_t'
int     sysctlnametomib(const char *, int *, size_t *);
                                             ^
3 errors generated.

Checking if "sys/sysctl.h" compiles: NO

<https://gitlab.freedesktop.org/mesa/drm/-/commit/1f8ada802391>
<https://gitlab.freedesktop.org/mesa/drm/-/commit/4083e8f2c659>

Reviewed-by: Niclas Zeising <zeising@daemonic.se>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5462>

16 months agodocs: Add dri-devel to the mailing lists and drop the DRI wiki link.
Eric Anholt [Tue, 16 Jun 2020 19:23:16 +0000 (12:23 -0700)]
docs: Add dri-devel to the mailing lists and drop the DRI wiki link.

The DRI wiki is a wasteland at this point, let's just fold the one bit of
useful information in here.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5507>

16 months agoutil: enable futex usage on BSDs after 7dc2f4788288
Jan Beich [Tue, 2 Jun 2020 00:28:09 +0000 (00:28 +0000)]
util: enable futex usage on BSDs after 7dc2f4788288

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

16 months agofreedreno/ir3: add post-scheduler cp pass
Rob Clark [Wed, 1 Apr 2020 22:37:34 +0000 (15:37 -0700)]
freedreno/ir3: add post-scheduler cp pass

A pass to eliminate extra mov's from an array.  We need to do this after
scheduling so we know that there are not any potentially conflicting
array writes between the original `mov` and it's use(s).

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2124
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5280>

16 months agofreedreno/ir3/cp: extract valid_flags
Rob Clark [Thu, 14 May 2020 16:31:32 +0000 (09:31 -0700)]
freedreno/ir3/cp: extract valid_flags

We'll also need this in the postsched-cp pass.

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

16 months agofreedreno/ir3: delay test support for vectorish instructions
Rob Clark [Fri, 12 Jun 2020 21:56:42 +0000 (14:56 -0700)]
freedreno/ir3: delay test support for vectorish instructions

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