mesa.git
4 years agoaco: add more opcodes to can_swap_operands
Rhys Perry [Tue, 19 May 2020 12:41:43 +0000 (13:41 +0100)]
aco: add more opcodes to can_swap_operands

fossil-db (Navi, fp16 enabled):
Totals from 310 (0.24% of 127638) affected shaders:
CodeSize: 1290508 -> 1289716 (-0.06%)

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

4 years agoaco: allow to swap operands for some 16-bit float instructions
Samuel Pitoiset [Thu, 9 Apr 2020 14:41:00 +0000 (16:41 +0200)]
aco: allow to swap operands for some 16-bit float instructions

No fossil-db changes.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>

4 years agoaco: validate sub-dword pseudo instructions
Rhys Perry [Tue, 19 May 2020 10:45:12 +0000 (11:45 +0100)]
aco: validate sub-dword pseudo instructions

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

4 years agoaco: optimize 16-bit and 64-bit float comparisons
Rhys Perry [Fri, 15 May 2020 19:26:39 +0000 (20:26 +0100)]
aco: optimize 16-bit and 64-bit float comparisons

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

4 years agoaco: copy-propagate constants through p_extract_vector/p_split_vector
Rhys Perry [Mon, 18 May 2020 18:42:40 +0000 (19:42 +0100)]
aco: copy-propagate constants through p_extract_vector/p_split_vector

fossil-db (Navi, fp16 enabled):
Totals from 1 (0.00% of 127638) affected shaders:
CodeSize: 4388 -> 4392 (+0.09%)
VMEM: 465 -> 458 (-1.51%)
Copies: 54 -> 55 (+1.85%)

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

4 years agoaco: improve 8/16-bit constants
Rhys Perry [Fri, 15 May 2020 15:28:03 +0000 (16:28 +0100)]
aco: improve 8/16-bit constants

fossil-db (Navi, fp16 enabled):
Totals from 1 (0.00% of 127638) affected shaders:
CodeSize: 4540 -> 4388 (-3.35%)
Instrs: 861 -> 830 (-3.60%)
Cycles: 3444 -> 3320 (-3.60%)
VMEM: 489 -> 465 (-4.91%)
SMEM: 107 -> 110 (+2.80%)
SClause: 31 -> 30 (-3.23%)
Copies: 58 -> 54 (-6.90%)

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

4 years agoaco: use 32-bit inline constants for 16-bit integer instructions
Rhys Perry [Mon, 15 Jun 2020 13:30:34 +0000 (14:30 +0100)]
aco: use 32-bit inline constants for 16-bit integer instructions

See https://reviews.llvm.org/D81841

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

4 years agoaco: fix half_pi constant for 16-bit fsin/fcos
Rhys Perry [Mon, 15 Jun 2020 13:21:03 +0000 (14:21 +0100)]
aco: fix half_pi constant for 16-bit fsin/fcos

This worked because the optimizer didn't consider that the 16-bit
instruction would interpret the inline constant differently. This will
change in the next commit.

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

4 years agoaco: improve sub-dword check for sgpr/constant propagation
Rhys Perry [Mon, 18 May 2020 14:26:58 +0000 (15:26 +0100)]
aco: improve sub-dword check for sgpr/constant propagation

p_create_vector can have sub-dword operands with a v1 definition.

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

4 years agoaco: create 16-bit input and output modifiers
Rhys Perry [Fri, 15 May 2020 14:12:33 +0000 (15:12 +0100)]
aco: create 16-bit input and output modifiers

fossil-db (Navi, fp16 enabled):
Totals from 1 (0.00% of 127638) affected shaders:
CodeSize: 4552 -> 4540 (-0.26%)
Instrs: 863 -> 861 (-0.23%)
Cycles: 3452 -> 3444 (-0.23%)
VMEM: 490 -> 489 (-0.20%)

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

4 years agoaco: update comment about preserving fp16/fp64 denormals
Rhys Perry [Tue, 19 May 2020 12:24:45 +0000 (13:24 +0100)]
aco: update comment about preserving fp16/fp64 denormals

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

4 years agoaco: create 16-bit mad/fma
Rhys Perry [Thu, 14 May 2020 20:09:36 +0000 (21:09 +0100)]
aco: create 16-bit mad/fma

fossil-db (Navi, fp16 enabled):
Totals from 1 (0.00% of 127638) affected shaders:
CodeSize: 4868 -> 4552 (-6.49%)
Instrs: 956 -> 863 (-9.73%)
Cycles: 3824 -> 3452 (-9.73%)
VMEM: 504 -> 490 (-2.78%)
SMEM: 109 -> 107 (-1.83%)
VClause: 19 -> 20 (+5.26%)
Copies: 54 -> 58 (+7.41%)
PreVGPRs: 43 -> 41 (-4.65%)

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

4 years agoaco: try to use fma instead of mad when denormals are enabled
Rhys Perry [Fri, 15 May 2020 13:03:15 +0000 (14:03 +0100)]
aco: try to use fma instead of mad when denormals are enabled

v_mad_f32 doesn't support denormals but v_fma_f32 does.

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

4 years agoaco: create mads when signed zeros should be preserved
Rhys Perry [Fri, 15 May 2020 13:24:12 +0000 (14:24 +0100)]
aco: create mads when signed zeros should be preserved

This check was added because I thought v_mad_f32 didn't preserve the
signess of zero, but I can't reproduce that and this isn't mentioned
anywhere in LLVM.

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

4 years agoaco: add and set precise flag
Rhys Perry [Fri, 15 May 2020 12:58:20 +0000 (13:58 +0100)]
aco: add and set precise flag

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

4 years agoaco: use p_as_uniform in emit_vop1_instruction
Rhys Perry [Thu, 11 Jun 2020 13:35:13 +0000 (14:35 +0100)]
aco: use p_as_uniform in emit_vop1_instruction

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

4 years agoaco: improve code for f2{i,u}{8,16}
Rhys Perry [Tue, 19 May 2020 10:53:44 +0000 (11:53 +0100)]
aco: improve code for f2{i,u}{8,16}

Use sub-dword definitions so that the RA can use SDWA

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

4 years agoaco: use num_opcodes instead of last_opcode
Rhys Perry [Tue, 19 May 2020 12:26:21 +0000 (13:26 +0100)]
aco: use num_opcodes instead of last_opcode

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

4 years agonir: do not try to merge xfb-outputs
Erik Faye-Lund [Thu, 4 Jun 2020 10:38:08 +0000 (12:38 +0200)]
nir: do not try to merge xfb-outputs

It's tricky to merge XFB-outputs correctly, because we need there to not
be any overlaps when we get to `nir_gather_xfb_info_with_varyings` later
on. We currently trigger an assert there if we end up merging here.

So let's not even try. This is an optimization, and we can optimize this
in safe cases later if needed. For now, let's play it safe.

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

4 years agoturnip: drop linking libfreedreno_drm
Rob Clark [Mon, 15 Jun 2020 15:32:22 +0000 (08:32 -0700)]
turnip: drop linking libfreedreno_drm

Now that it is no longer required.

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

4 years agofreedreno/ir3: move the libdrm dependency out of shared code
Rob Clark [Fri, 5 Jun 2020 19:56:04 +0000 (12:56 -0700)]
freedreno/ir3: move the libdrm dependency out of shared code

The only reason for this dependency was the fd_bo used for the uploaded
shader.  But this isn't used by turnip.  Now that we've unified the
cleanup path from gallium, it isn't hard to pull the fd_bo upload/free
parts into ir3_gallium.

This cleanup has the added benefit that the shader disk-cache will not
have to deal with it.

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

4 years agofreedreno/ir3: unify shader create/delete paths
Rob Clark [Fri, 5 Jun 2020 19:41:29 +0000 (12:41 -0700)]
freedreno/ir3: unify shader create/delete paths

In particular, to move the fd_bo create/delete (which is unneeded by
turnip) out of the shared ir3 code, it is useful to have a single
delete path.

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

4 years agozink: rework input/output location emission
Mike Blumenkrantz [Wed, 10 Jun 2020 19:26:07 +0000 (15:26 -0400)]
zink: rework input/output location emission

glsl builtins that have no analog in spirv are emitted as regular varyings,
which means they take up a slot.

we need to ensure that there's no conflict between these regular varying
slots (from user-defined varyings) and the glsl translated builtins, so
we do that by "reserving" the max number of varying slots that can be used
by a given stage, then remapping all glsl builtins with no spirv builtin
to a packed layout location that can be consistent across stages

sort of addresses mesa/mesa#3113 except now there's 10 fewer varying slots

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

4 years agozink: handle more glsl->spirv builtin translation
Mike Blumenkrantz [Thu, 11 Jun 2020 19:22:53 +0000 (15:22 -0400)]
zink: handle more glsl->spirv builtin translation

this should be all of them, though the check for vertex shader stage needs
to be changed to !fragment stage at some point

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

4 years agospirv: fix using OpSampledImage with OpUndef instead of OpType{Image,Sampler}
Samuel Pitoiset [Tue, 26 May 2020 11:54:34 +0000 (13:54 +0200)]
spirv: fix using OpSampledImage with OpUndef instead of OpType{Image,Sampler}

This seems valid per the SPIR-V spec to use OpSampledImage with
OpUndef instead of OpTypeImage or OpTypeSampler. When the image
operand is undefined, SPIRV->NIR emits an undef instruction that
can be removed later by the compiler.

This fixes shader compilation crashes with Red Dead Redemption II.

Cc: mesa-stable@lists.freedesktop.org>
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5230>

4 years agopan/mdg: Precolour blend inputs
Alyssa Rosenzweig [Fri, 12 Jun 2020 20:45:24 +0000 (16:45 -0400)]
pan/mdg: Precolour blend inputs

Instead of requiring an explicit unoptimized move, we can implicitly
colour the blend input intrinsic to r0, where it will be preloaded; this
is a simple task for RA, and does not conflict with anything. If there
are multiple duplicate loads, the latter ones can just be simple moves
which will be copypropped.

We don't need to include a explicit synthetic load, since (scanning
backwards) the read will cause the input to become live at the right
time and the lack of an explicit write will keep it live from the
beginning of the shader. So no need to make it more complicated than it
needs to be.

Saves a cycle in blend shaders.

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

4 years agonvir: don't use designated initialisers in C++ code
Yevhenii Kolesnikov [Thu, 11 Jun 2020 17:36:26 +0000 (20:36 +0300)]
nvir: don't use designated initialisers in C++ code

This feature only available since C++20.

Fixes: fa0a241b335 ("nvir/nir: move nir options to codegen")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3114
Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5430>

4 years agoac: add ac_choose_spi_color_formats() to common code
Samuel Pitoiset [Thu, 11 Jun 2020 20:25:53 +0000 (22:25 +0200)]
ac: add ac_choose_spi_color_formats() to common code

It's similar between RADV and RadeonSI.

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

4 years agofreedreno/ir3: fix ir3_nir_move_varying_inputs
Jonathan Marek [Sun, 14 Jun 2020 03:50:22 +0000 (23:50 -0400)]
freedreno/ir3: fix ir3_nir_move_varying_inputs

ir3_nir_move_varying_inputs is broken when there a load input outside of
the first block which depends on the result of a previous load input.

This simplification/rework avoids the problem, and should also be faster.

Fixes this dEQP-VK test:

dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_pixel_center.128_128_1.samples_2

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

4 years agointel/tools: make test aware of the meson test wrapper
Eric Engestrom [Wed, 3 Jun 2020 19:58:32 +0000 (21:58 +0200)]
intel/tools: make test aware of the meson test wrapper

Suggested-by: Dylan Baker <dylan@pnwbakers.com>
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/5155>

4 years agointel/tools: rewrite run-test.sh in python
Eric Engestrom [Wed, 31 Jul 2019 11:19:55 +0000 (12:19 +0100)]
intel/tools: rewrite run-test.sh in python

Old script created files in the source directory, which is generally
considered bad form.

The rewrite to python instead of duct-taping around in the shell script
goes towards the goal of only having cross-platform python scripts,
which is also harder to make mistakes in than shell scripts.

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5155>

4 years agopost_version.py: update script to the new rST way of things
Eric Engestrom [Sun, 3 May 2020 18:55:55 +0000 (20:55 +0200)]
post_version.py: update script to the new rST way of things

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

4 years agogen_release_notes.py: update script to the new rST way of things
Eric Engestrom [Wed, 29 Apr 2020 00:02:28 +0000 (02:02 +0200)]
gen_release_notes.py: update script to the new rST way of things

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

4 years agodocs/release-calendar: restore missing id
Erik Faye-Lund [Mon, 20 Apr 2020 12:12:36 +0000 (14:12 +0200)]
docs/release-calendar: restore missing id

I'm not sure how this got dropped, but it somehow did during conversion.
Let's restore it.

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

4 years agobin/perf-annotate-jit.py: update internal reference
Erik Faye-Lund [Mon, 20 Apr 2020 11:12:12 +0000 (13:12 +0200)]
bin/perf-annotate-jit.py: update internal reference

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

4 years agoradv: update internal reference
Erik Faye-Lund [Mon, 20 Apr 2020 11:11:10 +0000 (13:11 +0200)]
radv: update internal reference

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

4 years agodocs/relnotes: update internal references
Erik Faye-Lund [Mon, 20 Apr 2020 11:40:10 +0000 (13:40 +0200)]
docs/relnotes: update internal references

I'm not 100% sure if it feels right to update these. I mean, this keeps
links working as they should, even if exported to something else than
HTML. But it also feels a bit like history revisionism. It's probably
the right thing to do, though.

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

4 years agodocs: update internal references
Erik Faye-Lund [Mon, 20 Apr 2020 11:10:12 +0000 (13:10 +0200)]
docs: update internal references

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

4 years agoREADME: update references to internal docs
Erik Faye-Lund [Mon, 20 Apr 2020 11:07:37 +0000 (13:07 +0200)]
README: update references to internal docs

These documents are no longer HTML files, so the internal reference
should be updated.

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

4 years agodocs: drop news in favour of the introduction as index-page
Erik Faye-Lund [Thu, 30 Jan 2020 18:27:17 +0000 (19:27 +0100)]
docs: drop news in favour of the introduction as index-page

This kind of only makes sense once we have a separate home-page. But I
think this is a good way of showing why we should do this; Sphinx
doesn't support pagination, because it's not meant as a general-purpose
website framewrork. And for documentation, pagination is not really
something you need.

There's probably a lot more pages that should be moved into a separate
webpage, similar to this. In general, I think this should be done for
pages that don't relate to the source code too much, e.g isn't needed to
understand the code, or for instance explains how to get the source code.

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

4 years agogitlab-ci: build and deploy docs
Erik Faye-Lund [Mon, 27 May 2019 15:12:10 +0000 (17:12 +0200)]
gitlab-ci: build and deploy docs

Dunno if alpine is a good idea. It's what the gitlab docs use for most
of their examples, so that's what I've gone with... Can probably be
changed to something else if wanted.

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

4 years agodocs: include specs into the generated docs
Erik Faye-Lund [Sat, 18 Apr 2020 09:54:11 +0000 (11:54 +0200)]
docs: include specs into the generated docs

Unfortunately, it doesn't seem like there's a way to have sphinx copy
this without moving the files, becasue html_extra_path doesn't copy the
directory itself when given a directory, only files inside and
subdirectories.

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

4 years agodocs: bundle extra files
Erik Faye-Lund [Sat, 18 Apr 2020 09:44:57 +0000 (11:44 +0200)]
docs: bundle extra files

These are documents that are bundled in the root of the website, and
contains some useful, extra documentation. Let's include them.

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

4 years agodocs: use rst-note for highlighted text
Erik Faye-Lund [Sat, 18 Apr 2020 10:55:14 +0000 (12:55 +0200)]
docs: use rst-note for highlighted text

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

4 years agodocs: reformat license table as rst table
Erik Faye-Lund [Sat, 18 Apr 2020 09:20:31 +0000 (11:20 +0200)]
docs: reformat license table as rst table

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

4 years agodocs: use rst footnotes instead of manual ones
Erik Faye-Lund [Sat, 18 Apr 2020 09:07:53 +0000 (11:07 +0200)]
docs: use rst footnotes instead of manual ones

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

4 years agodocs: Add the favicon to the new page.
Laura Ekstrand [Mon, 11 Jun 2018 22:42:39 +0000 (15:42 -0700)]
docs: Add the favicon to the new page.

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

4 years agodocs: do not copy source-files to site
Erik Faye-Lund [Mon, 10 Jun 2019 18:15:08 +0000 (20:15 +0200)]
docs: do not copy source-files to site

These docs have publically available sources in the first place, there's
no point in including a copy of them here as well.

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

4 years agodocs: Remove version.
Laura Ekstrand [Wed, 6 Jun 2018 21:43:35 +0000 (14:43 -0700)]
docs: Remove version.

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

4 years agodocs: add xlibdriver to table-of-contents
Erik Faye-Lund [Tue, 4 Jun 2019 15:29:39 +0000 (17:29 +0200)]
docs: add xlibdriver to table-of-contents

It's not so nice to have a hidden article, so let's add this one to the
TOC under "User Topics".

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

4 years agodocs: drop open-coded toc for articles
Erik Faye-Lund [Sat, 18 Apr 2020 10:57:44 +0000 (12:57 +0200)]
docs: drop open-coded toc for articles

Sphinx already provides a proper table-of-contents, so we don't need to
roll our own.

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

4 years agodocs: use code-blocks
Erik Faye-Lund [Tue, 4 Jun 2019 12:14:13 +0000 (14:14 +0200)]
docs: use code-blocks

Sphinx can syntax-highlight a block if we use the right syntax.

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

4 years agodocs: format notes as rst-notes
Erik Faye-Lund [Tue, 4 Jun 2019 08:39:58 +0000 (10:39 +0200)]
docs: format notes as rst-notes

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

4 years agodocs: include meson in the toctree
Laura Ekstrand [Fri, 18 May 2018 23:28:49 +0000 (16:28 -0700)]
docs: include meson in the toctree

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

4 years agodocs: use code-block with caption instead of table
Erik Faye-Lund [Mon, 6 May 2019 12:18:23 +0000 (14:18 +0200)]
docs: use code-block with caption instead of table

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

4 years agodocs: disable syntax-highlighting by default
Erik Faye-Lund [Tue, 4 Jun 2019 13:15:39 +0000 (15:15 +0200)]
docs: disable syntax-highlighting by default

The default is python, which we don't really do a whole lot of in
our docs, so let's just disable to none instead.

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

4 years agodocs: use sphinx
Erik Faye-Lund [Thu, 2 May 2019 21:21:36 +0000 (23:21 +0200)]
docs: use sphinx

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

4 years agodocs: fixup heading-levels
Erik Faye-Lund [Sat, 18 Apr 2020 10:38:05 +0000 (12:38 +0200)]
docs: fixup heading-levels

I have no idea why pandoc messed up these headers...

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

4 years agodocs: fixup broken rst
Erik Faye-Lund [Tue, 4 Jun 2019 12:14:27 +0000 (14:14 +0200)]
docs: fixup broken rst

This removes a bit of markup, because it seems rst doesn't really
support markup on links this way. I'm not sure why Pandoc generates
this, but it misrenders.

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

4 years agodocs: escape trailing underscores properly
Erik Faye-Lund [Tue, 4 Jun 2019 14:45:37 +0000 (16:45 +0200)]
docs: escape trailing underscores properly

In reStructuredText, a trailing underscore means a hyperlink reference,
but it seems pandoc doesn't get this right for symbols that have already
been escaped. So let's manually fix these up.

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

4 years agodocs: escape asterisks
Erik Faye-Lund [Tue, 4 Jun 2019 14:40:20 +0000 (16:40 +0200)]
docs: escape asterisks

Seems pandoc messed these up, and left out some escpaing. Let's fix it
up by hand.

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

4 years agodocs: escape double colons
Erik Faye-Lund [Tue, 4 Jun 2019 12:14:27 +0000 (14:14 +0200)]
docs: escape double colons

It seems pandoc doesn't really understand that double colons needs to be
escaped. So let's fix that up by hand.

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

4 years agodocs: fixup botched table
Erik Faye-Lund [Thu, 2 May 2019 19:20:51 +0000 (21:20 +0200)]
docs: fixup botched table

Pandoc silently fails on colspan, breaking this table. But rst supports
this just fine, so let's just hand-convert this table instead.

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

4 years agodocs: delete no longer needed file
Erik Faye-Lund [Sat, 18 Apr 2020 09:32:07 +0000 (11:32 +0200)]
docs: delete no longer needed file

These files were used by the theming of the old website, and is no
longer needed.

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

4 years agoTEMP: remove rst-conversion scripts
Erik Faye-Lund [Sun, 19 Apr 2020 09:39:28 +0000 (11:39 +0200)]
TEMP: remove rst-conversion scripts

These have now served their purpose, so let's get rid of them again.

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

4 years agodocs: convert articles to reructuredtext
Erik Faye-Lund [Fri, 12 Jun 2020 18:09:42 +0000 (20:09 +0200)]
docs: convert articles to reructuredtext

This uses the previously added scripts to convert the documentation to
reStructuredText, which is both easier to read offline, and can be used
to generate modern HTML for online documentation.

No modification to the generated results have been done.

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

4 years agoTEMP: add rst-conversion scripts
Erik Faye-Lund [Mon, 10 Jun 2019 17:08:35 +0000 (19:08 +0200)]
TEMP: add rst-conversion scripts

This is just a temporary commit, adding the scripts that performs the
automated conversion of the docs. The next commit contains the results
of the conversion, and the commit following that removes these scripts
again.

To redo the conversion in the next commit, rebase interactively to edit
this commit and delete the next one, and run './update-docs.sh' from the
root directory. Then continue the rebasing, and resolve any conflicts
that might have occurred in the manual fixes on top. Finally, build the
documentation to ensure no further fixups are needed.

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

4 years agoiris: drop dead #include "config.h"
Eric Engestrom [Fri, 5 Jun 2020 08:39:19 +0000 (10:39 +0200)]
iris: drop dead #include "config.h"

There hasn't been a config.h in a long time (it was an artifact of the
autotool build).

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5350>

4 years agoi965: drop dead #include "config.h"
Eric Engestrom [Fri, 5 Jun 2020 08:38:31 +0000 (10:38 +0200)]
i965: drop dead #include "config.h"

There hasn't been a config.h in a long time (it was an artifact of the
autotool build).

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5350>

4 years agodocs: update the blocks of unused EGL enums assigned to us
Eric Engestrom [Wed, 3 Jun 2020 09:35:50 +0000 (11:35 +0200)]
docs: update the blocks of unused EGL enums assigned to us

See src/egl/generate/egl.xml for reference.

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

4 years agointel/genxml: replace gen_sort_tags.py MIT licence with SPDX equivalent
Eric Engestrom [Fri, 5 Jun 2020 14:45:29 +0000 (16:45 +0200)]
intel/genxml: replace gen_sort_tags.py MIT licence with SPDX equivalent

Much more readable with the same information :)

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5362>

4 years agointel/genxml: drop python 2 support for gen_sort_tags.py
Eric Engestrom [Fri, 5 Jun 2020 14:41:44 +0000 (16:41 +0200)]
intel/genxml: drop python 2 support for gen_sort_tags.py

Python 2 is dead and this script is only run by devs, all of which have
had python3 available for basically forever.

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5362>

4 years agov3d: add missing unlock() in error path
Eric Engestrom [Fri, 29 May 2020 18:19:22 +0000 (20:19 +0200)]
v3d: add missing unlock() in error path

CoverityID: 1435701
Fixes: e5a81ac70431502bc592 ("broadcom/vc5: Don't forget to get the BO offset when opening a dmabuf.")
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5263>

4 years agoturnip: remove some dead/redundant code
Jonathan Marek [Thu, 16 Apr 2020 19:44:06 +0000 (15:44 -0400)]
turnip: remove some dead/redundant code

A bit of cleanup to reduce noise in the codebase.

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

4 years agoci/bare-metal: Terminate the job with an error on kernel panic.
Eric Anholt [Tue, 9 Jun 2020 17:00:17 +0000 (10:00 -0700)]
ci/bare-metal: Terminate the job with an error on kernel panic.

Otherwise, we'll time out after 60 minutes of waiting for the run to
complete.

Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2651
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5393>

4 years agoci/bare-metal: Stop fetching the git tree.
Eric Anholt [Mon, 8 Jun 2020 22:36:16 +0000 (15:36 -0700)]
ci/bare-metal: Stop fetching the git tree.

Like for LAVA, make the tradeoff of moving the test scripts and data (55k)
into the artifacts in order to make the per-build jobs not have to pull
down the git tree (hundreds of MB when you don't hit a cached container
for your specific user, which I see happen multiple times a day in my CI
runs).

To do this, we have to be a bit more careful in some places about our
working directory potentially being dirty.

Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5393>

4 years agoci/bare-metal: Use the deqp-runner bits straight out of the artifacts.
Eric Anholt [Mon, 8 Jun 2020 22:09:51 +0000 (15:09 -0700)]
ci/bare-metal: Use the deqp-runner bits straight out of the artifacts.

We've already uploaded and downloaded them from fd.o and put them in the
rootfs, so we can clean up the extra prep work.

Our test job now extends from .test so that the artifacts' install dir
with all the scripts is extracted.  This required moving the dependency on
meson-testing to the x86 test-gl/test-vk job blocks.

Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5393>

4 years agoci/bare-metal: Make which test to run configurable.
Eric Anholt [Mon, 8 Jun 2020 22:23:52 +0000 (15:23 -0700)]
ci/bare-metal: Make which test to run configurable.

I'll use this to run tracie in a new job I'm working on.

Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5393>

4 years agoci/bare-metal: Reword the final output of the init script on the board.
Eric Anholt [Mon, 8 Jun 2020 21:55:53 +0000 (14:55 -0700)]
ci/bare-metal: Reword the final output of the init script on the board.

I'm going to be adding tracie, which isn't deqp.

Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5393>

4 years agopanfrost: Tiled to linear layout conversion
Icecream95 [Sun, 19 Apr 2020 03:44:17 +0000 (15:44 +1200)]
panfrost: Tiled to linear layout conversion

Tiling is expensive, so this patch converts textures that appear to be
used for streaming to a linear layout.

Performance of mpv is significantly improved, with software-decoded
1080p mp4 playback on RK3288 going from 30fps to 50fps when testing
with `--untimed --no-audio`.

To keep things simple, conversion only happens when updating the whole
texture and no mipmapping is used.

v2: Make it clear that the heuristic doesn't rely on a texture being
uninitialized, since layout switching code can get confusing (Alyssa).

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

4 years agopanfrost: Create a new sampler view bo when the layout changes
Icecream95 [Fri, 12 Jun 2020 08:14:02 +0000 (20:14 +1200)]
panfrost: Create a new sampler view bo when the layout changes

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

4 years agopanfrost: Move sampler view bo creation to a separate function
Icecream95 [Thu, 30 Apr 2020 03:21:17 +0000 (15:21 +1200)]
panfrost: Move sampler view bo creation to a separate function

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

4 years agointel/compiler: Drop opt_sampler_eot()
Matt Turner [Tue, 9 Jun 2020 20:51:10 +0000 (13:51 -0700)]
intel/compiler: Drop opt_sampler_eot()

Gen9 and Cherryview have the ability to mark texture instructions with
the End-of-thread bit under some conditions, which allows the texture
result to be written to the render target directly, rather than
returning to the EU.

In order to handle overlapping primitives correctly, we have to use the
'sendc' instruction which stalls until other threads potentially writing
to the same locations in the render target are retired. Unfortunately,
this stall happens before the texture is sampled (rather than in
parallel with stall), so for some literal edge cases (like the diagonal
edge between two triangles forming a rectangle) there can be a
performance penalty. As a result, it's probably not a good idea to use
this optimization in general.

I had planned to leave it enabled only for BLORP, where we use rectangle
primitives and are typically clearing/blitting an entire render target
without any overlapping primitives, but I noticed that the optimization
wasn't applied in some normal cases anyway. For example, in the piglit
test tests/shaders/glsl-fs-texture2d-bias.shader_test it is applied to
one BLORP-blit shader but not another due to some kind of mishandling of
register types (the destination register type of the texture operation
is UD while the color source of the render target write is F).

Additionally the instruction scheduler assumed that the combined texture
and render target write operation took 0 cycles, leading to cycle
estimates that are wildly inaccurate. Since the optimization was not
implemented for SIMD32 and our decision whether to use the SIMD32
program is made by comparing the estimated performance with that of the
SIMD16 shader, we wrongly threw out a bunch of SIMD32 programs that are
likely profitable.

   total cycles in shared programs: 472807891 -> 473784245 (0.21%)
   cycles in affected programs: 108277 -> 1084631 (901.72%)
   helped: 0
   HURT: 1290

   total sends in shared programs: 998955 -> 1000245 (0.13%)
   sends in affected programs: 1400 -> 2690 (92.14%)
   helped: 0
   HURT: 1290

   LOST:   0
   GAINED: 33

This patch shows no performance changes in Intel's Mesa performance CI.

Given the problems, the lack of evidence that the pass improves
performance, and the fact that the hardware feature was removed from
subsequent GPU generations, I think that the pass is not valuable and
should be removed.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5412>

4 years agoci: Disable some flaky tests on turnip.
Eric Anholt [Thu, 11 Jun 2020 16:00:35 +0000 (09:00 -0700)]
ci: Disable some flaky tests on turnip.

These have appeared more than once in the flake reporting channel, and a
couple of them have spuriously failed marge-bot merges.

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

4 years agoci: Fix weird filesystem globs appearing in failed test .qpa files.
Eric Anholt [Thu, 11 Jun 2020 20:19:11 +0000 (13:19 -0700)]
ci: Fix weird filesystem globs appearing in failed test .qpa files.

When you get a filure and go looking in the results, you'll find weird stuff like this in the XML:

Reference images fill undefined pixels with 3x3 grid pattern.
Attachment 0 (p' = p bin boot builds
dEQP-VK.renderpass.suballocation.attachment_allocation.grow_shrink.89.qpa
deqp dev etc home init install lib media mnt proc results root run sbin
set-job-env-vars.sh sys tmp usr var (1, 1, 1, 1) + (-1, -1, -1, 1))

because we were not quoting the line and 'p *' was getting expanded.

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

4 years agodocs: update calendar, add news item, and link releases notes for 20.0.8
Dylan Baker [Fri, 12 Jun 2020 17:02:05 +0000 (10:02 -0700)]
docs: update calendar, add news item, and link releases notes for 20.0.8

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

4 years agodocs: Add sha256sums for 20.0.8
Dylan Baker [Fri, 12 Jun 2020 01:37:10 +0000 (18:37 -0700)]
docs: Add sha256sums for 20.0.8

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

4 years agodocs: Add release notes for 20.0.8
Dylan Baker [Fri, 12 Jun 2020 01:17:30 +0000 (18:17 -0700)]
docs: Add release notes for 20.0.8

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

4 years agopan/mdg: Prefer type over regmode for schedule constraints
Alyssa Rosenzweig [Fri, 12 Jun 2020 16:22:54 +0000 (12:22 -0400)]
pan/mdg: Prefer type over regmode for schedule constraints

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

4 years agopan/mdg: Analyze types for 64-bitness in RA
Alyssa Rosenzweig [Fri, 12 Jun 2020 16:21:11 +0000 (12:21 -0400)]
pan/mdg: Analyze types for 64-bitness in RA

Instead of reg_mode.

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

4 years agopan/mdg: Explicitly type 64-bit uniform moves
Alyssa Rosenzweig [Fri, 12 Jun 2020 16:20:52 +0000 (12:20 -0400)]
pan/mdg: Explicitly type 64-bit uniform moves

Instead of relying on reg_mode.

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

4 years agoturnip: add emit renderpass cache flushes for sysmem 3D CmdClearAttachments
Jonathan Marek [Thu, 11 Jun 2020 13:49:23 +0000 (09:49 -0400)]
turnip: add emit renderpass cache flushes for sysmem 3D CmdClearAttachments

This clear path behaves like a draw, it needs the same flush as tu_draw.

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

4 years agoturnip: add layered 3D path clear for CmdClearAttachments
Jonathan Marek [Thu, 11 Jun 2020 13:34:28 +0000 (09:34 -0400)]
turnip: add layered 3D path clear for CmdClearAttachments

This fixes cases where the 3D path is used with layered rendering.

Fixes dEQP-VK.renderpass.suballocation.multisample_resolve.layers* failures

Note the blob's 3D fallback path behaves differently, and uses the
framebuffer information to clear each layer individually (changing the MRT
state each time). But that's not possible in all cases, and the blob fails
to clear properly in dEQP-VK.geometry.layered.*.secondary_cmd_buffer cases.
So this clear path is not based on the blob's behavior.

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

4 years agoturnip: share code between 3D blit/clear path and tu_pipeline
Jonathan Marek [Thu, 11 Jun 2020 12:38:18 +0000 (08:38 -0400)]
turnip: share code between 3D blit/clear path and tu_pipeline

Instead of filling out registers manually, fill out ir3 structs and re-use
code from tu_pipeline.

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

4 years agoturnip: pipeline program state refactor
Jonathan Marek [Thu, 11 Jun 2020 00:32:17 +0000 (20:32 -0400)]
turnip: pipeline program state refactor

This refactor simplifies things a bit, and will make it easier to share
some logic with tu_clear_blit (see next patches).

This changes the order in which some things are emitted, and emits less
for disabled shader stages. There's also as extra write to SP_GS_PRIM_SIZE
that is removed.

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

4 years agopanfrost: Demote mediump varyings to fp16
Alyssa Rosenzweig [Tue, 9 Jun 2020 22:15:20 +0000 (18:15 -0400)]
panfrost: Demote mediump varyings to fp16

Likewise lowp.

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

4 years agopanfrost: Override varying format to minimal precision
Alyssa Rosenzweig [Mon, 8 Jun 2020 22:11:29 +0000 (18:11 -0400)]
panfrost: Override varying format to minimal precision

Spec allows this!

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

4 years agopanfrost: Use shader_info harder
Alyssa Rosenzweig [Mon, 8 Jun 2020 22:05:21 +0000 (18:05 -0400)]
panfrost: Use shader_info harder

We already have this metadata..

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

4 years agopanfrost: Only store varying formats
Alyssa Rosenzweig [Wed, 10 Jun 2020 19:48:33 +0000 (15:48 -0400)]
panfrost: Only store varying formats

This reduces linking complexity.

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

4 years agopanfrost: Allow R/RG/RGB varyings
Alyssa Rosenzweig [Wed, 10 Jun 2020 19:47:45 +0000 (15:47 -0400)]
panfrost: Allow R/RG/RGB varyings

This can be a bandwidth savings.

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