platform/upstream/mesa.git
3 years agoamd: Fix warnings around variable sizes
James Park [Thu, 22 Apr 2021 20:09:20 +0000 (13:09 -0700)]
amd: Fix warnings around variable sizes

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6162>

3 years agoradv: cleanup LLVM related includes
Samuel Pitoiset [Thu, 22 Apr 2021 13:59:22 +0000 (15:59 +0200)]
radv: cleanup LLVM related includes

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

3 years agoac: move ac_lower_indirect_derefs() outside of the LLVM dir
Samuel Pitoiset [Thu, 22 Apr 2021 14:14:32 +0000 (16:14 +0200)]
ac: move ac_lower_indirect_derefs() outside of the LLVM dir

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10403>

3 years agoradv: remove old comment about LLVM <= 8
Samuel Pitoiset [Thu, 22 Apr 2021 08:15:46 +0000 (10:15 +0200)]
radv: remove old comment about LLVM <= 8

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

3 years agoradv/winsys: remove set but never used use_llvm
Samuel Pitoiset [Thu, 22 Apr 2021 08:13:24 +0000 (10:13 +0200)]
radv/winsys: remove set but never used use_llvm

It's no longer necessary since LLVM version has been bumped.

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

3 years agoradv: fix emitting default depth bounds state on GFX6
Samuel Pitoiset [Tue, 20 Apr 2021 11:09:09 +0000 (13:09 +0200)]
radv: fix emitting default depth bounds state on GFX6

GFX6 has no CLEAR_STATE.

One step towards Vulkan conformance on these old chips.

Cc: 21.1 mesa-stable
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/10347>

3 years agozink: when performing an implicit reset, sync qbos
Mike Blumenkrantz [Thu, 15 Apr 2021 19:13:02 +0000 (15:13 -0400)]
zink: when performing an implicit reset, sync qbos

resetting a query pool+qbo dumpsters the existing qbo results,
so these need to be copied to the new qbo if they exist, and then the query
id needs to be updated to match the expected result offset so everything
keeps working as expected

Fixes: 00fc85a0119 ("zink: reset queries when suspending if >50% of total pool is used")

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

3 years agozink: only reset query on suspend if the query has previously been stopped
Mike Blumenkrantz [Thu, 15 Apr 2021 19:10:30 +0000 (15:10 -0400)]
zink: only reset query on suspend if the query has previously been stopped

if the query has never been stopped, then doing an implicit reset here does
nothing except give the gpu more work

Fixes: 00fc85a0119 ("zink: reset queries when suspending if >50% of total pool is used")

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

3 years agozink: init timeline semaphore on screen creation, not first batch creation
Mike Blumenkrantz [Tue, 13 Apr 2021 13:14:34 +0000 (09:14 -0400)]
zink: init timeline semaphore on screen creation, not first batch creation

this is less racy

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

3 years agozink: use cached memory for staging resources
Mike Blumenkrantz [Mon, 19 Apr 2021 22:28:13 +0000 (18:28 -0400)]
zink: use cached memory for staging resources

I think at one point before staging resource flagging was less reliable
this method made sense, but now it's worse

Fixes: 6ff6d01c377 ("zink: don't use cached mem for staging resources")

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

3 years agozink: restore previous semaphore (prev_sem) handling
Mike Blumenkrantz [Fri, 23 Apr 2021 03:04:47 +0000 (23:04 -0400)]
zink: restore previous semaphore (prev_sem) handling

this was accidentally lost during refactoring

Fixes: fa36a16c684 ("zink: make timeline semaphores per-screen")

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

3 years agozink: track persistent resource objects, not resources
Mike Blumenkrantz [Thu, 15 Apr 2021 12:40:34 +0000 (08:40 -0400)]
zink: track persistent resource objects, not resources

this is broken after the backing object split because resources themselves
no longer have guaranteed lifetimes

Fixes: 616720d6aec ("zink: track resource_object usage instead of resource usage")

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

3 years agosoftpipe: ci updates
Mike Blumenkrantz [Thu, 22 Apr 2021 13:05:46 +0000 (09:05 -0400)]
softpipe: ci updates

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

3 years agosoftpipe: fix streamout queries
Mike Blumenkrantz [Thu, 22 Apr 2021 12:44:53 +0000 (08:44 -0400)]
softpipe: fix streamout queries

these need to always use the query index in order to access the correct
vertex stream

Fixes: ddb9ad363d9 ("softpipe: add support for indexed queries.")

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

3 years agosoftpipe: fix render condition checking
Mike Blumenkrantz [Wed, 21 Apr 2021 23:50:23 +0000 (19:50 -0400)]
softpipe: fix render condition checking

always casting this to a u64 is invalid if the value is just a bool,
and it even generates ASAN/valgrind errors about uninitialized reads

Fixes: 41450b03a8e ("softpipe: implement conditional rendering")

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

3 years agopan/bi: Skip nir_opt_move/sink for blend shaders
Icecream95 [Wed, 7 Apr 2021 11:43:05 +0000 (23:43 +1200)]
pan/bi: Skip nir_opt_move/sink for blend shaders

Otherwise the dual-source input load is moved further down in the
shader, so the registers can get clobbered before then.

Fixes text not being visible in Alacritty.

Fixes: 52863f2e60f ("pan/bi: Enable all nir_opt_move/sink optimizations")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10089>

3 years agopanfrost/ci: Enable some dEQP 3.1 tests on Mali T860
Tomeu Vizoso [Mon, 7 Sep 2020 06:49:43 +0000 (08:49 +0200)]
panfrost/ci: Enable some dEQP 3.1 tests on Mali T860

We have now enough machines in the lab for the extra job.

Signed-off-by: Italo Nicola <italonicola@collabora.com>
Reviewed-by: Italo Nicola <italonicola@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10375>

3 years agopanfrost/ci: Test GLES 3.1 on Bifrost
Boris Brezillon [Wed, 21 Apr 2021 09:10:46 +0000 (11:10 +0200)]
panfrost/ci: Test GLES 3.1 on Bifrost

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10375>

3 years agoci: Update to a kernel that has the panfrost MMU fixes
Boris Brezillon [Wed, 21 Apr 2021 12:57:05 +0000 (14:57 +0200)]
ci: Update to a kernel that has the panfrost MMU fixes

Needed for dEQP-GLES31.functional.draw_indirect, otherwise we end up
with GPU faults.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10375>

3 years agopanfrost: Only advertise INDIRECT_DRAW if the kernel supports HEAP BOs
Boris Brezillon [Wed, 21 Apr 2021 16:04:34 +0000 (18:04 +0200)]
panfrost: Only advertise INDIRECT_DRAW if the kernel supports HEAP BOs

The indirect draw implementation uses a HEAP pool to allocate varyings.
Don't advertise INDIRECT_DRAW if the kernel doesn't support allocating
HEAP BOs.

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

3 years agofrontends/va: add VASurfaceAttribUsageHint attribute
Leo Liu [Thu, 22 Apr 2021 18:32:48 +0000 (14:32 -0400)]
frontends/va: add VASurfaceAttribUsageHint attribute

Chrome browser has been calling this attribute to give driver the surface
usage hint. The hints include:
   VA_SURFACE_ATTRIB_USAGE_HINT_GENERIC
   VA_SURFACE_ATTRIB_USAGE_HINT_DECODER
   VA_SURFACE_ATTRIB_USAGE_HINT_ENCODER
   VA_SURFACE_ATTRIB_USAGE_HINT_VPP_READ
   VA_SURFACE_ATTRIB_USAGE_HINT_VPP_WRITE
   VA_SURFACE_ATTRIB_USAGE_HINT_DISPLAY
   VA_SURFACE_ATTRIB_USAGE_HINT_EXPORT

The surface allocation are generic for us, and we don't need to specify
it. To add the attribute here is because we don't want application which
is calling this attribute to end up returning error and getting no surface
allocated.

Fixes: ebab310987 ("frontends/va: improve surface attribs processing")

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: James Zhu <James.Zhu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10353>

3 years agor600: don't set an index_bias for indirect draw calls
Gert Wollny [Sun, 28 Mar 2021 08:27:20 +0000 (10:27 +0200)]
r600: don't set an index_bias for indirect draw calls

The bug #4657 mixed up which commit was actually responsible for
the regression, so re-apply this patch.

The indirect draw call already encodes the index bias so that no
additional encoding in the hardware is needed in this case.

This fixes a regression with a number of tests from
   dEQP-GLES31.functional.draw_indirect.random.*

Fixes: c6c532faa8cf172715b38783ec7175b626a63944
  "gallium/u_vbuf: use updated pipe_draw_start_count while using draw_vbo"

Closes #4671

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

3 years agoRevert "r600: Don't advertise support for scaled int16 vertex formats"
Gert Wollny [Tue, 20 Apr 2021 21:57:12 +0000 (23:57 +0200)]
Revert "r600: Don't advertise support for scaled int16 vertex formats"

This reverts commit 00a1521529ccb4f7527c6d55a471ef18d1b000d1.

While the commit fixed some GLES cts tests it introduced heavy regressions
that made the driver unusable.

Closes #4680

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

3 years agoglx: Remove unused debugging printfs
Adam Jackson [Tue, 20 Apr 2021 02:35:43 +0000 (22:35 -0400)]
glx: Remove unused debugging printfs

There's better ways to do that, if that's what you need.

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

3 years agoglx: Convert undocumented LIBGL_DIAGNOSTIC to LIBGL_DEBUG=verbose
Adam Jackson [Tue, 20 Apr 2021 02:59:56 +0000 (22:59 -0400)]
glx: Convert undocumented LIBGL_DIAGNOSTIC to LIBGL_DEBUG=verbose

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

3 years agoglx: Add and use DebugMessageF convenience macro
Adam Jackson [Tue, 20 Apr 2021 02:53:38 +0000 (22:53 -0400)]
glx: Add and use DebugMessageF convenience macro

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

3 years agoglx: s/dri_message/glx_message/
Adam Jackson [Tue, 20 Apr 2021 02:43:46 +0000 (22:43 -0400)]
glx: s/dri_message/glx_message/

Move this up to the generic glx code, there's nothing DRI-specific about
this and it'll let us clean up some ad-hockery elsewhere.

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

3 years agoglx: Return the right GLX opcode in synthetic MakeCurrent errors
Adam Jackson [Fri, 16 Apr 2021 18:25:16 +0000 (14:25 -0400)]
glx: Return the right GLX opcode in synthetic MakeCurrent errors

If you're trying to figure out why an operation failed it helps if
the error matches the function you thought you called.

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

3 years agodri: Try harder to infer the drawable fbconfig if needed
Adam Jackson [Fri, 16 Apr 2021 17:59:29 +0000 (13:59 -0400)]
dri: Try harder to infer the drawable fbconfig if needed

This code would work for GLXWindows but not for bare Windows, which I
guess you could argue is a server bug but which we can fix on the client
side with a little effort. We change __glXGetDrawableAttribute to
additionally return false if we failed to find the requested attribute
(which is safe, all the other callers discard the return value). Then
when inferring the fbconfig, if the attribute wasn't found, we ask for
the window attributes to find the visual ID and use that to find the
fbconfig.

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

3 years agointel/compiler: Don't insert barriers for NULL sources
Jason Ekstrand [Thu, 22 Apr 2021 14:21:59 +0000 (09:21 -0500)]
intel/compiler: Don't insert barriers for NULL sources

Normally, we never see NULL in a source.  However, starting with
eab1c55590b1, we can with a SHADER_OPCODE_SEND if it only has the first
payload.  We were inserting barriers which adds unnecessary scheduling
dependencies and takes a lot of compile time because inserting a single
barrier is an O(n) operation.

All the extra O(n) can have a surprisingly large effect.  This cuts the
runtime of dEQP-VK.binding_model.buffer_device_address.set3.depth3.
basessbo.convertcheckuv2.store.single.std140.frag by a factor of 20x for
a debug build.

Shader-db results on ICL:

    total instructions in shared programs: 19918983 -> 19921610 (0.01%)
    instructions in affected programs: 884074 -> 886701 (0.30%)
    helped: 1688
    HURT: 817
    helped stats (abs) min: 1 max: 163 x̄: 4.23 x̃: 1
    helped stats (rel) min: 0.02% max: 12.50% x̄: 1.08% x̃: 0.61%
    HURT stats (abs)   min: 1 max: 2674 x̄: 11.95 x̃: 2
    HURT stats (rel)   min: 0.11% max: 70.22% x̄: 1.71% x̃: 1.03%
    95% mean confidence interval for instructions value: -1.97 4.06
    95% mean confidence interval for instructions %-change: -0.28% -0.06%
    Inconclusive result (value mean confidence interval includes 0).

    total cycles in shared programs: 976503324 -> 975884809 (-0.06%)
    cycles in affected programs: 82581703 -> 81963188 (-0.75%)
    helped: 4144
    HURT: 5010
    helped stats (abs) min: 1 max: 79294 x̄: 311.31 x̃: 8
    helped stats (rel) min: <.01% max: 53.69% x̄: 2.00% x̃: 0.51%
    HURT stats (abs)   min: 1 max: 92266 x̄: 134.04 x̃: 8
    HURT stats (rel)   min: <.01% max: 218.09% x̄: 3.25% x̃: 0.53%
    95% mean confidence interval for cycles value: -119.85 -15.29
    95% mean confidence interval for cycles %-change: 0.68% 1.07%
    Inconclusive result (value mean confidence interval and %-change mean confidence interval disagree).

    total spills in shared programs: 10659 -> 12014 (12.71%)
    spills in affected programs: 441 -> 1796 (307.26%)
    helped: 7
    HURT: 12

    total fills in shared programs: 11551 -> 14429 (24.92%)
    fills in affected programs: 993 -> 3871 (289.83%)
    helped: 8
    HURT: 11

    total sends in shared programs: 1025832 -> 1025353 (-0.05%)
    sends in affected programs: 2241 -> 1762 (-21.37%)
    helped: 105
    HURT: 1
    helped stats (abs) min: 1 max: 87 x̄: 4.57 x̃: 2
    helped stats (rel) min: 5.56% max: 54.72% x̄: 11.37% x̃: 10.00%
    HURT stats (abs)   min: 1 max: 1 x̄: 1.00 x̃: 1
    HURT stats (rel)   min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
    95% mean confidence interval for sends value: -7.39 -1.65
    95% mean confidence interval for sends %-change: -12.95% -7.70%
    Sends are helped.

    LOST:   93
    GAINED: 109

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4648
Fixes: eab1c55590b1 "intel/fs: Support SENDS in SHADER_OPCODE_SEND"
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10412>

3 years agozink: do not read outside of array
Erik Faye-Lund [Wed, 21 Apr 2021 08:14:13 +0000 (10:14 +0200)]
zink: do not read outside of array

We need to bounds-check *before* we index the array, otherwise we peek
beyond the end of it.

Caught by Valgrind.

Fixes: dd29a7e5b0e ("zink: move descriptor barrier handling to main update function")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10367>

3 years agopanfrost: Hook-up indirect dispatch support
Boris Brezillon [Mon, 19 Apr 2021 15:58:36 +0000 (17:58 +0200)]
panfrost: Hook-up indirect dispatch support

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

3 years agopanfrost: Add helpers to emit indirect dispatch jobs
Boris Brezillon [Mon, 19 Apr 2021 15:57:12 +0000 (17:57 +0200)]
panfrost: Add helpers to emit indirect dispatch jobs

Indirect dispatch is implemented using an extra compute job patching
the compute job header to apply the final num_workgroup values. Add
helpers to simplify emission of the such jobs.

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

3 years agopanfrost: Make sure pack_work_groups_compute() is passed valid dimensions
Boris Brezillon [Mon, 19 Apr 2021 15:54:11 +0000 (17:54 +0200)]
panfrost: Make sure pack_work_groups_compute() is passed valid dimensions

Make sure size_{x,y,z} and num_{x,y,s} are positive, otherwise we end
up with an integer underflow.

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

3 years agopan/midg: Make sure the constant offset is in range in mir_match_iadd()
Boris Brezillon [Thu, 22 Apr 2021 14:02:36 +0000 (16:02 +0200)]
pan/midg: Make sure the constant offset is in range in mir_match_iadd()

The offset field is an 18-bit signed integer, if the offset is bigger
than that we can get rid of the intermediate iadd.

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

3 years agopan/midg: Fix midgard_pack_common_store_mask()
Boris Brezillon [Thu, 22 Apr 2021 10:21:31 +0000 (12:21 +0200)]
pan/midg: Fix midgard_pack_common_store_mask()

st_u64() gets an invalid mask when component Y is written.

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

3 years agopan/bi: Expand pseudo instructions when nosched is set
Boris Brezillon [Mon, 19 Apr 2021 15:51:41 +0000 (17:51 +0200)]
pan/bi: Expand pseudo instructions when nosched is set

Pseudo instruction might expend to 2 instructions (one in the FMA slot
and one in the ADD slot), we need to expand those even if nosched is
set.

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

3 years agogallium: Fix PIPE_BIND_SAMPLER_REDUCTION_MINMAX definition to be unique
Adam Jackson [Wed, 21 Apr 2021 22:26:23 +0000 (18:26 -0400)]
gallium: Fix PIPE_BIND_SAMPLER_REDUCTION_MINMAX definition to be unique

This accidentally collided with PIPE_BIND_SCANOUT.

Fixes: 59ad872458c gallium: add PIPE_BIND_SAMPLER_REDUCTION_MINMAX
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10397>

3 years agozink: Fix format query for minmax reduction support
Adam Jackson [Wed, 21 Apr 2021 22:22:37 +0000 (18:22 -0400)]
zink: Fix format query for minmax reduction support

All the rest of the filters here are written as "if asking for this
feature and it's not there, return false", with an implicit fallthrough
to the next test. There's no good reason to treat minmax differently.

Fixes: 22e1ed57221 zink: support format queries for VK_EXT_sampler_filter_minmax
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10397>

3 years agoradeonsi: implement pipe_context.create_video_buffer_with_modifiers
Simon Ser [Fri, 9 Apr 2021 08:31:44 +0000 (10:31 +0200)]
radeonsi: implement pipe_context.create_video_buffer_with_modifiers

Just pass down the modifier list to vl_video_buffer_create_as_resource,
filtering out DCC modifiers because we don't support these for now.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10237>

3 years agogallium, va: add support for VASurfaceAttribDRMFormatModifiers
Simon Ser [Fri, 9 Apr 2021 08:25:11 +0000 (10:25 +0200)]
gallium, va: add support for VASurfaceAttribDRMFormatModifiers

This new surface attribute can be supplied by the client to indicate
a list of modifiers that the driver can choose from for buffer
allocation. This is useful to make sure the buffers allocated via libva
are compatible with the intended usage (e.g. can be scanned out via KMS
or can be imported to EGL).

Introduce a new Gallium pipe_context.create_video_buffer_with_modifiers
hook that drivers can implement if they are modifiers-aware. Add a
modifiers argument to vlVaHandleSurfaceAllocate so that the
user-supplied list of modifiers can be passed down from vaCreateSurfaces
to the Gallium driver.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10237>

3 years agoanv: reuse define for number of render target assert
Lionel Landwerlin [Wed, 31 Mar 2021 20:35:19 +0000 (23:35 +0300)]
anv: reuse define for number of render target assert

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

3 years agoanv: implement VK_EXT_color_write_enable
Lionel Landwerlin [Wed, 31 Mar 2021 16:40:21 +0000 (19:40 +0300)]
anv: implement VK_EXT_color_write_enable

v2: Add missing gfx 7/7.5 dynamic state emission

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

3 years agoanv: prepare pipeline for delayed emission of color writes
Lionel Landwerlin [Wed, 31 Mar 2021 15:50:00 +0000 (18:50 +0300)]
anv: prepare pipeline for delayed emission of color writes

Namely we want to be able to emit the following dynamically :

  * On Gfx 7/7.5 : 3DSTATE_VM, 3DSTATE_BLEND_STATE_POINTERS

  * On Gfx 8+ : 3DSTATE_VM, 3DSTATE_BLEND_STATE_POINTERS,
    3DSTATE_PS_BLEND

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

3 years agoanv: drop extension check for dynamic state
Lionel Landwerlin [Thu, 22 Apr 2021 10:32:08 +0000 (13:32 +0300)]
anv: drop extension check for dynamic state

Following 505d176a8ebf ("anv: disable baked in pipeline bits from
dynamic emission path") dynamic bits of extensions that are not
enabled should not be there.

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

3 years agovulkan: bump headers/registry to version 1.2.175
Lionel Landwerlin [Wed, 31 Mar 2021 14:49:38 +0000 (17:49 +0300)]
vulkan: bump headers/registry to version 1.2.175

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

3 years agopan/midg: Fix 2 memory leaks
Boris Brezillon [Thu, 22 Apr 2021 14:14:41 +0000 (16:14 +0200)]
pan/midg: Fix 2 memory leaks

The ssa_constants hash table and its elements are leaked. Pass the
context to the allocator to avoid that.

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

3 years agoaco: Mark VCC clobbered for iadd8 and iadd16 reductions on GFX6-7.
Timur Kristóf [Tue, 20 Apr 2021 11:55:23 +0000 (13:55 +0200)]
aco: Mark VCC clobbered for iadd8 and iadd16 reductions on GFX6-7.

On GFX6-7, the 8 and 16-bit integer add reductions use the 32-bit v_add
instruction, which clobbers the VCC register.

Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10346>

3 years agogallium/u_threaded: offload begin/end_intel_perf_query
Marcin Ślusarz [Fri, 16 Apr 2021 17:07:15 +0000 (19:07 +0200)]
gallium/u_threaded: offload begin/end_intel_perf_query

Fixes: 206495cac4e ("iris: Enable u_threaded_context")
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9922>

3 years agogallium/u_threaded: implement INTEL_performance_query hooks
Marcin Ślusarz [Fri, 16 Apr 2021 17:07:12 +0000 (19:07 +0200)]
gallium/u_threaded: implement INTEL_performance_query hooks

Fixes: 206495cac4e ("iris: Enable u_threaded_context")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4528

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9922>

3 years agointel/perf: move calculation of period_exponent to perf ctx init
Marcin Ślusarz [Fri, 16 Apr 2021 17:07:09 +0000 (19:07 +0200)]
intel/perf: move calculation of period_exponent to perf ctx init

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

3 years agoiris: fully populate perf_config before using it to initialize perf_context
Marcin Ślusarz [Fri, 16 Apr 2021 17:07:07 +0000 (19:07 +0200)]
iris: fully populate perf_config before using it to initialize perf_context

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

3 years agoi965: fully populate perf_config before using it to initialize perf_context
Marcin Ślusarz [Fri, 16 Apr 2021 17:07:01 +0000 (19:07 +0200)]
i965: fully populate perf_config before using it to initialize perf_context

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

3 years agomeson: Disable MSVC warning 5105
James Park [Thu, 28 Jan 2021 16:34:35 +0000 (08:34 -0800)]
meson: Disable MSVC warning 5105

Older versions of the Windows SDK are not compliant when the new
preprocessor is active, which is the default when C17 is enabled.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10202>

3 years agomeson: Disable libdrm for RADV on Windows
James Park [Tue, 13 Apr 2021 07:47:02 +0000 (00:47 -0700)]
meson: Disable libdrm for RADV on Windows

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10202>

3 years agomeson: Add wrap for libelf on Windows
James Park [Tue, 13 Apr 2021 07:43:13 +0000 (00:43 -0700)]
meson: Add wrap for libelf on Windows

Uses release from Lag Free Games GitHub, which applies Windows build
fixes to FreeBSD libelf.

The amd_common library uses libelf.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10202>

3 years agov3dv/pipeline_cache: bail out in case of error
Juan A. Suarez Romero [Thu, 22 Apr 2021 08:43:13 +0000 (10:43 +0200)]
v3dv/pipeline_cache: bail out in case of error

Currently, in GetPipelineCacheData() function, in several cases if
there is an error the blob is finished and cache unlocked, but code
continues executing, which can lead to multiple
`pthread_mutex_unlock()` calls.

Instead, if there's an error just bail out to finish the blob and unlock
the cache directly.

Fixes CID#1468147 "Double unlock (LOCK)".

v2:
 - Rename "bail_out" by "done" (apinheiro)

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

3 years agoradv: Use ac_drm_fourcc.h
James Park [Fri, 19 Mar 2021 08:47:26 +0000 (01:47 -0700)]
radv: Use ac_drm_fourcc.h

Allows compilation on Windows.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9709>

3 years agoac/surface: Move drm_fourcc.h to common header
James Park [Thu, 22 Apr 2021 07:48:31 +0000 (00:48 -0700)]
ac/surface: Move drm_fourcc.h to common header

Useful for including from RADV without copy/paste.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9709>

3 years agoci/v3d: execute all piglit tests
Juan A. Suarez Romero [Wed, 21 Apr 2021 09:28:25 +0000 (11:28 +0200)]
ci/v3d: execute all piglit tests

Most of the regressions we found are with the piglit testsuite. The
difference between executing all tests versus quick_gl + quick_shader
are minimal, in the sense that we would need the same number of jobs to
execute and be in the 10 minutes budget.

Hence replace "quick_gl" + "quick_shader" by "all".

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

3 years agov3dv: check returned values
Juan A. Suarez Romero [Wed, 21 Apr 2021 15:23:57 +0000 (17:23 +0200)]
v3dv: check returned values

Check if v3dv_ioctl() or v3dv_bo_map() fail, and print a proper error
message.

This check happens in the rest of the code, so it makes sense to apply
here too.

Fixes CID#1468162 "Unchecked return value (CHECKED_RETURN)".

v2:
 - Fix message error (Iago)

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

3 years agolavapipe: fix mipmapped resolves.
Dave Airlie [Thu, 22 Apr 2021 02:46:10 +0000 (12:46 +1000)]
lavapipe: fix mipmapped resolves.

I updated CTS and found
EQP-VK.renderpass.suballocation.multisample_resolve.b8g8r8a8_unorm.samples_4_resolve_level_*
was failing.

Fixes: b38879f8c5f5 ("vallium: initial import of the vulkan frontend")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10400>

3 years agomicrosoft/compiler: For Vulkan environment, don't create resource handles upfront
Jesse Natalie [Tue, 13 Apr 2021 20:05:13 +0000 (13:05 -0700)]
microsoft/compiler: For Vulkan environment, don't create resource handles upfront

Creating resource handles upfront works well while we have fixed-size resource
counts, but once we start talking about bindless, having arrays or even sets
of handles becomes prohibitive. It also precludes dynamic indexing for textures.

Instead, rely on the load_vulkan_descriptor instruction for UBO/SSBO, and undo
nir_lower_samplers so we continue to have deref chains for image/sampler accesses.
Then, emit handles at the end of a deref chain - the chain should only have
array offsets, so once we get to a type that's not an array anymore, we can
emit the handle.

Reviewed-by: Enrico Galli <enrico.galli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10288>

3 years agomicrosoft/compiler: Remove assert-only resource size or usage tracking
Jesse Natalie [Tue, 13 Apr 2021 18:20:50 +0000 (11:20 -0700)]
microsoft/compiler: Remove assert-only resource size or usage tracking

Reviewed-by: Enrico Galli <enrico.galli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10288>

3 years agomicrosoft/compiler: Remove hardcoded limits on numbers of resource arrays
Jesse Natalie [Tue, 13 Apr 2021 18:10:07 +0000 (11:10 -0700)]
microsoft/compiler: Remove hardcoded limits on numbers of resource arrays

While GL and CL might have limits here, Vulkan doesn't, and can declare
tons of individual variables.

Reviewed-by: Enrico Galli <enrico.galli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10288>

3 years agonir/lower_fragcolor: Handle fp16 outputs
Alyssa Rosenzweig [Wed, 21 Apr 2021 18:53:36 +0000 (14:53 -0400)]
nir/lower_fragcolor: Handle fp16 outputs

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10391>

3 years agonir/lower_fragcolor: Use shader_instructions_pass
Alyssa Rosenzweig [Wed, 21 Apr 2021 18:02:49 +0000 (14:02 -0400)]
nir/lower_fragcolor: Use shader_instructions_pass

While I was in the area.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10391>

3 years agospirv: fixup pointer_to/from_ssa with acceleration structures
Lionel Landwerlin [Tue, 20 Apr 2021 18:46:53 +0000 (21:46 +0300)]
spirv: fixup pointer_to/from_ssa with acceleration structures

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: ed907e5d84cba4 ("spirv: Add support for OpTypeAccelerationStructureKHR")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10357>

3 years agovenus: force a roundtrip after vn_renderer_bo_create_dmabuf
Yiwei Zhang [Sun, 18 Apr 2021 21:07:35 +0000 (21:07 +0000)]
venus: force a roundtrip after vn_renderer_bo_create_dmabuf

This is to ensure the kernel operations and the later ring operations
are in the right order.

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

3 years agovenus: close the import memory fd on success
Yiwei Zhang [Sat, 17 Apr 2021 07:00:06 +0000 (07:00 +0000)]
venus: close the import memory fd on success

VkImportMemoryFdInfoKHR takes fd ownership on a successful import.
Internally, vn_renderer_bo_create_dmabuf doesn't rely on the fd to
extend the life cycle of the bo or the host resource, and it won't
close the fd. Thus, we shall close the fd when the import succeeds.

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

3 years agopan/mdg: fix midgard writemask encoding for stores
Italo Nicola [Wed, 7 Apr 2021 00:05:35 +0000 (00:05 +0000)]
pan/mdg: fix midgard writemask encoding for stores

This commits fixes a regression caused by commit
616394cf31cecc0165857dd032a316da5b0a2440.

Fixes dEQP-GLES31.functional.compute.shared_var.atomic.min.*,
dEQP-GLES31.functional.ssbo.atomic.min.*,
dEQP-GLES31.functional.compute.shared_var.atomic.max.* and
dEQP-GLES31.functional.ssbo.atomic.max.*.

Midgard's non-image and non-varying store operations have a unique
behavior for the load/store writemask, with each bit being responsible
for 1/4th of the size of the total write operation. This means that we
have to pack the writemask differently since we stopped using st_u128
for everything.

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

3 years agoradv: only set robust_modes if robustBufferAccess2 is enabled
Rhys Perry [Mon, 9 Nov 2020 12:57:31 +0000 (12:57 +0000)]
radv: only set robust_modes if robustBufferAccess2 is enabled

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10384>

3 years agoradv: improve vectorization callback for small bit sizes
Rhys Perry [Fri, 23 Oct 2020 14:24:15 +0000 (15:24 +0100)]
radv: improve vectorization callback for small bit sizes

More accurately reflect the hardware's capabilities for byte and short
aligned VMEM operations.

fossil-db (GFX10.3):
Totals from 65 (0.05% of 139391) affected shaders:
SGPRs: 4296 -> 4200 (-2.23%)
CodeSize: 1000984 -> 1000368 (-0.06%); split: -0.13%, +0.07%
Instrs: 177504 -> 177380 (-0.07%); split: -0.17%, +0.10%
Cycles: 36820596 -> 36812792 (-0.02%); split: -0.15%, +0.13%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10384>

3 years agonir/opt_load_store_vectorize: loop internally
Rhys Perry [Tue, 29 Sep 2020 16:00:45 +0000 (17:00 +0100)]
nir/opt_load_store_vectorize: loop internally

To vectorize to vec8/16 or vec4 (without vec3), we can't incrementally add
components to a load/store. This patch loops vectorization so that two new
vec2/4/8 operations can be combined into a larger operation.

fossil-db (GFX10.3):
Totals from 22 (0.02% of 139391) affected shaders:
SpillVGPRs: 1749 -> 1771 (+1.26%)
CodeSize: 901212 -> 892532 (-0.96%); split: -1.19%, +0.22%
Scratch: 178176 -> 184320 (+3.45%)
Instrs: 159358 -> 158027 (-0.84%); split: -0.99%, +0.16%
Cycles: 37046772 -> 36738544 (-0.83%); split: -1.00%, +0.17%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10384>

3 years agonir/opt_load_store_vectorize: ignore load_vulkan_descriptor
Rhys Perry [Wed, 21 Oct 2020 15:26:02 +0000 (16:26 +0100)]
nir/opt_load_store_vectorize: ignore load_vulkan_descriptor

These mess with alignment calculation.

No fossil-db changes.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10384>

3 years agonir/opt_load_store_vectorize: improve handling of swizzles
Rhys Perry [Wed, 23 Sep 2020 15:17:12 +0000 (16:17 +0100)]
nir/opt_load_store_vectorize: improve handling of swizzles

Previously (for simplicity), it could have skipped vectorization if
swizzles were involved.

fossil-db (GFX10.3):
Totals from 498 (0.36% of 139391) affected shaders:
SGPRs: 25328 -> 26608 (+5.05%); split: -1.36%, +6.41%
VGPRs: 9988 -> 9996 (+0.08%)
SpillSGPRs: 40 -> 65 (+62.50%)
CodeSize: 1410188 -> 1385584 (-1.74%); split: -1.76%, +0.02%
Instrs: 257149 -> 250579 (-2.55%); split: -2.57%, +0.01%
Cycles: 1096892 -> 1070600 (-2.40%); split: -2.41%, +0.01%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10384>

3 years agonir/load_store_vectorize: assume CAN_REORDER ops don't alias with stores
Rhys Perry [Wed, 21 Oct 2020 15:43:16 +0000 (16:43 +0100)]
nir/load_store_vectorize: assume CAN_REORDER ops don't alias with stores

fossil-db (GFX10.3):
Totals from 20 (0.01% of 139391) affected shaders:
SGPRs: 688 -> 712 (+3.49%); split: -1.16%, +4.65%
CodeSize: 35488 -> 34424 (-3.00%); split: -3.04%, +0.05%
Instrs: 6405 -> 6259 (-2.28%); split: -2.44%, +0.16%
Cycles: 51768 -> 51268 (-0.97%); split: -1.21%, +0.24%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10384>

3 years agomesa: Replace _mesa_pack_ubyte_rgba_row() with pack_ubyte_rgba_8unorm().
Eric Anholt [Mon, 19 Apr 2021 22:17:58 +0000 (15:17 -0700)]
mesa: Replace _mesa_pack_ubyte_rgba_row() with pack_ubyte_rgba_8unorm().

The major thing that the codegen had was support for expanding integers
from byte-per-channel to the target format's channel size.  However, the
format_utils.c caller never did that for integers, and swrast doesn't have
support for integers, so that appears to be dead code.  With this done,
format_pack.py goes away entirely.

I slightly changed the prototype of _mesa_pack_ubyte_rgba_row() to match
up with the new function, which involved (mostly) dropping some manual
casts from the callers to make their data match the old prototype.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10336>

3 years agomesa: Remove dead _mesa_pack_ubyte_rgba_rect().
Eric Anholt [Mon, 19 Apr 2021 21:57:20 +0000 (14:57 -0700)]
mesa: Remove dead _mesa_pack_ubyte_rgba_rect().

Unused since 8ec6534b2665 ("mesa: Use _mesa_format_convert to implement
texstore_rgba.") in 2014

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10336>

3 years agomesa: Move per-pixel Z pack functions to swrast.
Eric Anholt [Mon, 19 Apr 2021 21:49:08 +0000 (14:49 -0700)]
mesa: Move per-pixel Z pack functions to swrast.

Only swrast uses them, and this makes it clearer why we only need partial
format support for them, avoids linker work deleting them for gallium
drivers, and means they will automatically go away when we get to finally
delete swrast.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10336>

3 years agomsea: Move z24s8-to-z24s8 packing fastpath to swrast.
Eric Anholt [Mon, 19 Apr 2021 21:53:06 +0000 (14:53 -0700)]
msea: Move z24s8-to-z24s8 packing fastpath to swrast.

It was only used here, and this made it clear (see
draw_depth_stencil_pixels()) that the z32f_s8 case was unused and could be
dropped.  Also, it means this code will nicely go away when swrast is
deleted.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
X

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

3 years agomesa: Remove dead _mesa_get_pack_float_z_func().
Eric Anholt [Mon, 19 Apr 2021 21:32:55 +0000 (14:32 -0700)]
mesa: Remove dead _mesa_get_pack_float_z_func().

Unused since its introduction 10 years ago.

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

3 years agomesa: Deduplicate _mesa_pack_uint_z_row().
Eric Anholt [Fri, 16 Apr 2021 19:31:53 +0000 (12:31 -0700)]
mesa: Deduplicate _mesa_pack_uint_z_row().

util_format_pack_z_32unorm() does the same thing but supports more
formats.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10336>

3 years agomesa: Deduplicate _mesa_pack_float_z_row().
Eric Anholt [Fri, 16 Apr 2021 19:29:59 +0000 (12:29 -0700)]
mesa: Deduplicate _mesa_pack_float_z_row().

util_format_pack_z_float() does the same thing but supports more formats.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10336>

3 years agomesa: Deduplicate _mesa_pack_ubyte_stencil_row()
Eric Anholt [Fri, 16 Apr 2021 19:25:14 +0000 (12:25 -0700)]
mesa: Deduplicate _mesa_pack_ubyte_stencil_row()

util_format_pack_s_8uint() has the same behavior of replacing the s
values but supports more formats.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10336>

3 years agoutil: Fix big-endian handling of z/s formats.
Eric Anholt [Mon, 19 Apr 2021 22:58:06 +0000 (15:58 -0700)]
util: Fix big-endian handling of z/s formats.

channel datatypes in Mesa are the host's endianness.  For example,
PIPE_FORMAT_R32_UINT doesn't do a bswap in and out in u_format_table.c's
pack/unpack functions.  So, z32_unorm shouldn't be byte swapping either,
and neither should z24s8 which is also a packed format, and once you've
got those it becomes clear that all of the swaps in this file were
mistaken.

Things would mostly work out because it's unusual to read/write Z/S data
through the GL API, and even for drivers like softpipe as long as the pack
and unpack both swap it could work anyway.  However, the bug would be
visible in glReadPixels() with the matching datatype which would hit the
memcpy fastpath without doing another swap.

Caught by a mesa/main unit test on transitioning to using these
pack/unpack functions.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10336>

3 years agonir/lower_fragcolor: set outputs_written for fragdata members
Mike Blumenkrantz [Wed, 7 Apr 2021 18:02:06 +0000 (14:02 -0400)]
nir/lower_fragcolor: set outputs_written for fragdata members

normal gather_info stuff

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

3 years agodocs: update calendar and link releases notes for 21.0.3
Dylan Baker [Wed, 21 Apr 2021 18:26:44 +0000 (11:26 -0700)]
docs: update calendar and link releases notes for 21.0.3

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

3 years agodocs: update sha256 sum for mesa 21.0.3
Dylan Baker [Wed, 21 Apr 2021 18:24:36 +0000 (11:24 -0700)]
docs: update sha256 sum for mesa 21.0.3

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

3 years agodocs: add release notes for 21.0.3
Dylan Baker [Wed, 21 Apr 2021 16:54:09 +0000 (09:54 -0700)]
docs: add release notes for 21.0.3

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

3 years agodocs: write basic meta-documentation
Erik Faye-Lund [Tue, 30 Mar 2021 10:35:42 +0000 (12:35 +0200)]
docs: write basic meta-documentation

We were previously completely lacking documentation on how to write
documentation. This adds some very basic docs for that.

Maybe at some point this could deserve it's own article, but for now
this seems enough.

This also documents the group-consensus on preferring US English that
was reached on the mesa-dev mailing list[1].

[1]: https://lists.freedesktop.org/archives/mesa-dev/2021-March/225023.html

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

3 years agozink: Learn about VK_KHR_swapchain
Adam Jackson [Fri, 9 Apr 2021 20:41:41 +0000 (16:41 -0400)]
zink: Learn about VK_KHR_swapchain

We're gonna want it eventually.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10382>

3 years agoRevert "ci/radeonsi: Add expected failures due to #4674 having slipped in"
Marek Olšák [Wed, 21 Apr 2021 11:33:28 +0000 (07:33 -0400)]
Revert "ci/radeonsi: Add expected failures due to #4674 having slipped in"

This reverts commit 106da39b19ba1cc243ef3aff934a1b5e8d6aa7f6.

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

3 years agoRevert "st/pbo: use cso_set_vertex_buffers_and_elements() for st_pbo_draw"
Marek Olšák [Tue, 20 Apr 2021 09:20:08 +0000 (05:20 -0400)]
Revert "st/pbo: use cso_set_vertex_buffers_and_elements() for st_pbo_draw"

cso_set_vertex_buffers_and_elements shouldn't be used between cso_save
and cso_restore because it can switch for cso_context to u_vbuf and vice
versa. Also, ẗhe preferred order of calls for future VB+draw merging would
be set_vertex_elements followed by set_vertex_buffers.

This reverts commit 33e117ed7f3c48d3dbeda9a28603a121eac7a860.

Fixes: 33e117ed7f3c48d3dbeda9a28603a121eac7a860
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4674

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10342>

3 years agointel: Fix GEN_GEN macro checks
Anuj Phogat [Tue, 20 Apr 2021 23:06:13 +0000 (16:06 -0700)]
intel: Fix GEN_GEN macro checks

Fixes: 9da8a55b08f - intel: Rename GEN_GEN macro to GFX_VER
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-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/10365>

3 years agofreedreno/regs: add 5nm DSI PHY/PLL regs
Robert Foss [Wed, 21 Apr 2021 09:00:54 +0000 (11:00 +0200)]
freedreno/regs: add 5nm DSI PHY/PLL regs

This is for the kernel driver.

Signed-off-by: Robert Foss <robert.foss@linaro.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10368>

3 years agopanfrost: Fix ZS reloading on Bifrost v6
Boris Brezillon [Thu, 15 Apr 2021 08:10:16 +0000 (10:10 +0200)]
panfrost: Fix ZS reloading on Bifrost v6

EARLY_ZS_ALWAYS was introduced in Bifrost v7. Use ALWAYS (or INTERSECT
depending on the situation) on v6.

Fixes: 8ba2f9f69858 ("panfrost: Create a blitter library to replace the existing preload helpers")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Tested-by: Icecream95 <ixn@keemail.me>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10250>

3 years agogallium: when tracing is enabled for threaded drivers, trace the driver thread
Mike Blumenkrantz [Mon, 12 Apr 2021 16:55:33 +0000 (12:55 -0400)]
gallium: when tracing is enabled for threaded drivers, trace the driver thread

generally speaking, if I'm tracing an app, I want to see what's happening to
my driver, not what's happening to tc, as tc does rewriting of command streams
which can affect the operation of the driver

use GALLIUM_TRACE_TC for previous behavior

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

3 years agozink: add clear-on-flush mechanic deeper into flush codepath
Mike Blumenkrantz [Tue, 20 Apr 2021 19:08:17 +0000 (15:08 -0400)]
zink: add clear-on-flush mechanic deeper into flush codepath

we should probably trigger this any time a flush occurs just to avoid
doing too much (unexpected) cmdstream rewriting

both calls must be kept, however, as the one in the base flush hook will change
the behavior of flushing if no other work is queued

Fixes: 104603fa763 ("zink: create separate linear tiling image for scanout")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10358>

3 years agozink: directly set batch->state->flush_res from flush_resource hook
Mike Blumenkrantz [Tue, 20 Apr 2021 19:07:26 +0000 (15:07 -0400)]
zink: directly set batch->state->flush_res from flush_resource hook

there's no need to have an intermediate pointer here since that only
complicates keeping scanout synchronized

this also eliminates the pointer on the context since it isn't used anymore

Fixes: 104603fa763 ("zink: create separate linear tiling image for scanout")

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