platform/upstream/mesa.git
3 years agoaco: use Builder::copy more
Rhys Perry [Thu, 15 Oct 2020 14:09:20 +0000 (15:09 +0100)]
aco: use Builder::copy more

fossil-db (Navi):
Totals from 6973 (5.07% of 137413) affected shaders:
SGPRs: 381768 -> 381776 (+0.00%)
VGPRs: 306092 -> 306096 (+0.00%); split: -0.00%, +0.00%
CodeSize: 24440844 -> 24421196 (-0.08%); split: -0.09%, +0.01%
MaxWaves: 86581 -> 86583 (+0.00%)
Instrs: 4682161 -> 4679578 (-0.06%); split: -0.06%, +0.00%
Cycles: 68793116 -> 68261648 (-0.77%); split: -0.83%, +0.05%

fossil-db (Polaris):
Totals from 8154 (5.87% of 138881) affected shaders:
VGPRs: 338916 -> 338920 (+0.00%); split: -0.00%, +0.00%
CodeSize: 23540428 -> 23540488 (+0.00%); split: -0.00%, +0.00%
MaxWaves: 49090 -> 49091 (+0.00%)
Instrs: 4576085 -> 4576101 (+0.00%); split: -0.00%, +0.00%
Cycles: 51720704 -> 51720888 (+0.00%); split: -0.00%, +0.00%

Most of the Navi cycle/instruction changes are from 8/16-bit parallel-rdp
shaders. They appear to be improved because the p_create_vector from
lower_subdword_phis() was blocking constant propagation.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7216>

3 years agoaco: always use p_parallelcopy for pre-RA copies
Rhys Perry [Wed, 14 Oct 2020 12:50:24 +0000 (13:50 +0100)]
aco: always use p_parallelcopy for pre-RA copies

Most fossil-db changes are because literals are applied earlier
(in label_instruction), so use counts are more accurate and more literals
are applied.

fossil-db (Navi):
Totals from 79551 (57.89% of 137413) affected shaders:
SGPRs: 4549610 -> 4542802 (-0.15%); split: -0.19%, +0.04%
VGPRs: 3326764 -> 3324172 (-0.08%); split: -0.10%, +0.03%
SpillSGPRs: 38886 -> 34562 (-11.12%); split: -11.14%, +0.02%
CodeSize: 240143456 -> 240001008 (-0.06%); split: -0.11%, +0.05%
MaxWaves: 1078919 -> 1079281 (+0.03%); split: +0.04%, -0.01%
Instrs: 46627073 -> 46528490 (-0.21%); split: -0.22%, +0.01%

fossil-db (Polaris):
Totals from 98463 (70.90% of 138881) affected shaders:
SGPRs: 5164689 -> 5164353 (-0.01%); split: -0.02%, +0.01%
VGPRs: 3920936 -> 3921856 (+0.02%); split: -0.00%, +0.03%
SpillSGPRs: 56298 -> 52259 (-7.17%); split: -7.22%, +0.04%
CodeSize: 258680092 -> 258692712 (+0.00%); split: -0.02%, +0.03%
MaxWaves: 620863 -> 620823 (-0.01%); split: +0.00%, -0.01%
Instrs: 50776289 -> 50757577 (-0.04%); split: -0.04%, +0.00%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7216>

3 years agoaco: allow literals on sub-dword p_parallelcopy
Rhys Perry [Thu, 15 Oct 2020 21:09:45 +0000 (22:09 +0100)]
aco: allow literals on sub-dword p_parallelcopy

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7216>

3 years agoaco: don't use bld.copy() in handle_operands()
Rhys Perry [Thu, 15 Oct 2020 18:39:37 +0000 (19:39 +0100)]
aco: don't use bld.copy() in handle_operands()

No fossil-db changes.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7216>

3 years agoaco: expand vectors passed as copy operands
Rhys Perry [Thu, 15 Oct 2020 13:49:34 +0000 (14:49 +0100)]
aco: expand vectors passed as copy operands

Most copies which hit this case use p_create_vector, but in the future
p_parallelcopy will be used instead.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7216>

3 years agoaco: copy-propgate through p_create_vector during value numbering
Rhys Perry [Wed, 14 Oct 2020 14:35:20 +0000 (15:35 +0100)]
aco: copy-propgate through p_create_vector during value numbering

fossil-db (Navi):
Totals from 182 (0.13% of 137413) affected shaders:
SGPRs: 9304 -> 9312 (+0.09%)
VGPRs: 7636 -> 7620 (-0.21%); split: -0.26%, +0.05%
CodeSize: 733516 -> 733092 (-0.06%); split: -0.07%, +0.01%
MaxWaves: 2478 -> 2479 (+0.04%)
Instrs: 139664 -> 139561 (-0.07%); split: -0.09%, +0.02%
Cycles: 3215104 -> 3214080 (-0.03%); split: -0.04%, +0.01%

fossil-db (Polaris):
Totals from 161 (0.12% of 138881) affected shaders:
VGPRs: 5608 -> 5596 (-0.21%); split: -0.29%, +0.07%
CodeSize: 605336 -> 605120 (-0.04%); split: -0.05%, +0.02%
Instrs: 117957 -> 117902 (-0.05%); split: -0.07%, +0.02%
Cycles: 3105008 -> 3103876 (-0.04%); split: -0.04%, +0.00%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Acked-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7216>

3 years agoaco: skip value numbering of copies
Rhys Perry [Mon, 26 Oct 2020 19:22:14 +0000 (19:22 +0000)]
aco: skip value numbering of copies

Instead, copy-propagate through and remove them.

This improves value numbering in this situation:
a = ...
b = copy a
c = copy a
use(b)
use(c)

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

3 years agoaco: don't do divergent break+discard
Rhys Perry [Mon, 19 Oct 2020 10:03:34 +0000 (11:03 +0100)]
aco: don't do divergent break+discard

If the shader does:
loop {
   if (divergent)
      discard
   else
      a()
   b()
}
then a()'s block will dominate b()'s block in the logical CFG, but not the
linear CFG. This will cause value numbering to try to combine SLAU from
a() and b().

This didn't happen with break/continue because sanitize_if() would move
a() out of the branch. Using sanitize_if() to fix this doesn't look easy,
because discards are not control flow instructions in NIR.

No fossil-db changes.

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

3 years agoaco: update phi_map in add_subdword_operand()
Rhys Perry [Tue, 27 Oct 2020 10:59:35 +0000 (10:59 +0000)]
aco: update phi_map in add_subdword_operand()

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: 56345b8c610 ("aco: allow reading/writing upper halves/bytes when possible")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7216>

3 years agoaco: Clean up some C++ usages
James Park [Fri, 23 Oct 2020 03:40:04 +0000 (20:40 -0700)]
aco: Clean up some C++ usages

Iterate over maps by reference to avoid copies.

Replace find/insert with insert to avoid double search.

Use range-based for loop, avoiding copies by reference. Delete comment.

Erase by iterator instead of key to avoid repeat search.

Iterators unneeded to modify unwaited_instrs. Use range-based for loop.

Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7285>

3 years agoradv: enable VK_AMD_mixed_attachment_samples on GFX6-GFX7
Samuel Pitoiset [Wed, 6 May 2020 09:43:24 +0000 (11:43 +0200)]
radv: enable VK_AMD_mixed_attachment_samples on GFX6-GFX7

Now that dEQP-VK.pipeline.multisample.mixed_attachment_samples.* pass,
it should be safe to also enable this extension on these old chips.

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

3 years agoradv: flush CB before and after FMASK_DECOMPRESS or DCC_DECOMPRESS
Samuel Pitoiset [Wed, 6 May 2020 09:42:43 +0000 (11:42 +0200)]
radv: flush CB before and after FMASK_DECOMPRESS or DCC_DECOMPRESS

According to RadeonSI and AMDVLK, it seems required to flush CB
before and after FMASK_DECOMPRESS or DCC_DECOMPRESS.

This shouldn't much affect performance because the driver already
flushes CB after these operations (including FCE too).

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

3 years agodocs: add link to extension spec
Erik Faye-Lund [Mon, 26 Oct 2020 11:27:41 +0000 (12:27 +0100)]
docs: add link to extension spec

We already do this for all the other VK extensions, so we might as well
do this for VK_EXT_vertex_attribute_divisor as well.

Fixes: 2ff97847d19 ("docs: document zink's gl > 3.0 requirements")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7312>

3 years agoCI: Only run OpenCL tests when we need to
Daniel Stone [Tue, 27 Oct 2020 07:42:15 +0000 (07:42 +0000)]
CI: Only run OpenCL tests when we need to

Like the other drivers, set up rules so we don't run piglit-cl unless we
need to.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3695
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7330>

3 years agoradv: do not perform a FMASK expand for non-writeable MSAA images
Samuel Pitoiset [Thu, 22 Oct 2020 12:54:03 +0000 (14:54 +0200)]
radv: do not perform a FMASK expand for non-writeable MSAA images

It should only be required for writeable MSAA images.

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

3 years agoaco: fix GFX8 16-bit packing
Daniel Schürmann [Tue, 27 Oct 2020 10:35:27 +0000 (11:35 +0100)]
aco: fix GFX8 16-bit packing

def.physReg() was uninitialized.

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Fixes: d96f387e7ac448b450091b900ab089eea3eb7b86 ('aco: improve code sequences for 16bit packing')
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7334>

3 years agov3dv: grow meta descriptor pool dynamically
Iago Toral Quiroga [Mon, 26 Oct 2020 09:39:29 +0000 (10:39 +0100)]
v3dv: grow meta descriptor pool dynamically

Our blit shader path allocates a descriptor pool to create
combined image sampler descriptors for blit source images. So
far, we had sized this pool statically and the driver would
fail if we ever need to allocate more descriptors than that.

With this change, we switch to using a dynamic allocation
mechanism instead where we allocate as many pools as we need to
meet descriptor set allocation requirements for the command buffer.

Also, every time a new pool needs to be created, we double its
size (up to a limit), so we can start small and avoid wasting
memory for command buffers that only have a small number of blits,
while trying to keep allocation overhead low for command buffers
that record a lot of blits.

v2: use existing framework for automatic destruction of private
    driver objects to free allocated pools.

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

3 years agoci: Run git_archive job if all_paths matches
Michel Dänzer [Mon, 26 Oct 2020 17:05:49 +0000 (18:05 +0100)]
ci: Run git_archive job if all_paths matches

The lack of this could break post-merge pipelines:
https://gitlab.freedesktop.org/mesa/mesa/-/pipelines/218636

(I missed this in
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7278)

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

3 years agopan/mdg: fix LOCAL_STORAGE wls_instances packing
Italo Nicola [Mon, 26 Oct 2020 13:46:52 +0000 (13:46 +0000)]
pan/mdg: fix LOCAL_STORAGE wls_instances packing

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

3 years agov3dv: enable the logicOp feature
Iago Toral Quiroga [Mon, 26 Oct 2020 12:00:07 +0000 (13:00 +0100)]
v3dv: enable the logicOp feature

For us this is mostly handled in the compiler by a NIR lowering so
for the Vulkan driver we only need to make sure that we program our
shader key correctly from the pipeline state, which we were already
doing.

It doesn't look like CTS has any coverage for this yet so it has only
been smoke tested, but it seems to be working correctly, as expected.

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

3 years agoRevert "radeonsi: use staging buffer uploads for most VRAM buffers"
Marek Olšák [Sat, 17 Oct 2020 22:06:21 +0000 (18:06 -0400)]
Revert "radeonsi: use staging buffer uploads for most VRAM buffers"

This reverts commit fd6bbdcf59dc5b87fed31f8fc51a2b27eaedfbb2.

Fixes: fd6bbdcf59dc5b87fed31f8fc51a2b27eaedfbb2
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3611

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

3 years agoamd/addrlib: Initialize Gfx10Lib members in constructor.
Vinson Lee [Fri, 16 Oct 2020 00:25:50 +0000 (17:25 -0700)]
amd/addrlib: Initialize Gfx10Lib members in constructor.

Fix defects reported by Coverity Scan.

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

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7178>

3 years agofreedreno/gmem: Respect max-height limits too
Rob Clark [Mon, 19 Oct 2020 17:20:56 +0000 (10:20 -0700)]
freedreno/gmem: Respect max-height limits too

There is an upper bound on # of bits we have to encode bin height on
various gens, which we could exceed with larger GMEM sizes and low
byte/pixel formats.

The max-width limits are initialized based on corresponding bitfield
sizes.

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

3 years agofreedreno: Rework GMEM limit init
Rob Clark [Mon, 19 Oct 2020 16:29:19 +0000 (09:29 -0700)]
freedreno: Rework GMEM limit init

Split out into helper that can be re-used by gmemtool, to de-duplicate
the limits table.  And convert to switch instead of if-else ladder.
A little bit of duplication, but that will no longer be the case with
additional limits added in next patch.

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

3 years agopan/bi: Fix ms_idx type to catch missing ms_index source
Boris Brezillon [Mon, 26 Oct 2020 08:24:32 +0000 (09:24 +0100)]
pan/bi: Fix ms_idx type to catch missing ms_index source

nir_tex_instr_src_index() returns a negative result when the requested
source does not exist, but we cast that to an unsigned type thus losing
this information.

Fixes: b83c293674c1 ("pan/bi: Add basic support for txf_ms")
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/7314>

3 years agopan/bi: Add ult support
Boris Brezillon [Sun, 18 Oct 2020 20:19:15 +0000 (22:19 +0200)]
pan/bi: Add ult 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/7314>

3 years agopan/bi: Lower {i,u}{min,max} instructions
Boris Brezillon [Sun, 18 Oct 2020 19:52:25 +0000 (21:52 +0200)]
pan/bi: Lower {i,u}{min,max} instructions

There's no native integer min/min instruction on Bifrost, lower those
to a cmp+bcsel pair.

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

3 years agopan/bi: Add support for load_point_coord
Boris Brezillon [Sun, 18 Oct 2020 19:11:49 +0000 (21:11 +0200)]
pan/bi: Add support for load_point_coord

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

3 years agopan/bi: Add support for load_front_face
Boris Brezillon [Sun, 18 Oct 2020 16:06:29 +0000 (18:06 +0200)]
pan/bi: Add support for load_front_face

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

3 years agopanfrost: Preload primitive flags when gl_FrontFacing is accessed
Boris Brezillon [Sun, 18 Oct 2020 16:08:48 +0000 (18:08 +0200)]
panfrost: Preload primitive flags when gl_FrontFacing is accessed

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

3 years agoci: Add "check mr" job to needs: of build jobs
Michel Dänzer [Thu, 22 Oct 2020 15:58:35 +0000 (17:58 +0200)]
ci: Add "check mr" job to needs: of build jobs

So that if the former fails, build & test jobs won't run, wasting less
time & CI resources.

This requires slight tweaks to the rules: of the former job, to make
sure it always exists when the build jobs do.

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

3 years agoaco: remove isel_context::allocated
Rhys Perry [Thu, 8 Oct 2020 14:11:12 +0000 (15:11 +0100)]
aco: remove isel_context::allocated

Now that we have Program::temp_rc, we can replace it with the first
temporary id allocated for NIR's ssa defs.

No fossil-db changes on Navi.

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

3 years agovirgl: Always enable emulated BGRA and swizzling unless specifically told not to
Rohan Garg [Fri, 25 Sep 2020 15:25:34 +0000 (17:25 +0200)]
virgl: Always enable emulated BGRA and swizzling unless specifically told not to

The emulation is turned on by default only for GLES hosts when the
host does not support the BGRA/RGBA external/internal format
combination.

This can be turned off by setting VIRGL_DEBUG=noemubgra,nobgraswz
environment variable.

Signed-off-by: Rohan Garg <rohan.garg@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6847>

3 years agonir/lower_memcpy: Don't mask the store
Jason Ekstrand [Sun, 25 Oct 2020 11:28:52 +0000 (06:28 -0500)]
nir/lower_memcpy: Don't mask the store

For constant-size memcpys, we can do as much as a vec4 at a time.  We
were accidentally masking the store to only the .x component.

Fixes: a3177cca996145 "nir: Add a lowering pass to lower memcpy"
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7305>

3 years agofreedreno: Disallow tiled if SHARED and not QCOM_COMPRESSED
Rob Clark [Sun, 25 Oct 2020 21:13:38 +0000 (14:13 -0700)]
freedreno: Disallow tiled if SHARED and not QCOM_COMPRESSED

If the user is not aware of modifiers, and wants to allocate a shared
resource, we shouldn't leave them with tiled.

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

3 years agofreedreno: Update import/export traces
Rob Clark [Sun, 25 Oct 2020 20:07:23 +0000 (13:07 -0700)]
freedreno: Update import/export traces

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

3 years agost/va: fix build with old libva
Andrew Randrianasulu [Fri, 23 Oct 2020 07:52:58 +0000 (10:52 +0300)]
st/va: fix build with old libva

Closes: #3682
Fixes: 0eccd158

Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7297>

3 years agoglx: get rid of memory leak
Andrii Simiklit [Mon, 26 Oct 2020 09:32:57 +0000 (11:32 +0200)]
glx: get rid of memory leak

It fixes Coverity issue: `CID 1468356:  Resource leaks  (RESOURCE_LEAK)`

Fixes: e1964496 ("glx: initial plumbing to let users force-enable/disable extensions")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7310>

3 years agomapi: do not return thread-specific data for wrong thread
Erik Faye-Lund [Thu, 22 Oct 2020 17:06:44 +0000 (19:06 +0200)]
mapi: do not return thread-specific data for wrong thread

If the current thread asks for either the current context or the current
dispatch table for a thread that has not yet set any context current, we
currently risk returning the wrong data if there was only a single
thread that had called u_current_init() yet.

So let's first check if the only expected thread-id is the one getting
these, and return NULL and/or __glapi_noop_table instead if not.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7280>

3 years agomapi: do not call thread-unsafe dispatch getter
Erik Faye-Lund [Thu, 22 Oct 2020 16:21:07 +0000 (18:21 +0200)]
mapi: do not call thread-unsafe dispatch getter

When not using the USE_ELF_TLS code-path, this function is
thread-unsafe, because it returns u_current_table if set without
consulting the ThreadSafe variable in u_current.c.

There's a short period where this can cause problems, if a program uses
multiple threads, but only have made a single context current so far. If
the program issues OpenGL commands from the initialized thread while a
new thread is setting u_current_table to __glapi_noop_table, we will
return the wrong table here.

It doesn't seem right to have two versions of the code that does the
same anyway, so let's use the version that doesn't have this problem
instead.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7280>

3 years agomapi: remove unused function
Erik Faye-Lund [Thu, 22 Oct 2020 16:11:15 +0000 (18:11 +0200)]
mapi: remove unused function

This function is unused, and also unsafe. Let's just get rid of it.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7280>

3 years agoaco: use do_pack() for self-intersecting operations.
Daniel Schürmann [Fri, 16 Oct 2020 11:29:28 +0000 (13:29 +0200)]
aco: use do_pack() for self-intersecting operations.

This improves the code for GFX8+, but is slightly
worse for GFX6_7.

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7189>

3 years agoaco: improve code sequences for 16bit packing
Daniel Schürmann [Thu, 15 Oct 2020 17:47:12 +0000 (19:47 +0200)]
aco: improve code sequences for 16bit packing

This includes using alignbyte for GFX6 and GFX7,
and 32-bit instructions for GFX8.

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7189>

3 years agoaco: refactor GFX6_7 subdword copy lowering
Daniel Schürmann [Fri, 16 Oct 2020 13:12:28 +0000 (15:12 +0200)]
aco: refactor GFX6_7 subdword copy lowering

The new code uses alignbyte which leads
to shorter code and preserves the operand's
registers.

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7189>

3 years agoiris: add support for fence signal capability
Eleni Maria Stea [Thu, 26 Mar 2020 16:23:08 +0000 (17:23 +0100)]
iris: add support for fence signal capability

This enables GL_EXT_semaphore feature.

v2:
* reversed previous commit that was conditionally setting the signal
  fence capability if the syncobj was present
* reversed previous commit that was introducing a bool has_syncobj that
  is not necessary anymore

v3:
* changed the signal function to use fence->seqno due to recent changes
  to master

v4:
* changed the signal callback to use the new structs of the fences
  backend (iris_fine_fence)

v5:
* removed check for ctx == NULL in iris_fence_signal and await functions
  as at the time they are called we always have a context
* splitted a line to not exceed width

v6:
* put back the if(ctx) check in iris_fence_await, if this is an error
  the fix should be in a different MR

Signed-off-by: Eleni Maria Stea <estea@igalia.com>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7042>

3 years agoiris: handle PIPE_FD_TYPE_SYNCOBJ type
Eleni Maria Stea [Thu, 26 Mar 2020 16:19:21 +0000 (17:19 +0100)]
iris: handle PIPE_FD_TYPE_SYNCOBJ type

Add support for importing syncobj semaphore types from fd handles.

v2:
* Used a C99 initializer instead of memset for drm_syncobj_handle in
  iris_fence.c

Signed-off-by: Eleni Maria Stea <estea@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7042>

3 years agoac/nir: remove bindless image atomic format check
Rhys Perry [Wed, 21 Oct 2020 16:32:40 +0000 (17:32 +0100)]
ac/nir: remove bindless image atomic format check

PIPE_FORMAT_* is supposed to be used and a similar check will probably be
added to nir_validate soon anyway.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7275>

3 years agodocs: document zink's gl > 3.0 requirements
Erik Faye-Lund [Fri, 23 Oct 2020 07:00:43 +0000 (09:00 +0200)]
docs: document zink's gl > 3.0 requirements

The new versions of OpenGL exposed by Zink requires additional Vulkan
features, so let's document them.

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

3 years agodocs: do not document required minimum
Erik Faye-Lund [Fri, 23 Oct 2020 07:16:36 +0000 (09:16 +0200)]
docs: do not document required minimum

We already document that shaderClipDistance is required, and for that
feature to be supported maxClipDistances needs to be at least 8. So
there's no point in documenting the maxClipDistances-requirement.

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

3 years agozink: verify geometry shader feature
Erik Faye-Lund [Fri, 23 Oct 2020 07:35:51 +0000 (09:35 +0200)]
zink: verify geometry shader feature

We shouldn't try to use geometry shaders on implementations that don't
support them. So let's verify the feature before using it.

Fixes: 8028991f361 ("zink: enable gs pipe caps")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7287>

3 years agogallivm: lower flrp for all sizes.
Dave Airlie [Thu, 8 Oct 2020 05:54:15 +0000 (15:54 +1000)]
gallivm: lower flrp for all sizes.

This fixes:
builtin-float-mix-1.0.generated.cl

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

3 years agogallivm: get correct min/max behaviour for kernels.
Dave Airlie [Fri, 9 Oct 2020 00:27:00 +0000 (10:27 +1000)]
gallivm: get correct min/max behaviour for kernels.

NaN handling for CL is harsher than GLSL

Fixes piglit min/max CL tests

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

3 years agogallivm: add support for 8/16-bit mul_hi
Dave Airlie [Thu, 8 Oct 2020 21:13:45 +0000 (07:13 +1000)]
gallivm: add support for 8/16-bit mul_hi

This 32x32 code only needs small tweaks for this case.

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

3 years agogallivm: handle sub-32 bit masked stores.
Dave Airlie [Thu, 8 Oct 2020 04:32:33 +0000 (14:32 +1000)]
gallivm: handle sub-32 bit masked stores.

This is used for register stores < 32 bit size.

Fixes:
builtin-char-rotate-1.0.generated.cl

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

3 years agogallivm: add b2i8/b216 support
Dave Airlie [Thu, 8 Oct 2020 04:31:51 +0000 (14:31 +1000)]
gallivm: add b2i8/b216 support

This is part of the fix for
builtin-*-rotate-1.0.generated.cl

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

3 years agogallivm: add 16-bit split/merge support.
Dave Airlie [Thu, 8 Oct 2020 03:44:47 +0000 (13:44 +1000)]
gallivm: add 16-bit split/merge support.

Fixes piglit load-hi16.cl, load-lo16.cl

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

3 years agogallivm: fix 64->16 f2f16
Dave Airlie [Thu, 8 Oct 2020 03:17:56 +0000 (13:17 +1000)]
gallivm: fix 64->16 f2f16

llvm appears to callout to a library to do 64-bit->16-bit
fp trunc, just trunc to 32-bit first to avoid it.

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

3 years agollvmpipe: fix 8/16 bit global stores
Dave Airlie [Thu, 8 Oct 2020 02:47:06 +0000 (12:47 +1000)]
llvmpipe: fix 8/16 bit global stores

Fixes:
CL vstore_half-float-global*

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

3 years agoanv: report latest extension spec versions
Lionel Landwerlin [Wed, 14 Oct 2020 15:04:56 +0000 (18:04 +0300)]
anv: report latest extension spec versions

In many cases those revision happened every before the first public
release of the spec and we just forgot to update our numbers.

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

3 years agoandroid: panfrost: Move nir_undef_to_zero to util
Marijn Suijten [Fri, 23 Oct 2020 22:50:26 +0000 (00:50 +0200)]
android: panfrost: Move nir_undef_to_zero to util

    clang: error: no such file or directory: 'external/mesa3d/src/panfrost/midgard/nir_undef_to_zero.c'
    clang: error: no input files

Fixes: 86b2b4eb768 ("panfrost: Move nir_undef_to_zero to common util/")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Mauro Rossi <issor.oruam@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7298>

3 years agoutil/xmlconfig: Disable for Windows like Android
James Park [Fri, 7 Aug 2020 02:48:39 +0000 (19:48 -0700)]
util/xmlconfig: Disable for Windows like Android

The code does not compile on Windows, so just disable for now. There is
already a pattern to do this for Android.

Stop including expat dependency if building Windows.

Disable WITH_XMLCONFIG if _WIN32 is defined.

Tuck _WIN32 incompatible includes inside WITH_XMLCONFIG.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7249>

3 years agogallivm: add load/store scratch support.
Dave Airlie [Thu, 8 Oct 2020 01:09:11 +0000 (11:09 +1000)]
gallivm: add load/store scratch support.

Scratch space is per-thread space, so allocate the scratch size
* vector width, and add a per-thread base offset to each
load/store.

This is needed for OpenCL private memory space

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

3 years agofrontends/va: Initialize drm modifier on import.
Bas Nieuwenhuizen [Sat, 24 Oct 2020 14:04:29 +0000 (16:04 +0200)]
frontends/va: Initialize drm modifier on import.

On import we don't get a modifier so the modifier in the Gallium
handle should be set to DRM_FORMAT_MOD_INVALID instead of LINEAR.

Otherwise things like screen capture break if the driver actually
starts supporting modifiers.

Acked-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7302>

3 years agogallium: update abs_delta segementation parameter
SureshGuttula [Fri, 23 Oct 2020 10:25:02 +0000 (15:55 +0530)]
gallium: update abs_delta segementation parameter

This patch updates segmentation_abs_or_delta_update value based on
VP9 bitstream header info.

Netflix videos are showing corrupted output when codec is HW vp9
and segemantion enabled.This change will fix the corruption issue.

Signed-off-by: SureshGuttula <suresh.guttula@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7290>

3 years agofrontends/omx/enc: fix omx h264 encoding force-keyframe-period issue.
Ruijing Dong [Thu, 22 Oct 2020 18:15:28 +0000 (14:15 -0400)]
frontends/omx/enc: fix omx h264 encoding force-keyframe-period issue.

poc was not set to 0 in IDR frames except the first one.

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

3 years agomesa: Remove the key parameter from the _mesa_HashDeleteAll callback
Ian Romanick [Thu, 15 Oct 2020 17:57:58 +0000 (10:57 -0700)]
mesa: Remove the key parameter from the _mesa_HashDeleteAll callback

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7171>

3 years agomesa: Remove the key parameter from the _mesa_HashWalk callback
Ian Romanick [Mon, 12 Oct 2020 23:52:09 +0000 (16:52 -0700)]
mesa: Remove the key parameter from the _mesa_HashWalk callback

_mesa_HashWalkLocked too.  After the previous couple commits, there are
no users.  This eliminates a lot of unused parameter warnings.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7171>

3 years agoi965: Get the gl_perf_query_object Id from the object
Ian Romanick [Mon, 12 Oct 2020 23:46:24 +0000 (16:46 -0700)]
i965: Get the gl_perf_query_object Id from the object

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7171>

3 years agomesa: Store the atlas Id in the gl_bitmap_atlas structure
Ian Romanick [Mon, 12 Oct 2020 23:45:45 +0000 (16:45 -0700)]
mesa: Store the atlas Id in the gl_bitmap_atlas structure

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7171>

3 years agomesa: Open-code hash walk in _mesa_HashPrint
Ian Romanick [Mon, 12 Oct 2020 23:44:18 +0000 (16:44 -0700)]
mesa: Open-code hash walk in _mesa_HashPrint

Previously the deleted key data would get printed at the beginning and
the end.  I don't think that was intentional, so I changed it.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7171>

3 years agoamd: print NUM_PKRS with AMD_DEBUG=info on gfx10.3
Marek Olšák [Wed, 21 Oct 2020 21:48:54 +0000 (17:48 -0400)]
amd: print NUM_PKRS with AMD_DEBUG=info on gfx10.3

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7264>

3 years agoamd: replace 0x028848 with the register definition
Marek Olšák [Tue, 20 Oct 2020 21:18:16 +0000 (17:18 -0400)]
amd: replace 0x028848 with the register definition

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7264>

3 years agoamd: update gfx10-rsrc.json for gfx10.3
Marek Olšák [Wed, 21 Oct 2020 22:18:46 +0000 (18:18 -0400)]
amd: update gfx10-rsrc.json for gfx10.3

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7264>

3 years agoamd: correct typos in gfx10-rsrc.json
Marek Olšák [Wed, 21 Oct 2020 22:17:48 +0000 (18:17 -0400)]
amd: correct typos in gfx10-rsrc.json

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7264>

3 years agoamd: regenerate gfx103.json from kernel headers
Marek Olšák [Tue, 20 Oct 2020 21:17:18 +0000 (17:17 -0400)]
amd: regenerate gfx103.json from kernel headers

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7264>

3 years agoscons/windows: Support build with LLVM 11.
Vinson Lee [Tue, 20 Oct 2020 22:28:56 +0000 (15:28 -0700)]
scons/windows: Support build with LLVM 11.

Added LLVMFrontendOpenMP.
Removed LLVMX86Utils.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7242>

3 years agoscons: gallium/auxiliary: Unconditionally compile NIR regardless of LLVM
Marijn Suijten [Tue, 20 Oct 2020 22:26:46 +0000 (00:26 +0200)]
scons: gallium/auxiliary: Unconditionally compile NIR regardless of LLVM

NIR sources are not depending on LLVM (anymore?) as can be seen in the
equivalent unconditional inclusion of nir/ source files in meson.build.
Symbols in these files are necessary to compile softpipe:

    Linking build/linux-x86_64-debug/gallium/targets/libgl-xlib/libGL.so.1.5 ...
    /usr/bin/ld: build/linux-x86_64-debug/gallium/drivers/softpipe/libsoftpipe.a(sp_state_shader.os): in function `softpipe_create_shader_state':
    src/gallium/drivers/softpipe/sp_state_shader.c:146: undefined reference to `nir_to_tgsi'
    /usr/bin/ld: build/linux-x86_64-debug/gallium/drivers/softpipe/libsoftpipe.a(sp_state_shader.os): in function `softpipe_create_compute_state':
    src/gallium/drivers/softpipe/sp_state_shader.c:435: undefined reference to `nir_to_tgsi'

Fixes: fa483d8cd1b ("android: gallium/auxiliary: Deduplicate nir_to_tgsi.c inclusion")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3669

Tested-by: Vinson Lee <vlee@freedesktop.org>
Acked-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7250>

3 years agospirv: Fix OpCopyMemorySized
Jason Ekstrand [Fri, 23 Oct 2020 16:24:51 +0000 (11:24 -0500)]
spirv: Fix OpCopyMemorySized

I have no idea how we are passing CTS tests with that bug in there.  I
guess by luck?

Fixes: 8323c03bbfd45 "spirv: Add support for OpCopyMemorySized"
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7294>

3 years agofrontends/omx/h265: Check the pps set before the scaling data
Leo Liu [Tue, 20 Oct 2020 22:51:23 +0000 (18:51 -0400)]
frontends/omx/h265: Check the pps set before the scaling data

Certain clip has no scaling list data in the pps set

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

3 years agofrontends/omx/dec: Use the known codec profile when allocating buffers
Leo Liu [Tue, 20 Oct 2020 21:44:13 +0000 (17:44 -0400)]
frontends/omx/dec: Use the known codec profile when allocating buffers

We should use it since the profile has been known already,
otherwise it will get incorrect buffers in some cases.

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

3 years agopan/bi: Account for bool32 ld_ubo reads
Alyssa Rosenzweig [Thu, 22 Oct 2020 14:58:04 +0000 (10:58 -0400)]
pan/bi: Account for bool32 ld_ubo reads

Fixes crash in sway.

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

3 years agopanfrost: Don't advertise MSAA on Bifrost
Alyssa Rosenzweig [Thu, 22 Oct 2020 14:57:39 +0000 (10:57 -0400)]
panfrost: Don't advertise MSAA on Bifrost

Not yet supported and rather broken.

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

3 years agopanfrost: Drop PIPE_CAP_GLSL_FEATURE_LEVEL for Bifrost
Alyssa Rosenzweig [Thu, 22 Oct 2020 14:56:54 +0000 (10:56 -0400)]
panfrost: Drop PIPE_CAP_GLSL_FEATURE_LEVEL for Bifrost

We don't want derivative instructions sneaking in from desktop GL before
we support them.

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

3 years agopanfrost: Implement BGRA textures
Alyssa Rosenzweig [Wed, 21 Oct 2020 19:23:16 +0000 (15:23 -0400)]
panfrost: Implement BGRA textures

Stopgap before the full format rework.

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

3 years agopanfrost: Fix component order XML
Alyssa Rosenzweig [Wed, 21 Oct 2020 21:36:52 +0000 (17:36 -0400)]
panfrost: Fix component order XML

For v7. This should be complete and correct now.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fixes: 8389976b7c0 ("panfrost: XML-ify the blend descriptors")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7206>

3 years agopanfrost: Calculate thread count on Bifrost
Alyssa Rosenzweig [Thu, 15 Oct 2020 14:30:36 +0000 (10:30 -0400)]
panfrost: Calculate thread count on Bifrost

Since the register is missing in practice we need to apply the
per-architecture default.

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

3 years agopanfrost: Don't export queries
Alyssa Rosenzweig [Wed, 21 Oct 2020 21:20:27 +0000 (17:20 -0400)]
panfrost: Don't export queries

They should be cached onto the device anyway.

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

3 years agopanfrost: Record architecture major version
Alyssa Rosenzweig [Wed, 21 Oct 2020 21:17:41 +0000 (17:17 -0400)]
panfrost: Record architecture major version

This tends to be easier to work with than the raw GPU ID and needs some
special casing for Midgard vs Bifrost/Valhall.

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

3 years agopan/bi: Use nir_undef_to_zero
Alyssa Rosenzweig [Thu, 15 Oct 2020 12:47:40 +0000 (08:47 -0400)]
pan/bi: Use nir_undef_to_zero

We don't handle undefs explicitly in NIR->BIR which means if they aren't
optimized out they won't be RA'd to anything and then backend RA will
crash (as occurs in a glamor shader seen in MATE).

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

3 years agopanfrost: Move nir_undef_to_zero to common util/
Alyssa Rosenzweig [Thu, 15 Oct 2020 12:45:24 +0000 (08:45 -0400)]
panfrost: Move nir_undef_to_zero to common util/

Will use for Bifrost as well.

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

3 years agopan/bi: Pipe through tls_size
Alyssa Rosenzweig [Thu, 15 Oct 2020 00:48:08 +0000 (20:48 -0400)]
pan/bi: Pipe through tls_size

So we have stack memory allocated.

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

3 years agopan/bi: Implement spilling
Alyssa Rosenzweig [Thu, 15 Oct 2020 00:45:19 +0000 (20:45 -0400)]
pan/bi: Implement spilling

Now that all the helpers are in place, we can wire it up.

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

3 years agopan/bi: Pack LOAD/STORE
Alyssa Rosenzweig [Thu, 15 Oct 2020 00:44:35 +0000 (20:44 -0400)]
pan/bi: Pack LOAD/STORE

LOAD is the same as LOAD_UNIFORM (same instruction, I need to
deduplicate the IR), STORE is basically the same as LOAD.

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

3 years agopan/bi: Add bi_foreach_clause_in_block_safe helper
Alyssa Rosenzweig [Thu, 15 Oct 2020 00:38:33 +0000 (20:38 -0400)]
pan/bi: Add bi_foreach_clause_in_block_safe helper

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

3 years agopan/bi: Factor out singleton construction from scheduler
Alyssa Rosenzweig [Thu, 15 Oct 2020 00:38:13 +0000 (20:38 -0400)]
pan/bi: Factor out singleton construction from scheduler

We'll reuse the logic in spilling.

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

3 years agopan/bi: Implement bi_spill_register
Alyssa Rosenzweig [Thu, 15 Oct 2020 00:37:45 +0000 (20:37 -0400)]
pan/bi: Implement bi_spill_register

Given a node to spill, insert the appropriate loads and stores to spill
it.

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

3 years agopan/bi: Add helpers for working with singletons
Alyssa Rosenzweig [Thu, 15 Oct 2020 00:36:21 +0000 (20:36 -0400)]
pan/bi: Add helpers for working with singletons

Clauses with exactly one instruction (not canonical terminology to my
knowledge, but the notation is suggestive). Since these are isomorphic
to the instructions themselves, we want helpers to go between the forms.

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

3 years agopan/bi: Add bi_rewrite_index_src_single helper
Alyssa Rosenzweig [Thu, 15 Oct 2020 00:35:59 +0000 (20:35 -0400)]
pan/bi: Add bi_rewrite_index_src_single helper

Ported from Midgard.

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

3 years agopan/bi: Add bi_fill
Alyssa Rosenzweig [Wed, 14 Oct 2020 23:27:47 +0000 (19:27 -0400)]
pan/bi: Add bi_fill

Likewise generates LOAD from tls.

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

3 years agopan/bi: Add bi_spill helper
Alyssa Rosenzweig [Wed, 14 Oct 2020 23:26:58 +0000 (19:26 -0400)]
pan/bi: Add bi_spill helper

Generates STORE to TLS.

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