platform/upstream/mesa.git
3 years agonir/clip_disable: handle 2x vec4 case
Mike Blumenkrantz [Wed, 2 Sep 2020 14:26:15 +0000 (10:26 -0400)]
nir/clip_disable: handle 2x vec4 case

some drivers may have pre-lowered gl_ClipDistance to 2x vec4 to match hw
usage, so for those cases we'll be getting deref_var here and then components
will be stored to the deref at some point

fixes mesa/mesa#3480

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

3 years agonir/clip_disable: try for better no-op
Mike Blumenkrantz [Wed, 2 Sep 2020 14:09:21 +0000 (10:09 -0400)]
nir/clip_disable: try for better no-op

we can just check the bits using clip_distance_array_size here to simplify
everything and more easily determine if we need to be running this pass

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

3 years agonir/clip_disable: write 0s instead of undefs for disabled clip planes
Mike Blumenkrantz [Thu, 3 Sep 2020 14:25:24 +0000 (10:25 -0400)]
nir/clip_disable: write 0s instead of undefs for disabled clip planes

this should yield more reliable and ideally even correct results

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

3 years agoiris: Move blit scissoring earlier.
Kenneth Graunke [Fri, 28 Aug 2020 22:10:03 +0000 (15:10 -0700)]
iris: Move blit scissoring earlier.

There's no need to e.g. prepare_access() if the blit is a noop.

Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7454>

3 years agoanv: restrict number of subgroups per group
Iván Briano [Wed, 4 Nov 2020 21:51:56 +0000 (13:51 -0800)]
anv: restrict number of subgroups per group

We are limited to 64 threads per dispatched group, regardless of what
num_cs_threads claims, so advertise that limit correctly.

Fixes (on TGL and up):
dEQP-VK.subgroups.size_control.compute.required_subgroup_size_min
and other *.required_subgroup_size_min tests.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7453>

3 years agoturnip: enable VK_EXT_image_drm_format_modifier
Jonathan Marek [Wed, 30 Sep 2020 15:33:46 +0000 (11:33 -0400)]
turnip: enable VK_EXT_image_drm_format_modifier

Add missing GetPhysicalDeviceImageFormatProperties2 logic for the extension
and enable it.

Also stop exposing optimal tiling for formats which are linear only, to
simplify dealing with those.

Passes dEQP-VK.drm_format_modifiers.*

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

3 years agoturnip: don't always fallback to linear for mutable formats
Jonathan Marek [Wed, 30 Sep 2020 02:33:15 +0000 (22:33 -0400)]
turnip: don't always fallback to linear for mutable formats

Use VkImageFormatListCreateInfo, and enable VK_KHR_image_format_list to
expose it. (and reorganize linear fallback code a bit)

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

3 years agoturnip: remove unnecessary/redundant tu_image fields
Jonathan Marek [Wed, 30 Sep 2020 02:02:00 +0000 (22:02 -0400)]
turnip: remove unnecessary/redundant tu_image fields

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

3 years agoturnip: remove useless tu_image asserts
Jonathan Marek [Wed, 30 Sep 2020 02:21:43 +0000 (22:21 -0400)]
turnip: remove useless tu_image asserts

Validation layer already catches these errors, so don't bother.

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

3 years agoturnip: LAYOUT_PREINITIALIZED is not different for optimal tiling
Jonathan Marek [Wed, 30 Sep 2020 02:20:32 +0000 (22:20 -0400)]
turnip: LAYOUT_PREINITIALIZED is not different for optimal tiling

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

3 years agoturnip: don't implement CreateImage as two separate functions
Jonathan Marek [Wed, 30 Sep 2020 01:32:44 +0000 (21:32 -0400)]
turnip: don't implement CreateImage as two separate functions

Inline tu_image_create into tu_CreateImage.

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

3 years agoaco: Fix format string used when raising validation errors
Tony Wasserka [Wed, 4 Nov 2020 11:44:10 +0000 (12:44 +0100)]
aco: Fix format string used when raising validation errors

Validation errors mention the pretty-printed instruction including
operands with the reserved % character, which caused vasprintf to
expect more format arguments than aco provided.

Fixes: c2b1978aa47c ("aco: rework the way various compilation/validation errors are reported")
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7442>

3 years agonir/deref: Fix a typo
Jason Ekstrand [Thu, 5 Nov 2020 15:56:42 +0000 (09:56 -0600)]
nir/deref: Fix a typo

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3754
Fixes: df51518dc5b "nir/opt_deref: Add a deref mode specialization..."
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7459>

3 years agoci: Distribute ADMGPU driver to LAVA as a module
Tomeu Vizoso [Wed, 4 Nov 2020 09:06:20 +0000 (10:06 +0100)]
ci: Distribute ADMGPU driver to LAVA as a module

As it needs firmware to probe, and we cannot bundle it within the kernel
image because it is incompatible with the GPL.

Currently we rebind the driver after boot but that's slow and fragile,
as unloads of DRM drivers aren't generally tested.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7420>

3 years agoci: Update dEQP skips and fails for Bifrost on G52
Tomeu Vizoso [Tue, 3 Nov 2020 10:07:31 +0000 (11:07 +0100)]
ci: Update dEQP skips and fails for Bifrost on G52

Runs are much more stable now with the new kernel, and lots of tests
do pass now.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7420>

3 years agoci: Update kernel for LAVA to 5.10-rc2 plus patches
Tomeu Vizoso [Tue, 3 Nov 2020 09:52:04 +0000 (10:52 +0100)]
ci: Update kernel for LAVA to 5.10-rc2 plus patches

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7420>

3 years agoutil/threaded_context: use driver's buffer alignment for staging transfers
Mike Blumenkrantz [Wed, 4 Nov 2020 22:48:21 +0000 (17:48 -0500)]
util/threaded_context: use driver's buffer alignment for staging transfers

this coincidentally worked because radeonsi has a hardcoded value of 64, but
other drivers do not use this value and then things are subtly broken

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

3 years agov3d: Add GL_ARB_vertex_array_bgra support
Juan A. Suarez Romero [Fri, 16 Oct 2020 15:07:57 +0000 (17:07 +0200)]
v3d: Add GL_ARB_vertex_array_bgra support

This is done by adding support to PIPE_FORMAT_B8G8R8A8_UNORM, and
relying on the R/B swapping for vertex attributes implemented in the
compiler.

v2:
 - Simplify the loop (Iago)

v3:
 - Assert before derreferencing variable (Iago).

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3078
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7196>

3 years agov3dv: mark the right bit to swap R/B vertex attributes
Juan A. Suarez Romero [Fri, 16 Oct 2020 09:35:05 +0000 (11:35 +0200)]
v3dv: mark the right bit to swap R/B vertex attributes

Now that the R/B swap mask for vertex attributes handles all the
attributes, ensure the right generic vertex attribute is marked.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7196>

3 years agov3d/compiler: extend swapping R/B support to all vertex attributes
Juan A. Suarez Romero [Fri, 16 Oct 2020 09:27:42 +0000 (11:27 +0200)]
v3d/compiler: extend swapping R/B support to all vertex attributes

So far the support for R/B swapping in vertex attributes were for the
generic attributes.

But there are cases like glSecondaryColorPointer() supporting BGRA
formats that require the R/B swapping to be also allowed in the
non-generic vertex attributes (in this case, in the COLOR1 attribute).

v2:
 - Don't split line (Iago)

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7196>

3 years agointel/tools: add missing new lines to few remaining fail_if users
Marcin Ślusarz [Wed, 4 Nov 2020 18:15:51 +0000 (19:15 +0100)]
intel/tools: add missing new lines to few remaining fail_if users

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7449>

3 years agointel/tools: refactor logging to be easier to follow by static analyzers
Marcin Ślusarz [Wed, 4 Nov 2020 18:05:19 +0000 (19:05 +0100)]
intel/tools: refactor logging to be easier to follow by static analyzers

Refactor out the part of fail_if function that never returns into
NORETURN function and put the condition check outside.

Addresses many false positive warnings by Coverity.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7449>

3 years agointel/tools: handle some failures
Marcin Ślusarz [Wed, 4 Nov 2020 17:23:31 +0000 (18:23 +0100)]
intel/tools: handle some failures

Addresses "Dereference null return value" issues reported by Coverity.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7449>

3 years agoanv: remove dead code from anv_create_cmd_buffer
Marcin Ślusarz [Wed, 4 Nov 2020 16:49:54 +0000 (17:49 +0100)]
anv: remove dead code from anv_create_cmd_buffer

pool can't be NULL at this point, because it was already
dereferenced earlier.

Addresses "Dereference before null check" issue reported by Coverity.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7449>

3 years agointel/tools: allow --color option to be used without arg
Marcin Ślusarz [Wed, 4 Nov 2020 16:33:53 +0000 (17:33 +0100)]
intel/tools: allow --color option to be used without arg

There's already code handling that case and help text also says
it's possible.

Found, because Coverity complained about optarg NULL check,
suggesting optarg can be NULL for other options, where it's not
possible. IOW, false positive lead me to finding an unrelated issue.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7449>

3 years agov3dv: expose more features
Iago Toral Quiroga [Wed, 4 Nov 2020 12:35:08 +0000 (13:35 +0100)]
v3dv: expose more features

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

3 years agobroadcom/compiler: Handle non-SSA destinations for tex instructions
Arcady Goldmints-Orlov [Mon, 26 Oct 2020 15:57:32 +0000 (11:57 -0400)]
broadcom/compiler: Handle non-SSA destinations for tex instructions

The NIR that is given to the VIR compiler is not in SSA form, and so
the v3d*_vir_emit_tex() functions must be able to handle both SSA and
register destinations.

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

3 years agovc4: use intmax_t for formatted output of timespec members
Khem Raj [Wed, 4 Dec 2019 22:15:28 +0000 (14:15 -0800)]
vc4: use intmax_t for formatted output of timespec members

32bit architectures which have 64bit time_t does not fit the assumption
of time_t being same as system long int

Fixes
error: format specifies type 'long' but the argument has type 'time_t' (aka 'long long') [-Werror,-Wformat]
                        time.tv_sec);
                        ^~~~~~~~~~~

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2966>

3 years agoamd/addrlib: Add missing va_end.
Vinson Lee [Sat, 24 Oct 2020 00:32:16 +0000 (17:32 -0700)]
amd/addrlib: Add missing va_end.

Fix defect reported by Coverity Scan.

Missing varargs init or cleanup (VARARGS)
missing_va_end: va_end was not called for debugPrintInput.ap.

Fixes: 69ea473eeb91 ("amd/addrlib: update to the latest version")
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/7299>

3 years agoloader: Print dlerror() output in the failure message
Adam Jackson [Mon, 2 Nov 2020 18:57:12 +0000 (13:57 -0500)]
loader: Print dlerror() output in the failure message

This just captures the last failure, but that's better than nothing.

Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7429>

3 years agointel/fs: Implement nir_intrinsic_{load,store}_shared_block_intel
Caio Marcelo de Oliveira Filho [Fri, 30 Oct 2020 03:02:47 +0000 (20:02 -0700)]
intel/fs: Implement nir_intrinsic_{load,store}_shared_block_intel

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7448>

3 years agointel/fs: Implement nir_intrinsic_{load,store}_ssbo_block_intel
Caio Marcelo de Oliveira Filho [Thu, 29 Oct 2020 21:21:38 +0000 (14:21 -0700)]
intel/fs: Implement nir_intrinsic_{load,store}_ssbo_block_intel

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7448>

3 years agointel/fs: Add surface OWORD BLOCK opcodes
Caio Marcelo de Oliveira Filho [Thu, 29 Oct 2020 21:20:39 +0000 (14:20 -0700)]
intel/fs: Add surface OWORD BLOCK opcodes

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7448>

3 years agointel/fs: Implement nir_intrinsic_{load,store}_global_block_intel
Caio Marcelo de Oliveira Filho [Mon, 5 Oct 2020 21:48:44 +0000 (14:48 -0700)]
intel/fs: Implement nir_intrinsic_{load,store}_global_block_intel

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7448>

3 years agointel/fs: Add A64 OWORD BLOCK opcodes
Caio Marcelo de Oliveira Filho [Mon, 5 Oct 2020 21:43:41 +0000 (14:43 -0700)]
intel/fs: Add A64 OWORD BLOCK opcodes

Based on a patch for OWORD BLOCK READ from Jason Ekstrand.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7448>

3 years agospirv: Implement SpvCapabilitySubgroupBufferBlockIOINTEL
Caio Marcelo de Oliveira Filho [Mon, 5 Oct 2020 21:49:15 +0000 (14:49 -0700)]
spirv: Implement SpvCapabilitySubgroupBufferBlockIOINTEL

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7448>

3 years agonir: Add nir_intrinsic_{load,store}_deref_block_intel
Caio Marcelo de Oliveira Filho [Mon, 5 Oct 2020 21:46:36 +0000 (14:46 -0700)]
nir: Add nir_intrinsic_{load,store}_deref_block_intel

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7448>

3 years agospirv: Implement SpvCapabilitySubgroupShuffleINTEL from SPV_INTEL_subgroups
Caio Marcelo de Oliveira Filho [Fri, 18 Sep 2020 04:00:42 +0000 (21:00 -0700)]
spirv: Implement SpvCapabilitySubgroupShuffleINTEL from SPV_INTEL_subgroups

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7448>

3 years agoiris: Flush dmabufs during context flushes
Nanley Chery [Thu, 29 Oct 2020 22:32:32 +0000 (15:32 -0700)]
iris: Flush dmabufs during context flushes

Currently, every modifier that uses CCS also lacks support for
fast-clears. On gen9+, dmabufs may gain fast-cleared blocks through
clear calls. On gen12, fast-clearing can occur during any rendering
operation. Mark when dmabufs gain fast-cleared blocks and flush them
during a context flush operation.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3425
Tested-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7384>

3 years agoiris: Fix fast-clears of swizzled alpha formats
Nanley Chery [Wed, 14 Oct 2020 17:45:57 +0000 (10:45 -0700)]
iris: Fix fast-clears of swizzled alpha formats

Resources with alpha formats that are mapped to R are fast-cleared with
the wrong clear color.

When such resources with are cleared via iris_clear_texture,
isl_color_value_unpack places channel data in the R channel.
convert_fast_clear_color then overwrites the channel with 0.

To avoid zeroing the clear color, move convert_fast_clear_color to the
other callers of clear_color: iris_clear and iris_clear_render_target.

Enables iris to pass the "A" case of the fcc-clear-tex piglit test.

v2. Rename convert_fast_clear_color to convert_clear_color. (Ken)

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

3 years agoiris: Fix SINT assert in convert_fast_clear_color
Nanley Chery [Thu, 15 Oct 2020 00:15:36 +0000 (17:15 -0700)]
iris: Fix SINT assert in convert_fast_clear_color

Don't assert that the size of every channel is greater than zero. This
assert doesn't work for integer formats with less than 4 channels.

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

3 years agoiris: Fix fast-clears of swizzled LA formats
Nanley Chery [Tue, 27 Oct 2020 18:25:38 +0000 (11:25 -0700)]
iris: Fix fast-clears of swizzled LA formats

Resources with luminance alpha formats that are mapped to RG are
fast-cleared with the wrong clear color.

When such resources with are cleared via iris_clear_texture,
isl_color_value_unpack places channel data in the R and G channels.
convert_fast_clear_color then overwrites the G channel with R.

Delete the clear color override that's specific to luminance alpha
formats.

Enables iris to pass the "LA" case of the fcc-clear-tex piglit test.

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

3 years agoiris: fix source/destination layers for 3D blits
Kenneth Graunke [Mon, 26 Oct 2020 19:39:12 +0000 (12:39 -0700)]
iris: fix source/destination layers for 3D blits

See commit ea326912575fad09af59486ad62d126c4ea0ede7 for the
corresponding fix in anv.

Fixes Piglit's fbo-generatemipmap-3d.

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

3 years agost/nir: Drop setting interp mode on system values in builtins.
Eric Anholt [Mon, 26 Oct 2020 19:16:14 +0000 (12:16 -0700)]
st/nir: Drop setting interp mode on system values in builtins.

It's initialized to INTERP_MODE_NONE on creation, which makes more sense
for sysvals than FLAT, and is also the interp mode that GLSL IR sets up
for sysvals.

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

3 years agost/nir: Fix the st->pbo.use_gs case.
Eric Anholt [Mon, 26 Oct 2020 19:11:40 +0000 (12:11 -0700)]
st/nir: Fix the st->pbo.use_gs case.

This case hadn't been ported to NIR before, and I missed that when
removing the TGSI path and replacing it with NIR -> NTT for TGSI drivers.
This caused breakage in nv50 on piglit's pbo-teximage.

In the process, the !use_gs gets its layer output fixed to be an int
instead of a vec4, which I suspect would fix validation in that path.

Fixes: 57effa342b75 ("st/mesa: Drop the TGSI paths for PBOs and use nir-to-tgsi if needed.")
Closes: #3680
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7320>

3 years agopan/bi: Correctly calculate render target index
Alyssa Rosenzweig [Wed, 4 Nov 2020 16:13:55 +0000 (11:13 -0500)]
pan/bi: Correctly calculate render target index

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

3 years agopan/bi: Lower depth/stencil stores
Alyssa Rosenzweig [Wed, 4 Nov 2020 14:05:57 +0000 (09:05 -0500)]
pan/bi: Lower depth/stencil stores

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

3 years agopan/bi: Emit +ZS_EMIT as needed
Alyssa Rosenzweig [Wed, 4 Nov 2020 14:05:39 +0000 (09:05 -0500)]
pan/bi: Emit +ZS_EMIT as needed

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

3 years agopan/bi: Stub handling for nir_intrinsic_store_combined_output_pan
Alyssa Rosenzweig [Wed, 4 Nov 2020 13:52:48 +0000 (08:52 -0500)]
pan/bi: Stub handling for nir_intrinsic_store_combined_output_pan

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

3 years agopan/bi: Factor out bi_emit_blend
Alyssa Rosenzweig [Wed, 4 Nov 2020 13:46:32 +0000 (08:46 -0500)]
pan/bi: Factor out bi_emit_blend

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

3 years agopan/bi: Factor out bi_emit_atest
Alyssa Rosenzweig [Wed, 4 Nov 2020 13:42:51 +0000 (08:42 -0500)]
pan/bi: Factor out bi_emit_atest

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

3 years agopan/bi: Infer z/stencil flags from sources passed
Alyssa Rosenzweig [Wed, 4 Nov 2020 13:22:53 +0000 (08:22 -0500)]
pan/bi: Infer z/stencil flags from sources passed

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

3 years agopan/bi: Add +ZS_EMIT instruction to IR
Alyssa Rosenzweig [Wed, 4 Nov 2020 13:18:22 +0000 (08:18 -0500)]
pan/bi: Add +ZS_EMIT instruction to IR

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

3 years agopanfrost: Deduplicate shader properties
Alyssa Rosenzweig [Wed, 4 Nov 2020 16:17:43 +0000 (11:17 -0500)]
panfrost: Deduplicate shader properties

Between Midgard and Bifrost.

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

3 years agopanfrost: Pass through src_type
Alyssa Rosenzweig [Wed, 4 Nov 2020 13:59:35 +0000 (08:59 -0500)]
panfrost: Pass through src_type

Needed since Bifrost blends are typed well.

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

3 years agopan/mdg: Move writeout lowering to common panfrost
Alyssa Rosenzweig [Wed, 4 Nov 2020 13:37:55 +0000 (08:37 -0500)]
pan/mdg: Move writeout lowering to common panfrost

These will be used in the Bifrost compiler, albeit for a slightly
different purpose.

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

3 years agopan/mdg: Deduplicate nir_find_variable_with_driver_location
Alyssa Rosenzweig [Wed, 4 Nov 2020 13:32:16 +0000 (08:32 -0500)]
pan/mdg: Deduplicate nir_find_variable_with_driver_location

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

3 years agonir: Add SRC_TYPE to store_combined_output_pan
Alyssa Rosenzweig [Wed, 4 Nov 2020 13:57:03 +0000 (08:57 -0500)]
nir: Add SRC_TYPE to store_combined_output_pan

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7446>

3 years agov3dv: add a v3dv_bo_init helper
Iago Toral Quiroga [Wed, 4 Nov 2020 09:39:12 +0000 (10:39 +0100)]
v3dv: add a v3dv_bo_init helper

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

3 years agoaco/ra: Fix counting of subdword variables in get_reg_create_vector
Tony Wasserka [Tue, 3 Nov 2020 13:40:20 +0000 (14:40 +0100)]
aco/ra: Fix counting of subdword variables in get_reg_create_vector

The loop variable "k" shadowed another variable in the outer scope, so
this loop had no actual effect.

Fixes: 52cc1f8237d ("aco: improve p_create_vector RA for sub-dword operands")
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7427>

3 years agoaco: implement 8/16-bit instructions which can be trivially widened
Rhys Perry [Wed, 8 Jul 2020 18:19:43 +0000 (19:19 +0100)]
aco: implement 8/16-bit instructions which can be trivially widened

When nir_lower_bit_size becomes more capable, we might want to revert some
of this.

fossil-db (parallel-rdp, Navi):
Totals from 217 (31.77% of 683) affected shaders:
SGPRs: 11320 -> 10200 (-9.89%)
VGPRs: 7156 -> 7364 (+2.91%)
CodeSize: 1453948 -> 1430136 (-1.64%); split: -1.66%, +0.02%
Instrs: 258530 -> 254840 (-1.43%); split: -1.44%, +0.01%
Cycles: 37334360 -> 37247936 (-0.23%); split: -0.26%, +0.03%

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

3 years agoaco: implement some 16-bit arithmetic instead of lowering
Rhys Perry [Mon, 27 Apr 2020 20:17:26 +0000 (21:17 +0100)]
aco: implement some 16-bit arithmetic instead of lowering

fossil-db (parallel-rdp, Navi):
Totals from 210 (30.75% of 683) affected shaders:
SGPRs: 9704 -> 10248 (+5.61%)
VGPRs: 5884 -> 5368 (-8.77%)
CodeSize: 1155564 -> 1098752 (-4.92%)
Instrs: 199927 -> 189940 (-5.00%)
Cycles: 20438392 -> 19860124 (-2.83%)

v2: use divergence analysis to determine which instructions to lower.

Co-Authored-by: Daniel Schürmann <daniel@schuermann.dev>
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/4791>

3 years agoradv: rework nir_lower_bit_size callback and run DA on GFX8+
Rhys Perry [Wed, 8 Jul 2020 16:56:41 +0000 (17:56 +0100)]
radv: rework nir_lower_bit_size callback and run DA on GFX8+

No fossil-db changes.

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

3 years agoradv: do nir_lower_bit_size after algebraic optimizations
Rhys Perry [Fri, 30 Oct 2020 15:54:12 +0000 (15:54 +0000)]
radv: do nir_lower_bit_size after algebraic optimizations

There are too many algebraic optimizations to be certain that one of them
couldn't create instructions which need lowering. It also creates better
code for some reason.

fossil-db (parallel-rdp, Navi):
Totals from 217 (31.77% of 683) affected shaders:
VGPRs: 7716 -> 7672 (-0.57%)
CodeSize: 1516152 -> 1510688 (-0.36%); split: -0.38%, +0.02%
MaxWaves: 3964 -> 3982 (+0.45%)
Instrs: 269445 -> 268508 (-0.35%); split: -0.36%, +0.02%
Cycles: 37963416 -> 37912592 (-0.13%); split: -0.15%, +0.01%

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

3 years agoradv: move a few passes to after load/store vectorization
Rhys Perry [Thu, 29 Oct 2020 11:21:42 +0000 (11:21 +0000)]
radv: move a few passes to after load/store vectorization

load/store vectorization can create 8/16-bit alu to do packing/unpacking,
which would make shader_info::bit_sizes_used out of date.

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

3 years agonir/lower_bit_size: optimize upcast of b2i8/b2i16
Rhys Perry [Fri, 30 Oct 2020 15:18:25 +0000 (15:18 +0000)]
nir/lower_bit_size: optimize upcast of b2i8/b2i16

This also seems to be done by nir_opt_algebraic, but RADV will be moving
nir_lower_bit_size() to after that (so it doesn't create unsupported
8/16-bit instructions) and it doesn't seem worth creating a new pass just
for this simple optimization.

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

3 years agonir: add shader_info::bit_sizes_used
Rhys Perry [Thu, 29 Oct 2020 10:52:25 +0000 (10:52 +0000)]
nir: add shader_info::bit_sizes_used

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

3 years agova: support VA_RT_FORMAT_PROTECTED
Pierre-Eric Pelloux-Prayer [Tue, 27 Oct 2020 20:33:44 +0000 (21:33 +0100)]
va: support VA_RT_FORMAT_PROTECTED

Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7006>

3 years agova/picture: make sure destination buffer is protected if needed
Pierre-Eric Pelloux-Prayer [Tue, 27 Oct 2020 20:13:40 +0000 (21:13 +0100)]
va/picture: make sure destination buffer is protected if needed

Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7006>

3 years agofrontends/va: Added protected playback support for VP9
Veerabadhran Gopalakrishnan [Mon, 5 Oct 2020 02:13:43 +0000 (22:13 -0400)]
frontends/va: Added protected playback support for VP9

Add VP9 header handling in slice data buffer.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7006>

3 years agoradeon/vcn: program drm message buffer
Boyuan Zhang [Thu, 14 May 2020 00:08:55 +0000 (20:08 -0400)]
radeon/vcn: program drm message buffer

Add a function to handle drm message buffer using input decryption parameters.

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

3 years agoradeon/vcn: delay dec->ctx and dec->dpb allocation
Pierre-Eric Pelloux-Prayer [Wed, 28 Oct 2020 15:52:47 +0000 (16:52 +0100)]
radeon/vcn: delay dec->ctx and dec->dpb allocation

This will allow to allocate them as encrypted if needed.

Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7006>

3 years agoradeon: add si_vid_create_tmz_buffer helper
Pierre-Eric Pelloux-Prayer [Tue, 27 Oct 2020 08:33:27 +0000 (09:33 +0100)]
radeon: add si_vid_create_tmz_buffer helper

Same code as si_vid_create_buffer except that the buffer is using TMZ.

Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7006>

3 years agoradeon/vcn: add defines for drm message buffer
Boyuan Zhang [Fri, 2 Oct 2020 19:00:28 +0000 (15:00 -0400)]
radeon/vcn: add defines for drm message buffer

Add defines and structure for drm message buffer.

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

3 years agoradeon: add decryption params definition header
Boyuan Zhang [Mon, 10 Feb 2020 19:55:54 +0000 (14:55 -0500)]
radeon: add decryption params definition header

Add a header file for decryption parameters.

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

3 years agofrontends/va: handle protected slice data buffer
Boyuan Zhang [Thu, 14 May 2020 01:27:45 +0000 (21:27 -0400)]
frontends/va: handle protected slice data buffer

Add a function to handle VaProtectedSliceDataBuffer, which is used for
sending decryption parameters. Also, for protected playback, there is
no need to check start code since data is encrypted.

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

3 years agovl: add flag and definition for protected playback
Boyuan Zhang [Mon, 10 Feb 2020 19:37:36 +0000 (14:37 -0500)]
vl: add flag and definition for protected playback

Add a flag to indicate if playback is protected/encrypted.
Add a pointer to decryption key for later decryption use.

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

3 years agonir/find_array_copies: Don't assume all children exist
Jason Ekstrand [Wed, 4 Nov 2020 04:46:14 +0000 (22:46 -0600)]
nir/find_array_copies: Don't assume all children exist

Fixes: 9f3c595dfc4cd "nir/find_array_copies: Handle cast derefs"
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7437>

3 years agoradesonsi: Remove unnecessary shader->selector NULL check.
Vinson Lee [Wed, 21 Oct 2020 23:32:55 +0000 (16:32 -0700)]
radesonsi: Remove unnecessary shader->selector NULL check.

shader->selector->info.stage == MESA_SHADER_COMPUTE at this case statement.

Fix defect reported by Coverity Scan.

Dereference before null check (REVERSE_INULL)
check_after_deref: Null-checking shader->selector suggests that it may
be null, but it has already been dereferenced on all paths leading to
the check.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7266>

3 years agolavapipe: request correct sample mask behaviour
Dave Airlie [Tue, 3 Nov 2020 06:38:09 +0000 (16:38 +1000)]
lavapipe: request correct sample mask behaviour

Fixes:
dEQP-VK.rasterization.frag_side_effect*

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

3 years agollvmpipe: respect the sample mask in non-multisample flag
Dave Airlie [Tue, 3 Nov 2020 06:37:10 +0000 (16:37 +1000)]
llvmpipe: respect the sample mask in non-multisample flag

This partly revert
50987644 llvmpipe: don't use sample mask with 0 samples

since Vulkan wants this behaviour.

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

3 years agogallium: add a non-multisample sample mask out behaviour flag.
Dave Airlie [Tue, 3 Nov 2020 06:33:16 +0000 (16:33 +1000)]
gallium: add a non-multisample sample mask out behaviour flag.

Vulkan/DX want to use output sample mask even when not multisampling
GL wants it ignored.

Add a rasterizer flag to lavapipe can get correct behaviour.

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

3 years agonir/opt_intrinsic: Optimize bcsel(b, shuffle(x, i), shuffle(x, j))
Jason Ekstrand [Fri, 23 Oct 2020 21:48:38 +0000 (16:48 -0500)]
nir/opt_intrinsic: Optimize bcsel(b, shuffle(x, i), shuffle(x, j))

The shuffles provided by the SPV_INTEL_subgroups extension generate

    bcsel(b, shuffle(x, i), shuffle(y, j))

In the case where x and y are the same, we can turn this into a shuffle
with the bcsel on the index which lets us drop a whole shuffle.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7366>

3 years agonir/opt_intrinsics: Refactor a bit
Jason Ekstrand [Fri, 23 Oct 2020 21:05:29 +0000 (16:05 -0500)]
nir/opt_intrinsics: Refactor a bit

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7366>

3 years agonir/constant_folding: Fold subgroup shuffle intrinsics
Jason Ekstrand [Thu, 29 Oct 2020 15:10:35 +0000 (10:10 -0500)]
nir/constant_folding: Fold subgroup shuffle intrinsics

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7366>

3 years agonir: Move constant folding of vote to opt_constant_folding
Jason Ekstrand [Thu, 29 Oct 2020 15:08:15 +0000 (10:08 -0500)]
nir: Move constant folding of vote to opt_constant_folding

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7366>

3 years agonir/constant_folding: Use the standard variable naming convention
Jason Ekstrand [Thu, 29 Oct 2020 15:05:21 +0000 (10:05 -0500)]
nir/constant_folding: Use the standard variable naming convention

Typically, if we have one alu instruction, we call it "alu" and if we
have one intrinsic we call it "intrin".

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7366>

3 years agonir/constant_folding: Use a switch in try_fold_intrinsic
Jason Ekstrand [Thu, 29 Oct 2020 14:58:57 +0000 (09:58 -0500)]
nir/constant_folding: Use a switch in try_fold_intrinsic

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7366>

3 years agonir/opt_intrinsics: Report progress for the gl_SampleMask optimization
Jason Ekstrand [Thu, 29 Oct 2020 15:15:46 +0000 (10:15 -0500)]
nir/opt_intrinsics: Report progress for the gl_SampleMask optimization

Fixes: d3ce8a7f6b93 "nir: optimize gl_SampleMaskIn to gl_HelperInvocation..."
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7366>

3 years agonir: use nir_alu_src_is_trivial_ssa() in nir_ssa_for_alu_src()
Rhys Perry [Tue, 3 Nov 2020 13:18:56 +0000 (13:18 +0000)]
nir: use nir_alu_src_is_trivial_ssa() in nir_ssa_for_alu_src()

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7426>

3 years agonir: skip bcsel with non-trivial swizzle in opt_simplify_bcsel_of_phi()
Rhys Perry [Tue, 3 Nov 2020 13:21:37 +0000 (13:21 +0000)]
nir: skip bcsel with non-trivial swizzle in opt_simplify_bcsel_of_phi()

Fixes validation error in a Dota 2 shader.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Fixes: b031c643491 ("nir: Convert a bcsel with only phi node sources to a phi node")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7426>

3 years agonir: add nir_alu_src_is_trivial_ssa()
Rhys Perry [Tue, 3 Nov 2020 13:17:22 +0000 (13:17 +0000)]
nir: add nir_alu_src_is_trivial_ssa()

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7426>

3 years agonir/lower_io: Add a new 62bit_generic address format
Jason Ekstrand [Sat, 15 Aug 2020 05:57:14 +0000 (00:57 -0500)]
nir/lower_io: Add a new 62bit_generic address format

Unlike most address formats, this address format is capable of handling
all of the fancy generic pointers stuff like is_global and friends.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6332>

3 years agonir/lower_io: Support generic pointer access
Jason Ekstrand [Sat, 15 Aug 2020 06:54:45 +0000 (01:54 -0500)]
nir/lower_io: Support generic pointer access

If the pointer is generic and we haven't yet figured out what kind of
pointer it is yet, we emit an if-ladder based on a mode check.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6332>

3 years agonir/lower_io: Add support for lowering deref_mode_is
Jason Ekstrand [Sat, 15 Aug 2020 05:32:46 +0000 (00:32 -0500)]
nir/lower_io: Add support for lowering deref_mode_is

The guts are still missing so it will blow up if it sees any
deref_mode_is intrinsic that it can't constant-fold from the mode.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6332>

3 years agonir/lower_io: Add support for 32/64bit_global for shared
Jason Ekstrand [Tue, 18 Aug 2020 15:27:41 +0000 (10:27 -0500)]
nir/lower_io: Add support for 32/64bit_global for shared

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

3 years agonir/lower_io: Add a mode parameter to addr_format_is_*
Jason Ekstrand [Sat, 15 Aug 2020 05:39:00 +0000 (00:39 -0500)]
nir/lower_io: Add a mode parameter to addr_format_is_*

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6332>

3 years agonir/lower_io: Add a mode parameter to build_addr_iadd
Jason Ekstrand [Fri, 14 Aug 2020 23:20:12 +0000 (18:20 -0500)]
nir/lower_io: Add a mode parameter to build_addr_iadd

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6332>

3 years agonir/opt_deref: Add an optimization for deref_mode_is
Jason Ekstrand [Sat, 15 Aug 2020 16:14:20 +0000 (11:14 -0500)]
nir/opt_deref: Add an optimization for deref_mode_is

If opt_restrict_deref_modes makes progress, we may be able to figure out
the mode well enough to turn a deref_mode_is intrinsic into a constant.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6332>

3 years agonir/opt_deref: Add a deref mode specialization optimization
Jason Ekstrand [Sat, 15 Aug 2020 05:29:59 +0000 (00:29 -0500)]
nir/opt_deref: Add a deref mode specialization optimization

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6332>