platform/upstream/mesa.git
3 years agoradv: dump the trap handler shader with RADV_DEBUG=metashaders
Samuel Pitoiset [Wed, 5 May 2021 19:23:07 +0000 (21:23 +0200)]
radv: dump the trap handler shader with RADV_DEBUG=metashaders

Help debugging it.

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

3 years agopanfrost: Fix major flaw in BO cache
Alyssa Rosenzweig [Thu, 13 May 2021 21:24:31 +0000 (17:24 -0400)]
panfrost: Fix major flaw in BO cache

BOs in the cache are chronological, so we try oldest BOs first. That
means if we find the oldest BO is busy, likely every BO is busy, and we
should bail early. This dramatically reduces the useless cycles spent in
bo_wait.

I studied the BO cache of the following drivers, all of which handle
this correctly: iris, lima, etnaviv, freedreno, vc4, v3d, v3dv.

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

3 years agoci: Build asahi in meson-gallium job
Alyssa Rosenzweig [Sun, 16 May 2021 18:02:54 +0000 (14:02 -0400)]
ci: Build asahi in meson-gallium job

Adding full CI for Asahi won't make sense for a while, but simply
build-testing should catch a lot of problems with whole tree refactors
in Gallium and NIR.

Closes: #4744
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10826>

3 years agoRevert "CI: Disable all Panfrost/AMD/Iris automatic jobs"
Tomeu Vizoso [Mon, 17 May 2021 11:05:53 +0000 (13:05 +0200)]
Revert "CI: Disable all Panfrost/AMD/Iris automatic jobs"

This reverts commit e1d74c9cfde45ecff1927c2ebf47fc0f42ab0b6a.

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

3 years agoaco/ra: use flags instead of booleans for update_renames()
Rhys Perry [Thu, 29 Apr 2021 09:41:38 +0000 (10:41 +0100)]
aco/ra: use flags instead of booleans for update_renames()

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

3 years agoaco/ra: fix get_reg_for_operand() with vector operands
Rhys Perry [Fri, 23 Apr 2021 14:09:01 +0000 (15:09 +0100)]
aco/ra: fix get_reg_for_operand() with vector operands

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

3 years agoaco/ra: fix get_reg_for_operand() when the blocking var is a vector
Rhys Perry [Fri, 23 Apr 2021 13:31:04 +0000 (14:31 +0100)]
aco/ra: fix get_reg_for_operand() when the blocking var is a vector

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

3 years agoaco/ra: fix get_reg_for_operand() with no free registers
Rhys Perry [Fri, 23 Apr 2021 13:29:22 +0000 (14:29 +0100)]
aco/ra: fix get_reg_for_operand() with no free registers

fossil-db (Sienna Cichlid):
Totals from 195 (0.13% of 149839) affected shaders:
CodeSize: 2352160 -> 2356720 (+0.19%); split: -0.00%, +0.20%
Instrs: 431976 -> 433124 (+0.27%); split: -0.00%, +0.27%
Latency: 10174434 -> 10174897 (+0.00%); split: -0.00%, +0.00%
InvThroughput: 4044388 -> 4044425 (+0.00%); split: -0.00%, +0.00%
Copies: 67634 -> 68762 (+1.67%); split: -0.00%, +1.67%

fossil-db (Polaris):
Totals from 186 (0.12% of 151365) affected shaders:
CodeSize: 2272356 -> 2276848 (+0.20%); split: -0.00%, +0.20%
Instrs: 432390 -> 433513 (+0.26%); split: -0.00%, +0.26%
Latency: 13153394 -> 13160194 (+0.05%); split: -0.00%, +0.05%
InvThroughput: 10889509 -> 10889967 (+0.00%); split: -0.00%, +0.00%
SClause: 12745 -> 12747 (+0.02%)
Copies: 74832 -> 75945 (+1.49%); split: -0.01%, +1.50%

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

3 years agoaco/ra: initialize temp_in_scc earlier
Rhys Perry [Mon, 3 May 2021 13:21:59 +0000 (14:21 +0100)]
aco/ra: initialize temp_in_scc earlier

We need to know if there's a temporary in SCC before the instruction, not
after.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: 93c8ebfa780 ("aco: Initial commit of independent AMD compiler")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10459>

3 years agozink: add even more validation for linear images before creation
Mike Blumenkrantz [Thu, 4 Feb 2021 21:31:23 +0000 (16:31 -0500)]
zink: add even more validation for linear images before creation

nvidia claims format feature support for various flags but then doesn't
actually support them for a 3D image, only 2D, meaning that an extra step
is necessary before creating a linear image

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

3 years agozink: populate images with u_blitter if transfer_dst isn't available
Mike Blumenkrantz [Wed, 3 Feb 2021 20:35:49 +0000 (15:35 -0500)]
zink: populate images with u_blitter if transfer_dst isn't available

this seems incredibly unlikely, but now it's handled

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

3 years agozink: don't multiply cube array image layers
Mike Blumenkrantz [Fri, 19 Mar 2021 22:24:28 +0000 (18:24 -0400)]
zink: don't multiply cube array image layers

this whole thing seems broken, but this part in particular is super broken

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

3 years agoaco/ra: also prevent overflow register for p_create_vector operands
Daniel Schürmann [Mon, 17 May 2021 08:39:24 +0000 (10:39 +0200)]
aco/ra: also prevent overflow register for p_create_vector operands

Fixes: d659ce0d6c5781a1230b182ef5ed1a77de485565 ('aco/ra: prevent underflow register for p_create_vector operands')
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10832>

3 years agoci: remove expected robustness2 fails for Renoir
Rhys Perry [Mon, 17 May 2021 10:14:43 +0000 (11:14 +0100)]
ci: remove expected robustness2 fails for Renoir

These should be fixed now.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Martin Peres <martin.peres@mupuf.org>
Fixes: 157c6b0f336 ("radv,aco: use per-attribute vertex descriptors for robustness")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10834>

3 years agoutil: add thread-safe version of idalloc
Marek Olšák [Thu, 6 May 2021 00:09:56 +0000 (20:09 -0400)]
util: add thread-safe version of idalloc

For buffer IDs in u_threaded_context.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662>

3 years agogallium/u_threaded: don't reference resource in pipe_transfer
Marek Olšák [Fri, 7 May 2021 12:40:35 +0000 (08:40 -0400)]
gallium/u_threaded: don't reference resource in pipe_transfer

The atomic can be costly, so skip it. This should be safe because
we never have pipe_transfer as the only live reference of a buffer.

Drivers can't do this yet because something needs to hold the resource
reference while a transfer object is being passed via u_threaded_context.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662>

3 years agogallium/u_threaded: always map idle buffers unsynchronized
Marek Olšák [Thu, 6 May 2021 00:32:45 +0000 (20:32 -0400)]
gallium/u_threaded: always map idle buffers unsynchronized

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662>

3 years agogallium/u_threaded: don't invalidate idle buffers
Marek Olšák [Thu, 6 May 2021 00:28:04 +0000 (20:28 -0400)]
gallium/u_threaded: don't invalidate idle buffers

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662>

3 years agogallium/u_threaded: add driver-internal flush tracking for buffer lists
Marek Olšák [Thu, 29 Apr 2021 20:32:45 +0000 (16:32 -0400)]
gallium/u_threaded: add driver-internal flush tracking for buffer lists

This is used to track which buffer lists are associated with commands that
the driver hasn't flushed yet, so that we can consider all those buffers
busy.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662>

3 years agogallium/u_threaded: add buffer lists - tracking of buffers referenced by tc
Marek Olšák [Thu, 22 Apr 2021 02:32:06 +0000 (22:32 -0400)]
gallium/u_threaded: add buffer lists - tracking of buffers referenced by tc

not used by anything yet

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662>

3 years agogallium/u_threaded: query shader resource limits
Marek Olšák [Thu, 22 Apr 2021 01:35:15 +0000 (21:35 -0400)]
gallium/u_threaded: query shader resource limits

for tracking buffer busyness later

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662>

3 years agogallium/u_threaded: track whether TCS, TES, or GS have ever been used
Marek Olšák [Thu, 22 Apr 2021 01:31:49 +0000 (21:31 -0400)]
gallium/u_threaded: track whether TCS, TES, or GS have ever been used

to optimize buffer busyness tracking later

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662>

3 years agogallium/u_threaded: add callbacks and documentation for resource busy checking
Marek Olšák [Thu, 22 Apr 2021 01:29:48 +0000 (21:29 -0400)]
gallium/u_threaded: add callbacks and documentation for resource busy checking

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662>

3 years agogallium/u_threaded: merge draws in tc_call_draw_single
Marek Olšák [Thu, 29 Apr 2021 04:25:54 +0000 (00:25 -0400)]
gallium/u_threaded: merge draws in tc_call_draw_single

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662>

3 years agogallium/u_threaded: pass last into and return call size from execute callbacks
Marek Olšák [Thu, 29 Apr 2021 03:55:15 +0000 (23:55 -0400)]
gallium/u_threaded: pass last into and return call size from execute callbacks

This will allow call merging inside execute callbacks because they can
iterate the batch and return how many slots they consumed.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10662>

3 years agoanv: require rendering support for blit destination feature
Tapani Pälli [Fri, 14 May 2021 06:41:10 +0000 (09:41 +0300)]
anv: require rendering support for blit destination feature

This fixes some new cts tests that exercise blitting
between compressed and uncompressed formats.

Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10830>

3 years agonir/lower_phis_to_scalar: Add "lower_all" option
Connor Abbott [Tue, 23 Feb 2021 10:31:41 +0000 (11:31 +0100)]
nir/lower_phis_to_scalar: Add "lower_all" option

We don't want to have to deal with vector phis in freedreno, because
vectors are always split/unsplit around vectorized instructions anyways,
and the stated reason for not scalarising them (it hurting coalescing)
won't apply to us because we won't be using nir_from_ssa. Add this
option so that we don't have to do the equivalent thing while
translating from NIR.

Reviewed-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10809>

3 years agointel/isl: replace format_gen by verx10
Marcin Ślusarz [Fri, 14 May 2021 16:45:52 +0000 (18:45 +0200)]
intel/isl: replace format_gen by verx10

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10810>

3 years agoi965: simplify gfx version checks
Marcin Ślusarz [Fri, 14 May 2021 16:44:56 +0000 (18:44 +0200)]
i965: simplify gfx version checks

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10810>

3 years agointel: simplify is_haswell checks, part 2
Marcin Ślusarz [Fri, 14 May 2021 16:12:28 +0000 (18:12 +0200)]
intel: simplify is_haswell checks, part 2

Few cases that were not handled by sed.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10810>

3 years agointel: simplify is_haswell checks, part 1
Marcin Ślusarz [Fri, 14 May 2021 16:04:46 +0000 (18:04 +0200)]
intel: simplify is_haswell checks, part 1

Generated with:

files=`git grep is_haswell | cut -d: -f1 | sort | uniq`
for file in $files; do
        cat $file | \
                sed "s/devinfo->ver <= 7 && !devinfo->is_haswell/devinfo->verx10 <= 70/g" | \
                sed "s/devinfo->ver >= 8 || devinfo->is_haswell/devinfo->verx10 >= 75/g" | \
                sed "s/devinfo->is_haswell || devinfo->ver >= 8/devinfo->verx10 >= 75/g" | \
                sed "s/devinfo.is_haswell || devinfo.ver >= 8/devinfo.verx10 >= 75/g" | \
                sed "s/devinfo->ver > 7 || devinfo->is_haswell/devinfo->verx10 >= 75/g" | \
                sed "s/devinfo->ver == 7 && !devinfo->is_haswell/devinfo->verx10 == 70/g" | \
                sed "s/devinfo.ver == 7 && !devinfo.is_haswell/devinfo.verx10 == 70/g" | \
                sed "s/devinfo->ver < 8 && !devinfo->is_haswell/devinfo->verx10 <= 70/g" | \
                sed "s/device->info.ver == 7 && !device->info.is_haswell/device->info.verx10 == 70/g" \
                > tmpXXX
        mv tmpXXX $file
done

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10810>

3 years agoturnip: do not ignore early_fragment_tests
Danylo Piliaiev [Fri, 14 May 2021 12:35:17 +0000 (15:35 +0300)]
turnip: do not ignore early_fragment_tests

Specifying "early_fragment_tests" in fragment shader takes precedence
over our internal conditions.

Fixes test:
 dEQP-VK.fragment_operations.early_fragment.early_fragment_tests_stencil

Fixes: b2a60c157e4d6cc62c55d8fe8777f7cbd548a722 "turnip: add LRZ early-z support"

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10803>

3 years agopanfrost: Try to align scanout resource stride on 64 bytes
Boris Brezillon [Mon, 3 May 2021 08:18:38 +0000 (10:18 +0200)]
panfrost: Try to align scanout resource stride on 64 bytes

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

3 years agopanfrost: Relax the stride check when importing resources
Boris Brezillon [Fri, 23 Apr 2021 07:24:50 +0000 (09:24 +0200)]
panfrost: Relax the stride check when importing resources

Imported resources will not necessarily have their line stride aligned
on 64 bytes, and things prove to work just fine even on Bifrost, so
let's relax the condition and drop the comment stating that Bifrost
needs pixel lines to be aligned on 64 bytes.

Reported-by: Icecream95 <ixn@disroot.org>
Suggested-by: Icecream95 <ixn@disroot.org>
Fixes: 051d62cf0410 ("panfrost: Add a pan_image_layout_init() helper")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10423>

3 years agovenus: stop advertising KHR_driver_properties for Android
Yiwei Zhang [Sat, 15 May 2021 22:07:27 +0000 (22:07 +0000)]
venus: stop advertising KHR_driver_properties for Android

This is to pass the Android cts requirement. We will re-advertise the
extension after venus has a valid driver id defined.

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10819>

3 years agovenus: fix vkEnumeratePhysicalDeviceGroups
Yiwei Zhang [Sat, 15 May 2021 21:38:36 +0000 (21:38 +0000)]
venus: fix vkEnumeratePhysicalDeviceGroups

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10819>

3 years agovulkan: Support 32-bit "weak" symbols on MSVC
James Park [Sun, 2 May 2021 09:24:09 +0000 (02:24 -0700)]
vulkan: Support 32-bit "weak" symbols on MSVC

MSVC uses different decorated names for 32-bit versus 64-bit. Declare
all argument sizes for 32-bit because computing the actual size would be
difficult.

Fixes: 9be7aa3fc83 ("vulkan: Add a common entrypoint table generator")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10573>

3 years agofreedreno/a6xx: Add a few registers
Rob Clark [Sun, 16 May 2021 18:22:32 +0000 (11:22 -0700)]
freedreno/a6xx: Add a few registers

Based-on: https://patchwork.freedesktop.org/patch/429745/?series=89269&rev=2
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10829>

3 years agofreedreno/regs: split DSI PHY registers to separate xml files.
Dmitry Baryshkov [Sat, 15 May 2021 17:36:23 +0000 (20:36 +0300)]
freedreno/regs: split DSI PHY registers to separate xml files.

In-kernel DSI PHY driver is being more and more split from the main DSI
driver. Split PHY registers from main dsi.xml file to ease further split
of the drivers.

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10817>

3 years agonir/builder: add nir_pad_vector and nir_pad_vec4 util functions
Mike Blumenkrantz [Tue, 4 May 2021 18:26:46 +0000 (14:26 -0400)]
nir/builder: add nir_pad_vector and nir_pad_vec4 util functions

these pad a given value to vec4 or arbitrary number of components

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10630>

3 years agovenus: Fix zero-initialized fd causing apps to hang/crash
Joshua Ashton [Sat, 15 May 2021 09:53:17 +0000 (10:53 +0100)]
venus: Fix zero-initialized fd causing apps to hang/crash

Some apps such as Gamescope crash under the mere presence of the virtio Vulkan driver without using a device.

This is because virtgpu::fd is zero-initialized upon allocation, which causes fd 0 to be closed in virtgpu_destroy.

Cc: mesa-stable
Fixes: 247232d5 ("venus: add experimental renderers")
Signed-off-by: Joshua Ashton <joshua@froggi.es>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10814>

3 years agoradv: Handle unnormalized samplers in YCbCr lowering
Joshua Ashton [Sat, 15 May 2021 13:43:14 +0000 (14:43 +0100)]
radv: Handle unnormalized samplers in YCbCr lowering

We need to divide these by their divisors and special-case COSITED_EVEN.

Fixes NV12 compositing in Gamescope.

Fixes: 91702374 ("radv: Add ycbcr lowering pass.")
Cc: mesa-stable
Signed-off-by: Joshua Ashton <joshua@froggi.es>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10816>

3 years agoiris: fix assert to reflect correct limit for encoded size
Lionel Landwerlin [Fri, 14 May 2021 13:04:13 +0000 (16:04 +0300)]
iris: fix assert to reflect correct limit for encoded size

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10805>

3 years agor600/sfn: Ignore precision when linking
Gert Wollny [Mon, 10 May 2021 06:56:28 +0000 (08:56 +0200)]
r600/sfn: Ignore precision when linking

There doesn't seem to be any speciifc support for passing arount
mediump and lowp data, so when linking these specifiers can be ignored
theerby saving IO instructions.

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

3 years agonir/linker: add option to ignore the IO precisions for better varying packing
Gert Wollny [Mon, 10 May 2021 06:54:50 +0000 (08:54 +0200)]
nir/linker: add option to ignore the IO precisions for better varying packing

Backends that don't handle IO component precision can pack more varyings
into one slot if the linker ignores the precision. If the IO is vectorized
then this can save IO instructions.

Related: 165a69d2f74aefe80b070209e77950446a97c8b5
    nir: handle mediump varyings in varying compaction helpers

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10722>

3 years agoci: Update VK-GL-CTS to 1.2.6.1
Juan A. Suarez Romero [Fri, 14 May 2021 10:08:43 +0000 (12:08 +0200)]
ci: Update VK-GL-CTS to 1.2.6.1

Reviewed-by: Emma Anholt <emma@anholt.net>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10800>

3 years agollvmpipe: fix non-multisampled rendering to multisampled framebuffer
Dave Airlie [Wed, 12 May 2021 23:36:59 +0000 (09:36 +1000)]
llvmpipe: fix non-multisampled rendering to multisampled framebuffer

Don't depend moving between samples on key->multisample

Big CI wins
Reported-by: Erik Faye-Lund <kusmabite@gmail.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Fixes: 210d714f46e7 ("llvmpipe: handle multisample color stores.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10780>

3 years agoiris: Avoid sampling some MCS surfaces with clear
Nanley Chery [Tue, 26 Jan 2021 23:50:20 +0000 (15:50 -0800)]
iris: Avoid sampling some MCS surfaces with clear

Supposedly avoids GPU hangs in BF4. See HSD 1707282275 and 14013111325.

v2. Fix bug in WA implementation. (Sagar)

Cc: mesa-stable
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8755>

3 years agoanv: Avoid sampling some MCS surfaces with clear
Nanley Chery [Tue, 26 Jan 2021 23:44:05 +0000 (15:44 -0800)]
anv: Avoid sampling some MCS surfaces with clear

Supposedly avoids GPU hangs in BF4. See HSD 1707282275 and 14013111325.

v2. Fix bug in WA implementation. (Sagar)

Cc: mesa-stable
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8755>

3 years agoanv: Add clear_supported to anv_layout_to_aux_state
Nanley Chery [Tue, 26 Jan 2021 23:42:28 +0000 (15:42 -0800)]
anv: Add clear_supported to anv_layout_to_aux_state

This will be used for an MCS workaround.

Cc: mesa-stable
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8755>

3 years agoradv: call nir_copy_prop() after load-store vectorization
Daniel Schürmann [Fri, 14 May 2021 13:33:02 +0000 (15:33 +0200)]
radv: call nir_copy_prop() after load-store vectorization

The load-store vectorizer can create a large amount
of unnecessary nir_op_vec and nir_op_mov instructions.
This prevents nir_opt_move from stalling to much and
potentially also helps other passes.

Closes: #4778
Fixes: 1958381c9ae15dc252bcab8612f39fdca45d4843 ('radv: Reorder some NIR optimizations in preparation for the I/O changes.')
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10804>

3 years agoaco/ra: prevent underflow register for p_create_vector operands
Daniel Schürmann [Fri, 14 May 2021 09:29:33 +0000 (11:29 +0200)]
aco/ra: prevent underflow register for p_create_vector operands

It could happen that we tested negative out-of-range
registers for p_create_vector operands resulting in a crash.

Fixes: 8962510e38fbaff792f60bc17d46507bb77401ac ('aco/ra: Conservatively refactor get_reg_specified to use PhysRegInterval')
Closes: #4697
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10799>

3 years agoci/freedreno: Skip refract on a306 now that it hangchecks sometimes.
Emma Anholt [Thu, 13 May 2021 21:31:20 +0000 (14:31 -0700)]
ci/freedreno: Skip refract on a306 now that it hangchecks sometimes.

Not every MR, but several per day since I landed the apitrace switch which
increased trace replay resolution to 1080p.  Hopefully some day we can
tune the hangcheck to be less aggressive.

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

3 years agonir: Rename nir_is_per_vertex_io to nir_is_arrayed_io
Caio Marcelo de Oliveira Filho [Tue, 27 Apr 2021 21:49:40 +0000 (14:49 -0700)]
nir: Rename nir_is_per_vertex_io to nir_is_arrayed_io

VS outputs are "per vertex" but not the kind of I/O we want to match
with this helper.  Change to a name that covers the "arrayness"
required by the type.

Name inspired by the GLSL spec definition of arrayed I/O.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10493>

3 years agocompiler/nir: check whether var is an input in lower_fragcoord_wtrans
Gert Wollny [Sun, 2 May 2021 12:41:21 +0000 (14:41 +0200)]
compiler/nir: check whether var is an input in lower_fragcoord_wtrans

Otherwise the lowering pass might try to lower any other load from
a deref if its data.location value happens to be zero.

Fixes: 418c4c0d7d48a42f475df1ffb93b3a33763e7a4a
  compiler/nir: extend lower_fragcoord_wtrans to support VARYING_SLOT_POS

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

3 years agozink: emit some barriers out of renderpass where possible
Mike Blumenkrantz [Fri, 15 Jan 2021 18:21:09 +0000 (13:21 -0500)]
zink: emit some barriers out of renderpass where possible

when emitting barriers, we don't need to end the renderpass in some cases

this handles the case of emitting barriers for new resources which have
never before been accessed and thus do not require synchronization at a
specific point in the batch

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

3 years agozink: add flags for determining whether to update framebuffer and renderpass
Mike Blumenkrantz [Wed, 3 Mar 2021 20:56:14 +0000 (15:56 -0500)]
zink: add flags for determining whether to update framebuffer and renderpass

we can optimize restarting renderpasses here a little by only performing
lookups if states have actually changed

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

3 years agozink: add a flag for tracking/validating renderpass clears
Mike Blumenkrantz [Thu, 4 Mar 2021 14:26:13 +0000 (09:26 -0500)]
zink: add a flag for tracking/validating renderpass clears

we've been tracking which attachments are deferring clears but not
specifically the ones that are going to be cleared in a renderpass

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

3 years agozink: split out base renderpass begin into separate function
Mike Blumenkrantz [Wed, 3 Mar 2021 20:43:02 +0000 (15:43 -0500)]
zink: split out base renderpass begin into separate function

let fb setup and barriers and whatever be separate

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

3 years agoutil: tune signatures of generated enum operators
Tony Wasserka [Thu, 13 May 2021 10:04:11 +0000 (12:04 +0200)]
util: tune signatures of generated enum operators

This allows use of these operators in a constexpr context and silences
a clang -Wunused-function warning.

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

3 years agoutil: add support for defining bitwise operators on strongly typed enums
Tony Wasserka [Thu, 13 May 2021 09:21:16 +0000 (11:21 +0200)]
util: add support for defining bitwise operators on strongly typed enums

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

3 years agointel: Add 2 ADL-S pci-ids
Jordan Justen [Thu, 13 May 2021 00:01:52 +0000 (17:01 -0700)]
intel: Add 2 ADL-S pci-ids

Cc: mesa-stable
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10781>

3 years agodriconf: set vk_x11_strict_image_count for Metro: Exodus
Daniel Schürmann [Tue, 4 May 2021 13:30:50 +0000 (15:30 +0200)]
driconf: set vk_x11_strict_image_count for Metro: Exodus

Otherwise, the game crashes on startup under xwayland.

Closes: #4650
Cc: mesa-stable
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10750>

3 years agoutil/queue: don't require a fence when adding a job
Mike Blumenkrantz [Sun, 9 May 2021 14:25:00 +0000 (10:25 -0400)]
util/queue: don't require a fence when adding a job

sometimes we just want to fire jobs off into the void and don't care
if or when they finish

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

3 years agopanfrost: Skip blit shader labelling if the buffer has no space
Icecream95 [Thu, 13 May 2021 21:11:00 +0000 (09:11 +1200)]
panfrost: Skip blit shader labelling if the buffer has no space

Fixes stack corruption in dEQP-GLES31.functional.draw_buffers_indexed.
random.max_implementation_draw_buffers.10

Fixes: 8ba2f9f6985 ("panfrost: Create a blitter library to replace the existing preload helpers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10792>

3 years agoanv: handle spirv parsing failure
Lionel Landwerlin [Thu, 13 May 2021 19:48:15 +0000 (22:48 +0300)]
anv: handle spirv parsing failure

v2: don't leak spec_entries

v3: Also switch to VK_ERROR_UNKNOWN when parsing fails

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10790>

3 years agointel/dev: Add device info for ADL GT2
Jordan Justen [Thu, 9 Jul 2020 09:51:07 +0000 (02:51 -0700)]
intel/dev: Add device info for ADL GT2

Cc: mesa-stable
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9465>

3 years agointel/isl: Add Wa_22011186057 to disable CCS on ADL GT2 A0
Jordan Justen [Thu, 10 Dec 2020 09:42:12 +0000 (01:42 -0800)]
intel/isl: Add Wa_22011186057 to disable CCS on ADL GT2 A0

Cc: mesa-stable
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9465>

3 years agoCI: Disable all Panfrost/AMD/Iris automatic jobs
Daniel Stone [Thu, 13 May 2021 22:19:35 +0000 (23:19 +0100)]
CI: Disable all Panfrost/AMD/Iris automatic jobs

The power in Cambridge is unstable; disable these jobs until it's back
clear.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10797>

3 years agozink: immediately return false when getting query result if it's not gonna happen
Mike Blumenkrantz [Thu, 13 May 2021 22:16:47 +0000 (18:16 -0400)]
zink: immediately return false when getting query result if it's not gonna happen

this is a small optimization for the no-wait case when unflushed usage
exists since it's impossible for a qbo update to happen instantly

no functionality will be fixed by this, it's just a very minor optimization

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

3 years agolavapipe: fix fencing when submitting multiple cmdbufs
Mike Blumenkrantz [Thu, 13 May 2021 22:14:51 +0000 (18:14 -0400)]
lavapipe: fix fencing when submitting multiple cmdbufs

a fence applies to all the submitted cmdbufs, so it's necessary to do
the flush which creates the user fence after all the cmdbufs have been
processed in order to avoid creating a fence that only applies to the
first cmdbuf

Fixes: b38879f8c5f ("vallium: initial import of the vulkan frontend")

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

3 years agozink: fix DrawParameters shader cap usage
Mike Blumenkrantz [Thu, 13 May 2021 18:36:19 +0000 (14:36 -0400)]
zink: fix DrawParameters shader cap usage

this is for vertex shaders and covers more than just baseinstance

Fixes: dcb9e4ddb4b ("zink: emit cap early")

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

3 years agozink: stop overwriting buffer map pointers for stream uploader
Mike Blumenkrantz [Thu, 13 May 2021 16:38:46 +0000 (12:38 -0400)]
zink: stop overwriting buffer map pointers for stream uploader

this breaks the driver!

the uploader always maps its own pointer, so modifying that at any
point just explodes things later

Fixes: d179c5d28e6 ("zink: implement threaded context")

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

3 years agointel/compiler: Clarify why VUE is recomputed by FS
Caio Marcelo de Oliveira Filho [Fri, 30 Apr 2021 08:00:51 +0000 (01:00 -0700)]
intel/compiler: Clarify why VUE is recomputed by FS

FS will get the last geometry VUE, but it still needs to recompute in
case the number of position slots assigned by geometry is larger than
one -- this happens when Primitive Replication is used.

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

3 years agoci/turnip: drop fail annotation for image.extend_operands_spirv1p4.*
Danylo Piliaiev [Thu, 13 May 2021 09:15:56 +0000 (12:15 +0300)]
ci/turnip: drop fail annotation for image.extend_operands_spirv1p4.*

They were fixed in
ed20e69b "vtn: Handle ZeroExtend/SignExtend image operands"

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10783>

3 years agoci/turnip: drop fail annotation for float_control tests
Danylo Piliaiev [Thu, 13 May 2021 09:00:57 +0000 (12:00 +0300)]
ci/turnip: drop fail annotation for float_control tests

These tests are NotSupported and therefore cannot fail.

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10783>

3 years agoanv: fix perf query pass with command buffer batching
Lionel Landwerlin [Sat, 17 Apr 2021 16:59:22 +0000 (19:59 +0300)]
anv: fix perf query pass with command buffer batching

We've only considered the perf query pool change previously. But we
also need to pay attention to the pass index.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 0a7224f3ff7542 ("anv: group as many command buffers into a single execbuf")
Reviewed-by: Felix DeGrood <felix.j.degrood@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10301>

3 years agointel/mi_builder: fix resolve call
Lionel Landwerlin [Sat, 17 Apr 2021 15:21:26 +0000 (18:21 +0300)]
intel/mi_builder: fix resolve call

Giving NULL for anv_combine_address() triggers an assert in that
function.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 8525ebe6e375 ("intel/mi_builder: Return an address from __gen_get_batch_address")
Reviewed-by: Felix DeGrood <felix.j.degrood@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10301>

3 years agoi915g: add HW atomic counters as unsupported
Abel García Dorta [Wed, 12 May 2021 17:34:19 +0000 (18:34 +0100)]
i915g: add HW atomic counters as unsupported

Closes: #4772
Fixes: 2a06423c009 ("gallium: add CAPs to support HW atomic counters. (v3)")
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10776>

3 years agoaco/scheduler: Verify register demand invariants in debug mode
Tony Wasserka [Fri, 7 May 2021 10:10:52 +0000 (12:10 +0200)]
aco/scheduler: Verify register demand invariants in debug mode

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10644>

3 years agoaco/scheduler: Fix register demand computation for upwards moves
Tony Wasserka [Fri, 7 May 2021 14:22:45 +0000 (16:22 +0200)]
aco/scheduler: Fix register demand computation for upwards moves

The initial value needs to be taken from the instruction that is being
moved over, not the one to be moved.

Additionally the parameter of this function was removed because it was
misleading. Setting it to any value other than source_idx would cause
register_demand to be initialized incorrectly. (Instead, the maximum
demand among the covered instructions would need to be determined.)

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10644>

3 years agoaco/scheduler: Fix register demand computation for downwards moves
Tony Wasserka [Wed, 5 May 2021 10:53:13 +0000 (12:53 +0200)]
aco/scheduler: Fix register demand computation for downwards moves

Previously, changes in total_demand_clause were not always propagated to
total_demand. For instance, clause moves do not change the local register
demand at the end of a clause, yet they may still affect the total maximum.

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: 8235bc64112 ("aco: try to group together VMEM loads of the same resource")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4533
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10644>

3 years agoaco: relax validation rules for p_reduce dst RegType
Daniel Schürmann [Wed, 12 May 2021 10:52:52 +0000 (12:52 +0200)]
aco: relax validation rules for p_reduce dst RegType

By exposing a subgroupSize of 64, reductions with
cluster_size 32 in wave32 might be considered divergent,
and thus, result in a VGPR.

Fixes: dEQP-VK.subgroups.clustered.graphics.subgroupclustered* with wave32

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10769>

3 years agoisl: require hiz for depth surface in isl_surf_get_ccs_surf
Tapani Pälli [Wed, 12 May 2021 12:19:43 +0000 (15:19 +0300)]
isl: require hiz for depth surface in isl_surf_get_ccs_surf

Fixes: 752eefdb ("intel/isl: Refactor isl_surf_get_ccs_surf")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10768>

3 years agowgl: Remove opengl32.mingw.def.
Jose Fonseca [Wed, 12 May 2021 12:29:45 +0000 (13:29 +0100)]
wgl: Remove opengl32.mingw.def.

MinGW DEF parsing is even more broken than before, and 32-bits import
libs are broken regardless one uses opengl32.mingw.def or opengl32.def.

This change removes opengl32.mingw.def and addresses the issue differently:

- link opengl32.dll with --enable-stdcall-fixup

- use the systems opengl32 import lib (libopengl32.a/opengl32.lib)
  instead of our own

This change also gets test_wgl built with MinGW (even if it's never tested),
which I used to verify this; and to not link against internal libraries.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
v2: Revert back to shared_library.

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

3 years agozink: always do maybe_flush after draw/compute
Mike Blumenkrantz [Fri, 2 Apr 2021 16:13:53 +0000 (12:13 -0400)]
zink: always do maybe_flush after draw/compute

this is a bit more sensible since a forced flush is going to require
refs and layouts be reapplied

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

3 years agozink: check for a work_count-based stall in zink_maybe_flush_or_stall()
Mike Blumenkrantz [Fri, 2 Apr 2021 16:13:13 +0000 (12:13 -0400)]
zink: check for a work_count-based stall in zink_maybe_flush_or_stall()

put all the maybes in one place

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

3 years agozink: flush every 100k draws/computes
Mike Blumenkrantz [Wed, 20 Jan 2021 20:11:49 +0000 (15:11 -0500)]
zink: flush every 100k draws/computes

this ensures more consistent throughput in e.g., drawoverhead

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

3 years agoglsl: add missing support for explicit components in interface blocks
Timothy Arceri [Wed, 12 May 2021 05:44:02 +0000 (15:44 +1000)]
glsl: add missing support for explicit components in interface blocks

From the ARB_enhanced_layouts spec:

   "As with input layout qualifiers, all shaders except compute shaders
   allow *location* layout qualifiers on output variable declarations,
   output block declarations, and output block member declarations.  Of
   these, variables and block members (but not blocks) additionally
   allow the *component* layout qualifier."

We previously had compile tests in piglit to make sure this was not a
compile error but no execution tests.

Fixes: d99a040bbf2c ("i965: enable ARB_enhanced_layouts for gen8+")

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

3 years agoglsl: create validate_component_layout_for_type() helper
Timothy Arceri [Wed, 12 May 2021 05:42:44 +0000 (15:42 +1000)]
glsl: create validate_component_layout_for_type() helper

This will be used in the following patch.

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

3 years agoUpdate release notes with mention that x87 is no longer used on x86
Ryan Houdek [Thu, 6 May 2021 19:17:42 +0000 (12:17 -0700)]
Update release notes with mention that x87 is no longer used on x86

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

3 years agoSwitch u_format_test to passed on i386
Ryan Houdek [Thu, 6 May 2021 08:45:47 +0000 (01:45 -0700)]
Switch u_format_test to passed on i386

Switching from x87 to SSE resolves the rounding behaviour in this test.

It was some of the dxt formats failing and now they are not.

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

3 years agoDefault enable SSE2 on mesa builds.
Ryan Houdek [Fri, 26 Mar 2021 23:25:01 +0000 (16:25 -0700)]
Default enable SSE2 on mesa builds.

With the idea of branching classic device support in to its own tree now would be a good time to also raise the minimum
requirements to something that is more "modern" on x86.
SSE2 was introduced in 2000(!) by default let's make it the minimum spec now
All the old hardware that is moving to the maintenance branch will finally be out of the way.

For the 64-bit side of the discussion there isn't much changed.
* GCC already enables -msse and -msse2 by default
* Same with clang
* fpmath=sse might remove some extraneous x87 usage
** Clang implies fpmath=sse ALWAYS

For the 32-bit side of things is where the exciting details change
* GCC by default doesn't enable sse1 or sse2
** Does all `float`, `double`, and `long double` math with x87
** -msse2 enables sse2 and sse1, gcc still uses x87 even with those enabled
** -mfpmath=sse moves away from using x87 and instead uses sse1 and sse2
* Clang already default enables sse1/sse2 which then turns on their implied fpmath=sse

What does this mean for users?
On Linux raises the default minimum processor spec to SSE2 supporting CPUs
* Intel requirements raise from P5 (1993) to Netburst (2000)
* AMD requirements raise from Athlon(1999/2000) to Athlon 64 (2003)
* Via requirements raise from C3(2001) to C7 (2005)

What does it mean for package maintainers?
For x86-64 distributions that have i386/i686 multilib, then nothing changes. You're already on a platform guaranteed to support SSE2.
For i386/i686 distributions they will need to weigh their min spec against this. Not sure how many still support classic processors.

Who is left out in the cold?
* Intel Quark (2013)
** Embedded board, doesn't have a GPU, Technically has 1x PCIe 2.0 lane that someone could plug a GPU in to
* Some older transmeta CPUs, but they had a followup that also had SSE2.
** Anyone hacking on these with a modern GPU? I'm guessing they know how to turn this option off

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

3 years agonv50/ir: Add ConstantFolding constructor.
Vinson Lee [Sat, 8 May 2021 23:42:52 +0000 (16:42 -0700)]
nv50/ir: Add ConstantFolding constructor.

Fix defect reported by Coverity Scan.

Uninitialized scalar field (UNINIT_CTOR)
member_not_init_in_gen_ctor: The compiler-generated constructor for this
class does not initialize foldCount.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10713>

3 years agonvc0/ir: Initialize CodeEmitterGK110 member progType in constructor.
Vinson Lee [Sun, 9 May 2021 00:23:52 +0000 (17:23 -0700)]
nvc0/ir: Initialize CodeEmitterGK110 member progType in constructor.

Fix defect reported by Coverity Scan.

Uninitialized scalar field (UNINIT_CTOR)
uninit_member: Non-static class member progType is not initialized in
this constructor nor in any functions that it calls.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10715>

3 years agovenus: get rid of #ifdef's in vn_CreateImage
Chia-I Wu [Wed, 12 May 2021 20:50:56 +0000 (13:50 -0700)]
venus: get rid of #ifdef's in vn_CreateImage

No real change after compiler optimizations.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10779>

3 years agointel/fs: use the final destination type for regioning restrictions
Lionel Landwerlin [Wed, 12 May 2021 08:24:12 +0000 (11:24 +0300)]
intel/fs: use the final destination type for regioning restrictions

This is most likely a rebase mistake :(

Fixes: f3e5cd813ae6a8 ("intel/fs: Handle regioning restrictions of split FP/DP pipelines.")
Ref: aa53665fda6348 ("intel/fs/copy_prop: check stride constraints with actual final type")
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10764>

3 years agopanfrost: Add GPU IDs for G52 1-Core-2EE (RK3568/RK3566)
Ezequiel Garcia [Tue, 11 May 2021 19:57:25 +0000 (16:57 -0300)]
panfrost: Add GPU IDs for G52 1-Core-2EE (RK3568/RK3566)

Rockchip SoCs RK3566 and RK3568 have a Gondul with
one shader core and two execution engines, with product ID 0x7402.

Quoting the datasheet:

Mali-G52 1-Core-2EE
* Support 1600Mpix/s fill rate when 800MHz clock frequency
* Support 38.4GLOPs when 800MHz clock frequency

To distinguish it from other variants of G52, we agreed
to call this "G52L", L is for Little.

Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10771>

3 years agopan/mdg: Use smaller LD_UNIFORM instructions
Alyssa Rosenzweig [Wed, 12 May 2021 17:22:24 +0000 (13:22 -0400)]
pan/mdg: Use smaller LD_UNIFORM instructions

If we only read 8 bytes from a UBO, we need to use LD_UNIFORM.64 as
opposed to LD_UNIFORM.128. In addition to probably being faster, this
fixes a buffer overrun manifesting as MMU faults with source ID
0x500/0x600/0x700, visible in WebGL Aquarium.

This is essentially the same patch as 616394cf31c ("pan/mdg: Use
appropriate sizes for global loads/stores"), only this is for UBOs where
that was for SSBOs.

Before enabling PACKED_UNIFORMS, this bug was not visible since we could
guarantee the UBO size was a multiple of 16. We no longer have that
invariant, and in rare cases the last 8 bytes of the last 16-byte slot
of a mapped uniform buffer would overrun the BO and trigger a fault,
even if the result is unused.

Fixes: 24d7c413fe7 ("panfrost: Enable packed uniforms.")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10772>

3 years agopanfrost: Don't upload empty push uniform table
Alyssa Rosenzweig [Wed, 12 May 2021 17:21:40 +0000 (13:21 -0400)]
panfrost: Don't upload empty push uniform table

Instead zero out the pointer in this case.

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