platform/upstream/mesa.git
3 years agoaco: fix MIMG_instruction::lwe comment
Rhys Perry [Thu, 19 Nov 2020 16:42:17 +0000 (16:42 +0000)]
aco: fix MIMG_instruction::lwe comment

The ISA docs were inconsistent about what this flag does, but that seems
fixed in the RDNA doc.

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

3 years agoaco: fix unreachable() for uniform 8/16-bit nir_op_mov from VGPR
Rhys Perry [Fri, 8 Jan 2021 11:44:33 +0000 (11:44 +0000)]
aco: fix unreachable() for uniform 8/16-bit nir_op_mov from VGPR

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: d20a752c0de ("aco: use Builder::copy more")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8380>

3 years agoci: Add *ignore_scheduled_pipelines to mesa/gallium rules templates
Michel Dänzer [Thu, 7 Jan 2021 09:38:26 +0000 (10:38 +0100)]
ci: Add *ignore_scheduled_pipelines to mesa/gallium rules templates

These are currently not used directly, but maybe this can prevent copy
and paste accidents.

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

3 years agoci: Rule out scheduled pipelines in .windows-build-rules
Michel Dänzer [Thu, 7 Jan 2021 09:30:58 +0000 (10:30 +0100)]
ci: Rule out scheduled pipelines in .windows-build-rules

The lack of this broke scheduled pipelines, because they attempted
to create a meson-windows-vs2019 job, which couldn't work (because the
windows_build_vs2019 job doesn't exist in scheduled pipelines).

Fixes: 84c8a35aa2ca "CI: Add Windows source dependency map"
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8360>

3 years agoutil: Disable memstream for Apple builds
James Park [Wed, 30 Dec 2020 13:23:10 +0000 (05:23 -0800)]
util: Disable memstream for Apple builds

Not all SDK versions support open_memstream. Maybe some other day.

Fixes: af8d488ea5e ("util,ac,aco,radv: Cross-platform memstream API")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8269>

3 years agoradv: fix performance regression by restoring TC-compat HTILE in GENERAL
Samuel Pitoiset [Wed, 6 Jan 2021 15:19:21 +0000 (16:19 +0100)]
radv: fix performance regression by restoring TC-compat HTILE in GENERAL

This fixes a performance regression for games (eg. Youngblood) that
declare all images as concurrent. This is likely buggy for compute
queues but this just restores the previous behaviour for now.

Fixes: f4f096805b0 ("radv: fix TC-compat HTILE images with DST_OPTIMAL on the compute queue")
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/8351>

3 years agoradv: fix enabling TC-compat HTILE in GENERAL for writes on GFX10+
Samuel Pitoiset [Wed, 6 Jan 2021 16:54:08 +0000 (17:54 +0100)]
radv: fix enabling TC-compat HTILE in GENERAL for writes on GFX10+

It wasn't expected to also enable inside render loops.

Fixes: 4bb92d9145f ("radv: enable TC-compat HTILE in GENERAL on GFX10+")
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/8351>

3 years agoradv: configure the texture descriptor for TC-compat CMASK on GFX10+
Samuel Pitoiset [Wed, 6 Jan 2021 08:12:43 +0000 (09:12 +0100)]
radv: configure the texture descriptor for TC-compat CMASK on GFX10+

This was missing, it can be enabled with RADV_PERFTEST=tccompatcmask.
Note that this feature is still experimental.

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

3 years agor300: Fix typos.
Vinson Lee [Sun, 3 Jan 2021 01:11:56 +0000 (17:11 -0800)]
r300: Fix typos.

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

3 years agogallium/ntt: lower uniforms to ubo
Erik Faye-Lund [Thu, 7 Jan 2021 15:54:18 +0000 (16:54 +0100)]
gallium/ntt: lower uniforms to ubo

NTT doesn't handle uniforms, and requires them to have been lowered to
UBOs. But for drivers that don't set
nir_shader_compiler_options::lower_uniforms_to_ubo to true, this won't
have happened yet. Neither Zink nor V3D sets this option, and in the
case of Zink this isn't trivial to change.

So let's lower uniforms to UBOs in this case in NTT instead.

Fixes: 03c60762f57 ("gallium/ntt: Fix load_ubo_vec4 buffer index setup.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4047
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8365>

3 years agoiris: Blit stencil according to aspect_mask
Nanley Chery [Mon, 4 Jan 2021 18:30:31 +0000 (10:30 -0800)]
iris: Blit stencil according to aspect_mask

With this change, stencil picks up the fix for 3D texture blits
introduced with commit 382451ff9d7b.

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

3 years agoiris: Use single-aspect formats more in iris_blit
Nanley Chery [Mon, 4 Jan 2021 19:40:52 +0000 (11:40 -0800)]
iris: Use single-aspect formats more in iris_blit

In order to handle blitting the stencil aspect of a depth-stencil
resource, use aspect-specific pipe formats in the aspect_mask loop.

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

3 years agoiris: Blit non-stencil according to aspect_mask
Nanley Chery [Mon, 4 Jan 2021 18:27:11 +0000 (10:27 -0800)]
iris: Blit non-stencil according to aspect_mask

When blitting just the stencil aspect, the source and destination
resources are prepared/setup twice. Move the unconditional resource
setup into the aspect_mask loop to avoid this.

In addition, use the aspect provided by the loop instead of the mask
provided by the info parameter.

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

3 years agoiris: Loop through an aspect mask in iris_blit
Nanley Chery [Mon, 4 Jan 2021 18:01:54 +0000 (10:01 -0800)]
iris: Loop through an aspect mask in iris_blit

Enables dropping the stencil-specific blit later on.

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

3 years agoiris: Increase use of pipe_resources in iris_blit
Nanley Chery [Mon, 4 Jan 2021 17:55:02 +0000 (09:55 -0800)]
iris: Increase use of pipe_resources in iris_blit

Allows the affected code to avoid being moved into a while loop later
on.

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

3 years agoiris: Use texture preparation helper in iris_blit
Nanley Chery [Mon, 4 Jan 2021 17:39:23 +0000 (09:39 -0800)]
iris: Use texture preparation helper in iris_blit

Use iris_resource_prepare_texture in iris_blit to avoid partial resolves
for sRGB <-> linear texture views. This affects a trace of L4D2.

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

3 years agoiris: Move depth-format assertion out of iris_blit
Nanley Chery [Mon, 14 Dec 2020 19:19:29 +0000 (11:19 -0800)]
iris: Move depth-format assertion out of iris_blit

Instead of having a depth-specific assertion in a generic portion of
iris_blit, move it into the depth-specific cases of
iris_resource_texture_aux_usage. Since iris_blit calls that function,
the test still occurs.

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

3 years agoiris: Don't prepare depth for stencil-aspect blits
Nanley Chery [Mon, 4 Jan 2021 17:25:34 +0000 (09:25 -0800)]
iris: Don't prepare depth for stencil-aspect blits

Before this change, iris_blit would prepare the depth buffer in a
depth-stencil resource even when only the stencil aspect was used for the
blit. Use the aspect mask to prepare the correct resource.

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

3 years agomesa: Don't make building tests conditional on building DRI drivers
Adam Jackson [Wed, 6 Jan 2021 18:15:20 +0000 (13:15 -0500)]
mesa: Don't make building tests conditional on building DRI drivers

These tests should work, and be built, even if you're only building
gallium drivers.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8353>

3 years agomesa: Fix array-format-to-format table on big-endian
Adam Jackson [Thu, 7 Jan 2021 20:47:08 +0000 (15:47 -0500)]
mesa: Fix array-format-to-format table on big-endian

The table constructor and the table lookup were doing different things
for big-endian. This fixes MesaFormatsTest.FormatFromFormatAndType and
MesaFormatsTest.FormatMatchesFormatAndType failing to round-trip for
GL_RGBA / GL_SHORT, which we're not currently running in CI for s390x,
but which a subsequent commit will enable.

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

3 years agotests: Fix memory leaks in DispatchSanity
Adam Jackson [Thu, 7 Jan 2021 18:36:11 +0000 (13:36 -0500)]
tests: Fix memory leaks in DispatchSanity

Needed to pass asan CI.

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

3 years agoradv/llvm,aco: always split typed vertex buffer loads on GFX6 and GFX10+
Samuel Pitoiset [Tue, 24 Nov 2020 13:56:55 +0000 (14:56 +0100)]
radv/llvm,aco: always split typed vertex buffer loads on GFX6 and GFX10+

To avoid any alignment issues that triggers memory violations and
eventually a GPU. This can happen if the stride (static or dynamic)
is unaligned and also if the VBO offset is aligned to scalar
(eg. stride is 8 and VBO offset is 2 for R16G16B16A16_SNORM).

The AMD Windows driver also always splits typed vertex fetches.

fossils-db (Sienna Cichlid):
Totals from 56508 (40.54% of 139391) affected shaders:
SGPRs: 2643545 -> 2664516 (+0.79%); split: -0.19%, +0.98%
VGPRs: 2007472 -> 1995408 (-0.60%); split: -0.74%, +0.13%
CodeSize: 70596372 -> 73913312 (+4.70%); split: -0.00%, +4.70%
MaxWaves: 772653 -> 774916 (+0.29%); split: +0.37%, -0.08%
Instrs: 14074162 -> 14567072 (+3.50%); split: -0.00%, +3.51%
Cycles: 69281276 -> 71253252 (+2.85%); split: -0.00%, +2.85%
VMEM: 22047039 -> 25554196 (+15.91%); split: +17.20%, -1.29%
SMEM: 4120370 -> 4360820 (+5.84%); split: +7.41%, -1.58%
VClause: 416913 -> 438361 (+5.14%); split: -1.86%, +7.01%
SClause: 536739 -> 542637 (+1.10%); split: -0.33%, +1.43%
Copies: 977194 -> 970015 (-0.73%); split: -2.43%, +1.69%
Branches: 241205 -> 241193 (-0.00%); split: -0.06%, +0.06%
PreVGPRs: 1505645 -> 1505379 (-0.02%)

This fixes GPU hangs with bin/draw-vertices from Piglit on GFX10+
with Zink.

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

3 years agoaco: fix creating the dest vector when 16-bit vertex fetches are splitted
Samuel Pitoiset [Thu, 7 Jan 2021 13:01:09 +0000 (14:01 +0100)]
aco: fix creating the dest vector when 16-bit vertex fetches are splitted

Compute the number of components of the destination vector from the
bitsize when eg. a 16-bit vec2 vertex fetches is splitted. This is
because the dst will be a v1, so the p_create_vector should be created
from two v2b fro both sizes to match.

This prevents a regression from the next change which will split
typed vertex buffer loads on GFX6 and GFX10+.

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

3 years agodocs/release-calendar.rsv: Remove spaces
Dylan Baker [Thu, 7 Jan 2021 00:12:42 +0000 (16:12 -0800)]
docs/release-calendar.rsv: Remove spaces

The generated entries don't have spaces, and the csv parser doesn't
like that some rows do and others don't have spaces.

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

3 years agodocs: Add calendar entries for 21.0 release candidates.
Dylan Baker [Thu, 7 Jan 2021 00:11:27 +0000 (16:11 -0800)]
docs: Add calendar entries for 21.0 release candidates.

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

3 years agonir,radv: add and use nir_vectorize_tess_levels()
Rhys Perry [Wed, 6 Jan 2021 14:50:57 +0000 (14:50 +0000)]
nir,radv: add and use nir_vectorize_tess_levels()

fossil-db (Sienna):
Totals from 1342 (0.97% of 138791) affected shaders:
CodeSize: 3287996 -> 3269572 (-0.56%); split: -0.56%, +0.00%
Instrs: 629896 -> 628191 (-0.27%); split: -0.31%, +0.04%
Cycles: 2619244 -> 2612424 (-0.26%); split: -0.30%, +0.04%
VMEM: 388807 -> 389273 (+0.12%); split: +0.14%, -0.02%
SMEM: 90655 -> 90700 (+0.05%); split: +0.06%, -0.01%
VClause: 21831 -> 21812 (-0.09%)
PreVGPRs: 44155 -> 44058 (-0.22%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4202>

3 years agoradv: vectorize shader I/O
Rhys Perry [Wed, 6 Jan 2021 11:37:03 +0000 (11:37 +0000)]
radv: vectorize shader I/O

Fixes code size regressions after enabling TCS/TES for ACO.

fossil-db (Sienna):
Totals from 2588 (1.86% of 138791) affected shaders:
SGPRs: 109950 -> 108480 (-1.34%); split: -1.43%, +0.09%
VGPRs: 107764 -> 112060 (+3.99%); split: -0.03%, +4.02%
CodeSize: 5957760 -> 5321656 (-10.68%)
MaxWaves: 31718 -> 30358 (-4.29%); split: +0.03%, -4.32%
Instrs: 1116300 -> 1029000 (-7.82%)
Cycles: 4600344 -> 4251072 (-7.59%)
VMEM: 980024 -> 812978 (-17.05%); split: +1.14%, -18.18%
SMEM: 275458 -> 258227 (-6.26%); split: +2.34%, -8.60%
VClause: 42925 -> 30533 (-28.87%); split: -31.02%, +2.15%
SClause: 31554 -> 31362 (-0.61%); split: -1.79%, +1.18%
Branches: 15689 -> 15697 (+0.05%)
PreVGPRs: 80399 -> 83953 (+4.42%); split: -0.00%, +4.42%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4202>

3 years agonir/load_store_vectorize: add data as callback args
Rhys Perry [Fri, 13 Mar 2020 15:43:16 +0000 (15:43 +0000)]
nir/load_store_vectorize: add data as callback args

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

3 years agonir: add nir_load_store_vectorize_options
Rhys Perry [Fri, 13 Mar 2020 15:33:15 +0000 (15:33 +0000)]
nir: add nir_load_store_vectorize_options

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

3 years agonir/load_store_vectorize: don't ignore subgroup memory barriers
Rhys Perry [Fri, 13 Mar 2020 16:07:26 +0000 (16:07 +0000)]
nir/load_store_vectorize: don't ignore subgroup memory barriers

Not sure why I thought this was correct, but we should consider them for
optimization purposes.

Fixes: ce9205c03bd ('nir: add a load/store vectorization pass')
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4202>

3 years agov3d: reinterpret stencil data as uint texture in stencil blit path
Juan A. Suarez Romero [Tue, 5 Jan 2021 12:05:20 +0000 (13:05 +0100)]
v3d: reinterpret stencil data as uint texture in stencil blit path

There is a path to blit stencil buffers reinterpreting the stencil data
as an RGBA8888 or R8 float texture.

This works fine except for the case when the stencil buffer is
multisampled, and the blit operation needs to resolve it: an average of
the samples is done, which is incorrect, as only one sample must be
used.

This can be observed n the piglit test
`ext_framebuffer_multisample-unaligned-blit 2 stencil downsample -auto
-fbo`, specifically in the triangles border.

To avoid this averaging, let's reinterpret the stencil data as RGBA8888
or R8 uint texture.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8361>

3 years agoradv: workaround games which assume full subgroups if cswave32 is enabled
Rhys Perry [Thu, 3 Dec 2020 17:38:51 +0000 (17:38 +0000)]
radv: workaround games which assume full subgroups if cswave32 is enabled

This assumption becomes incorrect with RADV_PERFTEST=cswave32.

Games include Detroit: Become Human and Doom Eternal.

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

3 years agonir: gather whether a compute shader uses non-quad subgroup intrinsics
Rhys Perry [Thu, 3 Dec 2020 17:38:18 +0000 (17:38 +0000)]
nir: gather whether a compute shader uses non-quad subgroup intrinsics

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

3 years agoradv: implement CREATE_REQUIRE_FULL_SUBGROUPS_BIT with cswave32
Rhys Perry [Thu, 3 Dec 2020 17:37:32 +0000 (17:37 +0000)]
radv: implement CREATE_REQUIRE_FULL_SUBGROUPS_BIT with cswave32

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

3 years agowsi/x11: Treat IMMEDIATE present mode the same as MAILBOX for Xwayland
Michel Dänzer [Mon, 21 Dec 2020 14:30:11 +0000 (15:30 +0100)]
wsi/x11: Treat IMMEDIATE present mode the same as MAILBOX for Xwayland

Two main reasons:

As described in the previous commit, sending buffers to the Wayland
compositor as quickly as possible effectively results in mailbox
behaviour.

Also, doing the same as for MAILBOX present mode provides the following
benefits:

* We use more images in the swapchain, which avoids stalls on the client
  side if the Wayland compositor directly uses the client buffers for
  scanout.

* We wait for fences to signal before submitting a new buffer, which
  avoids missing frames in the Wayland compositor due to fences not
  signalling in time for a flip.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3673
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8197>

3 years agowsi/x11: Use PresentOptionAsync for MAILBOX present mode with Xwayland
Michel Dänzer [Mon, 21 Dec 2020 14:41:56 +0000 (15:41 +0100)]
wsi/x11: Use PresentOptionAsync for MAILBOX present mode with Xwayland

This allows Xwayland to forward buffers to the Wayland compositor ASAP
for fullscreen / undecorated windows, which in turn allows true mailbox
behaviour in the Wayland compositor.

Without this, Xwayland has to emulate the mailbox behaviour itself,
which it cannot do as well as the Wayland compositor by design.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8197>

3 years agowsi/x11: Detect Xwayland
Michel Dänzer [Mon, 21 Dec 2020 14:17:17 +0000 (15:17 +0100)]
wsi/x11: Detect Xwayland

The following commits will introduce different behaviour for Xwayland.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8197>

3 years agowsi/x11: Always link against xcb-xrandr
Michel Dänzer [Mon, 21 Dec 2020 11:11:40 +0000 (12:11 +0100)]
wsi/x11: Always link against xcb-xrandr

The next commit will make use of it even without
VK_USE_PLATFORM_XLIB_XRANDR_EXT.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8197>

3 years agowsi/x11: Set recognizable name for WSI swapchain queue thread
Michel Dänzer [Mon, 21 Dec 2020 11:01:48 +0000 (12:01 +0100)]
wsi/x11: Set recognizable name for WSI swapchain queue thread

This makes it easier to recognize the thread e.g. in a debugger.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8197>

3 years agoradeonsi: implement SQTT support
Pierre-Eric Pelloux-Prayer [Tue, 8 Dec 2020 12:08:10 +0000 (13:08 +0100)]
radeonsi: implement SQTT support

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

3 years agoradeonsi: add radeon_set_uconfig_reg_seq_perfctr
Pierre-Eric Pelloux-Prayer [Wed, 9 Dec 2020 09:38:34 +0000 (10:38 +0100)]
radeonsi: add radeon_set_uconfig_reg_seq_perfctr

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

3 years agoac/sqtt: move radv_get_expected_buffer_size to ac
Pierre-Eric Pelloux-Prayer [Tue, 8 Dec 2020 12:07:43 +0000 (13:07 +0100)]
ac/sqtt: move radv_get_expected_buffer_size to ac

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8002>

3 years agoac/sqtt: move ac_is_thread_trace_complete to ac
Pierre-Eric Pelloux-Prayer [Tue, 8 Dec 2020 11:03:52 +0000 (12:03 +0100)]
ac/sqtt: move ac_is_thread_trace_complete to ac

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8002>

3 years agoac/sqtt: move rgp/sqtt def to ac
Pierre-Eric Pelloux-Prayer [Tue, 8 Dec 2020 10:46:15 +0000 (11:46 +0100)]
ac/sqtt: move rgp/sqtt def to ac

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8002>

3 years agoac/radv: move radv_rgp.c to ac
Pierre-Eric Pelloux-Prayer [Tue, 8 Dec 2020 10:41:34 +0000 (11:41 +0100)]
ac/radv: move radv_rgp.c to ac

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8002>

3 years agoac/radv: move sqtt structs and helpers to amd/common
Pierre-Eric Pelloux-Prayer [Tue, 8 Dec 2020 10:31:08 +0000 (11:31 +0100)]
ac/radv: move sqtt structs and helpers to amd/common

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8002>

3 years agoac/sqtt: add ac_thread_trace_data
Pierre-Eric Pelloux-Prayer [Tue, 8 Dec 2020 10:06:48 +0000 (11:06 +0100)]
ac/sqtt: add ac_thread_trace_data

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8002>

3 years agoradeonsi: pass radeon_cmdbuf to si_cp_dma_wait_for_idle
Pierre-Eric Pelloux-Prayer [Tue, 8 Dec 2020 09:59:57 +0000 (10:59 +0100)]
radeonsi: pass radeon_cmdbuf to si_cp_dma_wait_for_idle

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

3 years agoradeonsi: pass radeon_cmdbuf to emit_cache_flush
Pierre-Eric Pelloux-Prayer [Tue, 8 Dec 2020 09:57:45 +0000 (10:57 +0100)]
radeonsi: pass radeon_cmdbuf to emit_cache_flush

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

3 years agogv100/ir: Use system wide atomics
Alistair Popple [Mon, 7 Dec 2020 01:23:17 +0000 (12:23 +1100)]
gv100/ir: Use system wide atomics

Increase the scope of atomic operations from GPU to system. This is
required for support of SVM to ensure atomic access is maintained for
memory buffers that are not local to the current GPU.

Signed-off-by: Alistair Popple <apopple@nvidia.com>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7955>

3 years agogv100/ir: Make emitATOM consistent with emitRED
Alistair Popple [Mon, 7 Dec 2020 01:42:52 +0000 (12:42 +1100)]
gv100/ir: Make emitATOM consistent with emitRED

GV100 code generation uses ATOM instructions for compare-and-swap and
RED instructions for other atomic operations. Make the scope consistent
for both types of operations.

Signed-off-by: Alistair Popple <apopple@nvidia.com>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7955>

3 years agoradeonsi: remove si_gs_prolog_bits::gfx9_prev_is_vs
Marek Olšák [Tue, 5 Jan 2021 23:57:41 +0000 (18:57 -0500)]
radeonsi: remove si_gs_prolog_bits::gfx9_prev_is_vs

It didn't do anything useful. GS doesn't use the other user SGPRs.
If we decrease the number of user SGPRs we declare for the GS prolog,
we can remove gfx9_prev_is_vs.

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

3 years agoradeonsi: fix hang caused by for loop with exec=0 in LS and ES
Marek Olšák [Tue, 5 Jan 2021 08:23:08 +0000 (03:23 -0500)]
radeonsi: fix hang caused by for loop with exec=0 in LS and ES

LLVM expects that exec != 0 when entering loops and generates this code
that becomes an infinite loop if exec == 0:

BB5_1:
    vcc_lo = (inverted terminating condition)
    s_and_b32 vcc_lo, exec_lo, vcc_lo
    s_cbranch_vccnz BB5_3    // jump if vcc != 0 (break statement)
    // ... loop body ...
    s_branch BB5_1
BB5_3:

For non-monolithic VS before TCS, VS before GS, and TES before GS,
we set exec = (thread enabledmask), which sets 0 for HS-only and GS-only
waves, causing the infinite loop condition above.

Fix it as follows:
- set exec = ~0 at the beginning
- wrap the whole shader (LS and ES) in a conditional block, so that HS-only
  and GS-only waves jump over it and never enter such a loop

The TES before GS hang can be reproduced by gfxbench:
    testfw_app --gfx egl -w 1920 -h 1080 --gl_api gles -t gl_tess

Fixes: 68d6d097f15 - radeonsi/gfx9: add GFX9 and VEGA10 enums

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

3 years agobin/gen_calendar_entries: Add support for making a release
Dylan Baker [Tue, 5 Jan 2021 22:23:32 +0000 (14:23 -0800)]
bin/gen_calendar_entries: Add support for making a release

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

3 years agobin/gen_calendar_entries: Add support for extending a release
Dylan Baker [Tue, 5 Jan 2021 19:46:49 +0000 (11:46 -0800)]
bin/gen_calendar_entries: Add support for extending a release

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

3 years agobin: Add script for manipulating the release calendar
Dylan Baker [Tue, 5 Jan 2021 00:04:45 +0000 (16:04 -0800)]
bin: Add script for manipulating the release calendar

Currently it only handles creating entries for a new rc.

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

3 years agodocs: store the release-calendar information in csv (and fix tests)
Dylan Baker [Tue, 5 Jan 2021 00:39:27 +0000 (16:39 -0800)]
docs: store the release-calendar information in csv (and fix tests)

Restructured text (and markdown) is painful to programatically
manipulate, most python parsers are geared towards writing markdown and
generating html. I'd like to move the calendar updates to being
scripted, as such using csv to store them will be convenient. This also
allows us to simplify our scripting that manipulates the table
considerably.

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

3 years agofreedreno: Add missing dep on u_tracepoints.
Eric Anholt [Wed, 6 Jan 2021 23:11:08 +0000 (15:11 -0800)]
freedreno: Add missing dep on u_tracepoints.

Fixes: a02dcb970fff ("freedreno: Add GPU tracepoints")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8355>

3 years agofreedreno: Mark a615/a618 as also lacking Z24_UINT_S8_UINT support.
Eric Anholt [Mon, 4 Jan 2021 22:53:34 +0000 (14:53 -0800)]
freedreno: Mark a615/a618 as also lacking Z24_UINT_S8_UINT support.

Rob says it's also the case on 618, and presumably 615 as well then, so
make it take the same path as a630.

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

3 years agofreedreno: Disable UBWC on z24s8 on a630.
Eric Anholt [Fri, 18 Dec 2020 01:07:48 +0000 (17:07 -0800)]
freedreno: Disable UBWC on z24s8 on a630.

Stencil texture sampling (such as what we have to do for BlitFramebuffer)
is broken with UBWC enabled.  We can't just take the
fd_resource_uncompress() path, because that's a blit just like
BlitFramebuffer.

Fixes failure in dEQP-GLES3.functional.fbo.msaa.2_samples.stencil_index8,
but also the uncaught rendering fails of 4_samples.stencil_index8 and
depth24_stencil8.

Prior to "911ce374caf0 freedreno/a6xx: Fix MSAA clear" we would usually
pass and sometimes flake fail on this test occasionally, thus it being
listed as a flake (though the rendering was actually broken).  Since that
commit, though, we consistently fail on a pixel of the broken rendering,
and thus this was brought to my attention by the #freedreno-ci channel
spam.

Rob took a look at the performance impact of this, and the worst was maybe
up to .5% fps hit on trex.

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

3 years agofreedreno/a6xx: Fix z24s8 non-ubwc blits on a630.
Eric Anholt [Mon, 4 Jan 2021 19:34:00 +0000 (11:34 -0800)]
freedreno/a6xx: Fix z24s8 non-ubwc blits on a630.

Taken from the logic in turnip (though they have the format table have
8888_unorm and override to z24s8_as_rgba for blits in the ubwc case)

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

3 years agofreedreno/a6xx: Move the IBO pipe2tex down to where it's used.
Eric Anholt [Fri, 18 Dec 2020 18:51:24 +0000 (10:51 -0800)]
freedreno/a6xx: Move the IBO pipe2tex down to where it's used.

For the texture path, the pipe2tex happens in fd6_tex_const_0().

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

3 years agoturnip: Move the limited_z24s8 flag to the shared device info.
Eric Anholt [Thu, 17 Dec 2020 23:52:28 +0000 (15:52 -0800)]
turnip: Move the limited_z24s8 flag to the shared device info.

I want to do the same logic in freedreno, so use the same flag.  On
suggestion by robclark, rename it to what it specifically means.

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

3 years agokmsro: sync Android.mk GALLIUM_TARGET_DRIVERS
Neil Armstrong [Wed, 4 Nov 2020 08:18:03 +0000 (08:18 +0000)]
kmsro: sync Android.mk GALLIUM_TARGET_DRIVERS

Sync Android.mk GALLIUM_TARGET_DRIVERS names from kmsro meson.build,
notably adding the missing mediatek, meson and rockchip display drivers
names.

It also fixes the imx name into imx-drm as referenced in meson.build
and src/gallium/targets/dri/target.c

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7443>

3 years agodocs: use a single cell for the branch number
Eric Engestrom [Sun, 6 Dec 2020 17:33:24 +0000 (18:33 +0100)]
docs: use a single cell for the branch number

Fixes: 94c6511757254da6c3b6 ("docs: add release schedule for 20.3")
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7950>

3 years agovtn: support SpvCapabilitySparseResidency
Rhys Perry [Mon, 23 Nov 2020 14:14:57 +0000 (14:14 +0000)]
vtn: support SpvCapabilitySparseResidency

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

3 years agonir/lower_tex: fix lower_tg4_offsets with sparse fetches
Rhys Perry [Mon, 7 Dec 2020 13:36:47 +0000 (13:36 +0000)]
nir/lower_tex: fix lower_tg4_offsets with sparse fetches

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

3 years agonir: add sparse_residency_code_and
Rhys Perry [Mon, 7 Dec 2020 13:36:22 +0000 (13:36 +0000)]
nir: add sparse_residency_code_and

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

3 years agonir,spirv: implement SpvOpImageSparseTexelsResident
Rhys Perry [Wed, 25 Nov 2020 17:07:20 +0000 (17:07 +0000)]
nir,spirv: implement SpvOpImageSparseTexelsResident

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

3 years agonir,spirv: add sparse image loads
Rhys Perry [Fri, 20 Nov 2020 16:14:26 +0000 (16:14 +0000)]
nir,spirv: add sparse image loads

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

3 years agonir,spirv: add sparse texture fetches
Rhys Perry [Fri, 20 Nov 2020 15:10:42 +0000 (15:10 +0000)]
nir,spirv: add sparse texture fetches

Like SPIR-V and GL_ARB_sparse_texture2, these return a residency code. It
is placed in the destination after the rest of the result. If it's zero,
then the texel is resident. Otherwise, it's not resident.

Besides the larger destination and the residency code, sparse fetches
work the same as normal fetches.

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

3 years agonir: allow 5 component vectors
Rhys Perry [Mon, 23 Nov 2020 13:05:58 +0000 (13:05 +0000)]
nir: allow 5 component vectors

These will be useful for sparse texture instructions and image load
intrinsics.

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

3 years agonir/tests: fix callback for load/store vectorizer tests
Rhys Perry [Fri, 13 Mar 2020 16:09:06 +0000 (16:09 +0000)]
nir/tests: fix callback for load/store vectorizer tests

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

3 years agonir/opt_vectorize: fix call to filter function
Daniel Schürmann [Wed, 6 Jan 2021 18:06:51 +0000 (19:06 +0100)]
nir/opt_vectorize: fix call to filter function

Due to the typo, it could happen that instructions
got further vectorized than intended.

Fixes: 8eaf9c61d17370d3f272ca39256de58231c02127 ('nir/opt_vectorize: don't hash filtered instructions')
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8352>

3 years agofreedreno/afuc: Replace readfile with os_read_file.
Vinson Lee [Fri, 1 Jan 2021 02:29:04 +0000 (18:29 -0800)]
freedreno/afuc: Replace readfile with os_read_file.

Tested afuc-disasm produced same output.

$ ./builddir/src/freedreno/afuc/afuc-disasm -g 6 src/freedreno/.gitlab-ci/reference/afuc_test.fw > /tmp/afuc_test.asm
$ diff ./src/freedreno/.gitlab-ci/reference/afuc_test.asm /tmp/afuc_test.asm
$ echo $?
0

Suggested-by: Rob Clark <robdclark@chromium.org>
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8290>

3 years agobin/remove get-pick-list.sh files
Dylan Baker [Tue, 1 Dec 2020 21:07:56 +0000 (13:07 -0800)]
bin/remove get-pick-list.sh files

These haven't been used for a long time, they've been supersceeded by
pick-ui

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

3 years agopick-ui: don't handle the mouse
Dylan Baker [Tue, 1 Dec 2020 21:06:04 +0000 (13:06 -0800)]
pick-ui: don't handle the mouse

It's annoying, since it prevents linux "midle click" copy-n-paste

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

3 years agogallium/util: do not perform n^2 stencil blits
Erik Faye-Lund [Mon, 4 Jan 2021 09:35:36 +0000 (10:35 +0100)]
gallium/util: do not perform n^2 stencil blits

We already loop n times here, no point in doing n instances as well.

Fixes: e8a40715a8b ("gallium/util: add blitter-support for stencil-fallback")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8301>

3 years agofreedreno/ir3/parser: Fix pre-a6xx stib parsing
Rob Clark [Tue, 5 Jan 2021 20:38:02 +0000 (12:38 -0800)]
freedreno/ir3/parser: Fix pre-a6xx stib parsing

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

3 years agofreedreno/ir3/parser: a6xx ldib/stib parsing
Rob Clark [Tue, 5 Jan 2021 20:28:53 +0000 (12:28 -0800)]
freedreno/ir3/parser: a6xx ldib/stib parsing

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

3 years agofreedreno/ir3: Fix pre-a6xx ldgb/stib parsing
Rob Clark [Tue, 5 Jan 2021 19:39:26 +0000 (11:39 -0800)]
freedreno/ir3: Fix pre-a6xx ldgb/stib parsing

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

3 years agofreedreno/ir3: Explicitly flag disasm test vectors that don't parse
Rob Clark [Tue, 5 Jan 2021 18:47:08 +0000 (10:47 -0800)]
freedreno/ir3: Explicitly flag disasm test vectors that don't parse

Mark the test cases which aren't supported by ir3_parser.y explicitly,
so we notice future regressions.  And likewise, fail when we see an
unexpected pass, so we don't forget to update the test vectors in the
future as ir3_parser improves.

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

3 years agofreedreno/ir3: Fix ldg decoding/parsing
Rob Clark [Mon, 4 Jan 2021 20:47:36 +0000 (12:47 -0800)]
freedreno/ir3: Fix ldg decoding/parsing

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

3 years agofreedreno/ir3/parser: Fixup stg parsing and add more tests
Rob Clark [Mon, 4 Jan 2021 19:30:32 +0000 (11:30 -0800)]
freedreno/ir3/parser: Fixup stg parsing and add more tests

The offset can also be a register, in which case we need to shuffle
around the src order.  Add a few more test vectors to cover each
permutation (no offset, immed offset, gpr offset).

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

3 years agofreedreno/ir3/parser: Add stgb support
Rob Clark [Sun, 3 Jan 2021 18:08:21 +0000 (10:08 -0800)]
freedreno/ir3/parser: Add stgb support

Note that this conflicts with `stc` on a6xx+, so a good test that the
(new) disasm can handle both cases properly.

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

3 years agofreedreno/ir3/parser: Add ldgb support
Rob Clark [Thu, 31 Dec 2020 19:08:37 +0000 (11:08 -0800)]
freedreno/ir3/parser: Add ldgb support

Gives us at least better coverage of pre-a6xx-bindless-ibo instructions.

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

3 years agofreedreno/ir3/parser: Fix pre-a6xx resinfo
Rob Clark [Thu, 31 Dec 2020 00:58:09 +0000 (16:58 -0800)]
freedreno/ir3/parser: Fix pre-a6xx resinfo

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

3 years agofreedreno/ir3/parser: Fix atomic support
Rob Clark [Thu, 31 Dec 2020 00:04:55 +0000 (16:04 -0800)]
freedreno/ir3/parser: Fix atomic support

1) Handle a6xx bindless form
2) Fix shared vs global encoding

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

3 years agofreedreno/ir3/parser: Add ldc support
Rob Clark [Wed, 30 Dec 2020 23:18:16 +0000 (15:18 -0800)]
freedreno/ir3/parser: Add ldc support

Note that this shows up a slight encoding difference compared to test
vector extracted from blob deqp runs.  We think these should be dontcare
bits.  For now, add a note and replace the encoded value in the disasm
test.

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

3 years agofreedreno/ir3: Add cat5/cat6 nonuniform flag
Rob Clark [Wed, 30 Dec 2020 23:00:44 +0000 (15:00 -0800)]
freedreno/ir3: Add cat5/cat6 nonuniform flag

Not yet used by the compiler, but needed so we don't loose information
between ir3 parser and instruction encoding.

Currently ignored for cat5, because the uniform vs non-uniform default
is swapped there.

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

3 years agofreedreno/ir3: Disambiguate a6xx+ "bindless" instructions
Rob Clark [Wed, 30 Dec 2020 21:23:18 +0000 (13:23 -0800)]
freedreno/ir3: Disambiguate a6xx+ "bindless" instructions

Add a `.b`.. for the atomic instructions it should be `atomic.b.op` but
for now put the `.b` at the end to simplify life for the existing disasm

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

3 years agofreedreno/ir3: Don't leak disk_cache
Rob Clark [Mon, 28 Dec 2020 17:05:08 +0000 (09:05 -0800)]
freedreno/ir3: Don't leak disk_cache

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

3 years agofreedreno/ir3: Add parsing and assembler testing
Rob Clark [Sat, 19 Dec 2020 20:35:08 +0000 (12:35 -0800)]
freedreno/ir3: Add parsing and assembler testing

In theory we should be able to round-trip from disasm->asm and get a
bitwise match.

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

3 years agofreedreno/ir3: Tweak ldib/resinfo encoding
Rob Clark [Mon, 21 Dec 2020 19:08:05 +0000 (11:08 -0800)]
freedreno/ir3: Tweak ldib/resinfo encoding

The blob is using '0' for the low bit in these (except for ldib where it
seems to randomly use either '0' or '1').  The upcoming xml based ISA
spec maps this bit to 'dontcare' in the ldib case.

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

3 years agofreedreno/ir3/parser: Add initial cat6 IBO instructions
Rob Clark [Mon, 21 Dec 2020 18:59:15 +0000 (10:59 -0800)]
freedreno/ir3/parser: Add initial cat6 IBO instructions

Well, really just resinfo.. dealing with the different ldib/stib syntax
for a6xx+ vs earlier seems a bit too painful to deal with.  But resinfo
at least gives us some encoding test coverage of this group of instrs.

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

3 years agofreedreno/ir3/parser: Relative gpr/const can have modifiers too
Rob Clark [Mon, 21 Dec 2020 17:34:13 +0000 (09:34 -0800)]
freedreno/ir3/parser: Relative gpr/const can have modifiers too

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

3 years agofreedreno/ir3/parser: Add missing (sat) modifier
Rob Clark [Mon, 21 Dec 2020 17:15:54 +0000 (09:15 -0800)]
freedreno/ir3/parser: Add missing (sat) modifier

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

3 years agofreedreno/ir3: Don't set bit for dest conversion for p0.c
Rob Clark [Mon, 21 Dec 2020 17:05:05 +0000 (09:05 -0800)]
freedreno/ir3: Don't set bit for dest conversion for p0.c

This appears to be ignored when writing to predicate registers (which I
guess makes sense, since they are boolean).  So no real harm in setting
it, other than it makes some of the ir3_parser test vectors not match
the expected result for encoding.

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

3 years agofreedreno/ir3/parser: Fixup cat5 s2en instructions
Rob Clark [Mon, 21 Dec 2020 16:44:49 +0000 (08:44 -0800)]
freedreno/ir3/parser: Fixup cat5 s2en instructions

Currently ir3 (incl emit_cat5()) expects the samp/tex src register to be
first.. which requires some fixup for the parser to match.

TODO we might want to revisit the src reg order when adding new instr
packing/encoding.  For now, lets just make the parser match the rest of
ir3.

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

3 years agofreedreno/ir3/parser: Fix dsxpp/dsypp encoding
Rob Clark [Sun, 20 Dec 2020 20:52:08 +0000 (12:52 -0800)]
freedreno/ir3/parser: Fix dsxpp/dsypp encoding

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