mesa.git
4 years agonir: Add SSBO->global lowering pass
Alyssa Rosenzweig [Mon, 4 Nov 2019 22:27:18 +0000 (17:27 -0500)]
nir: Add SSBO->global lowering pass

To facilitate lowering SSBOs to globals, we need a load_ssbo_address
intrinsic. This intrinsic takes an SSBO index and loads the address in
global memory of the SSBO (likely implemented via a uniform in the
driver). In the future, we'll support bounds checking, but at the moment
this is not supported (this pass should only be used for trusted
contexts at the moment, i.e. contexts without robustness extensions).

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2753>

4 years agopanfrost: Rewrite texture descriptor creation logic
Alyssa Rosenzweig [Tue, 18 Feb 2020 19:20:16 +0000 (14:20 -0500)]
panfrost: Rewrite texture descriptor creation logic

Rather than creating partially within the Gallium create function and
monkeypatching on draw time with code split across N different files
with tight Gallium dependencies, let's streamline everything into a
series of maintainable routines in mesa/src/panfrost with no Gallium
dependencies, doing the entire texture creation in one-shot and thus
adding absolutely zero draw-time overhead (since we can allocate a BO
for the descriptor and upload ahead-of-time, so switching textures is as
cheap as switching pointers).

Was this worth it? You know, I'm not sure :|

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

4 years agopanfrost: Move format translation to root
Alyssa Rosenzweig [Tue, 18 Feb 2020 23:11:42 +0000 (18:11 -0500)]
panfrost: Move format translation to root

Since PIPE formats are now shared across Mesa we can do this, and the
routines themselves are good enough code that I'm happy to move them
here. We'll use them momentarily.

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

4 years agopanfrost: Move pan_afbc.c to root
Alyssa Rosenzweig [Tue, 18 Feb 2020 17:17:59 +0000 (12:17 -0500)]
panfrost: Move pan_afbc.c to root

Now that PIPE formats are shared across Mesa, this well-documented piece
of code is a good fit for root panfrost, let's move it and get a little
closer to taming the mess of resources.

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

4 years agopanfrost: Move checksum routines to root panfrost
Alyssa Rosenzweig [Tue, 18 Feb 2020 17:07:47 +0000 (12:07 -0500)]
panfrost: Move checksum routines to root panfrost

These are Gallium-independent and clean code; as is tradition, let's
hoist them up out of the Gallium driver as a bit of yak shaving as we
prepare to untangle the monster that is pan_resource.c

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

4 years agoutil: promote u_debug_memory.c to src/util
Erik Faye-Lund [Mon, 10 Feb 2020 12:08:28 +0000 (13:08 +0100)]
util: promote u_debug_memory.c to src/util

When os_memory_debug.h was promoted to src/util, this source-file on
which it depends on when the debug-flag is set on windows was left
out. So let's move this also.

It doesn't seem there's any way of triggering this issue right now, but
it seems better to correct this to avoid this from biting us in the ass
in the future.

Fixes: 88c4680b5a5 ("util: promote u_memory to src/util")
Reviewed-by: Dylan Baker <dylan@pnwbakers>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3844>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3844>

4 years agolima: implement PLB PP stream cache
Vasily Khoruzhick [Sun, 16 Feb 2020 10:25:10 +0000 (02:25 -0800)]
lima: implement PLB PP stream cache

Generating PLB PP stream is expensive. PLB PP stream content depends on
damage, and if damage consists of several rects it's impossible to come
up with a simple key.

Simplify damage to a single bounding box so we have a simple key
and cache PLB PP stream. Cache size is limited to 0.1% of system RAM and
once limit is reached least recently used entries are dropped.

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3834>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3834>

4 years agodocs: Update index, relnotes, and release-calendar for 20.0
Dylan Baker [Thu, 20 Feb 2020 22:15:37 +0000 (14:15 -0800)]
docs: Update index, relnotes, and release-calendar for 20.0

This includes the release schedule for 20.0.x. Currently there are four
planned releases, but I assume we'll need more before 20.1.0 is ready.

Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3896>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3896>

4 years agoDocs: Add 20.0.0 release notes
Dylan Baker [Wed, 19 Feb 2020 19:26:47 +0000 (11:26 -0800)]
Docs: Add 20.0.0 release notes

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

4 years agoradv: use RADEON_FLAG_ZERO_VRAM when creating the trace BO
Samuel Pitoiset [Thu, 20 Feb 2020 06:20:43 +0000 (07:20 +0100)]
radv: use RADEON_FLAG_ZERO_VRAM when creating the trace BO

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3888>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3888>

4 years agoradv/winsys: add a new flag that requests zerovram allocations
Samuel Pitoiset [Thu, 20 Feb 2020 06:19:27 +0000 (07:19 +0100)]
radv/winsys: add a new flag that requests zerovram allocations

This introduces RADON_FLAG_ZERO_VRAM.

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

4 years agogallivm: fix crash in emit_get_buffer_size
Roland Scheidegger [Wed, 19 Feb 2020 23:56:18 +0000 (00:56 +0100)]
gallivm: fix crash in emit_get_buffer_size

Seems a bit odd we extract a value from a vector in the first place
(as we always extract the first element), but llvm asserts if using
a zero-vector instead of zero as the index element.
Fixes piglit crashes for example in arb_shader_storage_buffer_object-layout-std140-write-shader.

Reviewed-by: Brian Paul <brianp@vmware.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3886>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3886>

4 years agogallivm: fix crash with bptc border color sampling
Roland Scheidegger [Wed, 19 Feb 2020 00:22:11 +0000 (01:22 +0100)]
gallivm: fix crash with bptc border color sampling

bptc uses fallback for decoding, but still need to handle border color
properly.

v2: adjust piglit gitlab-ci expectations

Reviewed-by: Brian Paul <brianp@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3886>

4 years agoaco: improve GFX9 1D ddx/ddy assertion
Rhys Perry [Thu, 20 Feb 2020 10:41:55 +0000 (10:41 +0000)]
aco: improve GFX9 1D ddx/ddy assertion

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2547
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3890>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3890>

4 years agopan/midgard: Identify clamp(x, -1.0, 1.0) flag
Alyssa Rosenzweig [Thu, 20 Feb 2020 12:41:26 +0000 (07:41 -0500)]
pan/midgard: Identify clamp(x, -1.0, 1.0) flag

So *that's* what's .unk2 was about :)

We still need to add an opt pass for it, but we can do that further down
the line.

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

4 years agopanfrost: Remove flush_frontbuffer
Alyssa Rosenzweig [Wed, 19 Feb 2020 12:56:43 +0000 (07:56 -0500)]
panfrost: Remove flush_frontbuffer

A relic from software rasterizers. Hardware drivers generally don't need
to implement this.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3878>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3878>

4 years agopanfrost: LogicOp support
Icecream95 [Thu, 20 Feb 2020 04:59:16 +0000 (17:59 +1300)]
panfrost: LogicOp support

The generated shaders are definitely not optimal, but for a feature
hardly anyone uses, it's probably good enough.

The XScreensaver demos quasicrystal, blitspin, bouboule, crystal and
munch now seem to work, with no obvious problems.

Currently this only works for 8-bit textures.

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

4 years agoi965: Do not generate D16 B5G6R5_UNORM configs on gen < 8
Danylo Piliaiev [Tue, 24 Dec 2019 12:19:24 +0000 (14:19 +0200)]
i965: Do not generate D16 B5G6R5_UNORM configs on gen < 8

We don't support MESA_FORMAT_Z_UNORM16 before Gen8, see
intel_screen_init_surface_formats.

As a consequence disables B5G6R5_UNORM configs with depth
on gen < 6.

Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2275
CC: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3206>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3206>

4 years agogitlab-ci: Automated testing with OpenGL traces
Alexandros Frantzis [Wed, 8 Jan 2020 15:46:46 +0000 (17:46 +0200)]
gitlab-ci: Automated testing with OpenGL traces

Introduce automated testing of Mesa by replaying traces with Renderdoc
or Apitrace.

For now only LLVMPipe is tested, but other drivers can be tested if
there's runners with the necessary hardware.

Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2935>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2935>

4 years agogitlab-ci: Disable the lima job for now
Tomeu Vizoso [Thu, 20 Feb 2020 06:56:11 +0000 (07:56 +0100)]
gitlab-ci: Disable the lima job for now

Some dEQP tests have started passing and it's taking a while to update
the expectations and skips list.

Disable for now so CI doesn't fail and stuff can be merged.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2935>

4 years agoutil: remove the dependency on kcmp.h
Marek Olšák [Tue, 18 Feb 2020 21:12:23 +0000 (16:12 -0500)]
util: remove the dependency on kcmp.h

Fixes: f76cbc7901f7 "util: Add os_same_file_description helper"
Acked-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3860>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3860>

4 years agointel/fs: Correctly handle multiply of fsign with a source modifier
Ian Romanick [Tue, 11 Feb 2020 20:00:00 +0000 (12:00 -0800)]
intel/fs: Correctly handle multiply of fsign with a source modifier

The other source of the multiply will be interpreted as a uint32_t in an
XOR instruction.  Any source modifiers with either not be interpreted at
all or will be misinterpreted due to the differing types.

If the other operand of the multiplication has a source modifier, just
emit an extra move to resolve the source modifiers.

The negation source modifier problem is difficult to reproduce due to an
algebraic optimization that changes (-a*b) to -(a*b).  However, changes
in MR !1359 push the negations back down.

On Gen7+ it might be possible to do slightly better for an abs() source
modifier by using BFI2 as a glorified copysign().

On Gen8+ it might be possible to do slightly better for a neg() source
modifier by emitting (~a ^ b).

There were no shader-db changes on any Intel platform, so I think we can
deal with that problem when it arises.

See also piglit!224.

Fixes: 06d2c116415 ("intel/fs: Add a scale factor to emit_fsign")
Reviewed-by: Matt Turner <mattst88@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3780>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3780>

4 years agogallium/auxiliary/vl: fix bob compute shaders for deint yuv
Thong Thai [Tue, 18 Feb 2020 17:11:39 +0000 (12:11 -0500)]
gallium/auxiliary/vl: fix bob compute shaders for deint yuv

Scales the Y-axis by 2 when using the Bob deinterlace filter.

Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2523
Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3857>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3857>

4 years agoradeonsi: Fix compute copies for subsampled formats.
Bas Nieuwenhuizen [Tue, 18 Feb 2020 14:22:39 +0000 (15:22 +0100)]
radeonsi: Fix compute copies for subsampled formats.

We cannot do image stores (or render) to subsampled formats.

Reinterpret as R32_UINT instead.

si_set_shader_image_desc already uses the blockwidth from
the view formats, so the image width adjustments are
already implemented.

This is still icky with mipmapping on GFX9+ though, but
since it is mostly a video format I don't think that will
be much of an issue and broken mipmapping is still better
than broken everything.

Fixes: e5167a9276d "radeonsi: disable SDMA on gfx8 to fix corruption on RX 580"
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2535
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3853>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3853>

4 years agoturnip: add option to force use of hw binning
Jonathan Marek [Tue, 18 Feb 2020 13:50:39 +0000 (08:50 -0500)]
turnip: add option to force use of hw binning

For running deqp tests which have small render sizes and don't otherwise
get coverage of hw binning / multiple tiles.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Reviewed-by: Eric Anholt <eric@anholt.net>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3851>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3851>

4 years agodocs: Mark 20.0.0-rc3 as done
Dylan Baker [Thu, 13 Feb 2020 19:37:30 +0000 (11:37 -0800)]
docs: Mark 20.0.0-rc3 as done

Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3819>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3819>

4 years agodocs: Mark 19.3.4 as done
Dylan Baker [Thu, 13 Feb 2020 19:36:03 +0000 (11:36 -0800)]
docs: Mark 19.3.4 as done

The calendar had an error, 19.3.4 and 19.3.5 had the same release date.
I've fixed the date for 19.3.5 and removed 19.3.6 which I don't believe
will be needed.

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

4 years agodocs: Add SHA256 sum for 19.3.4
Dylan Baker [Thu, 13 Feb 2020 19:26:12 +0000 (11:26 -0800)]
docs: Add SHA256 sum for 19.3.4

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

4 years agodocs: Add release notes for 19.3.4
Dylan Baker [Thu, 13 Feb 2020 19:06:56 +0000 (11:06 -0800)]
docs: Add release notes for 19.3.4

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

4 years agoanv: Drop anv_image.c:get_surface()
Chad Versace [Wed, 19 Feb 2020 19:05:37 +0000 (11:05 -0800)]
anv: Drop anv_image.c:get_surface()

It was called exactly once, and even there it returned the wrong surface
in a corner case.

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

4 years agonir/search: Use larger type to hold linearized index
Ian Romanick [Tue, 18 Feb 2020 23:31:37 +0000 (15:31 -0800)]
nir/search: Use larger type to hold linearized index

"index" is an offset into a linearized 3-dimensional array.  Starting
with fbd5359a0a6, the 3-dimensional array can have 43 elements in each
dimension.  43**3 = 79507, and that will overflow the uint16_t.

See also the discussion in MR !3765.

Fixes: fbd5359a0a6 ("nir/algebraic: Rearrange bcsel sequences generated by nir_opt_peephole_select")
Suggested-by: Connor Abbott <cwabbott0@gmail.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3871>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3871>

4 years agogallium/util: remove unused u_surfaces.c/h
Marek Olšák [Fri, 14 Feb 2020 22:57:01 +0000 (17:57 -0500)]
gallium/util: remove unused u_surfaces.c/h

Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3866>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3866>

4 years agomain/get: Converted type conversion macros to inline functions
Kristian H. Kristensen [Tue, 18 Feb 2020 22:41:38 +0000 (14:41 -0800)]
main/get: Converted type conversion macros to inline functions

Quiet warnings when called with a GLubyte:

  src/mesa/main/get.c:3215:19: warning: result of comparison of constant 32767 with expression of type 'GLubyte' (aka 'unsigned char') is always false [-Wtautological-constant-out-of-range-compare]
      params[0] = INT_TO_FIXED(((GLubyte *) p)[0]);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  src/mesa/main/get.c:78:38: note: expanded from macro 'INT_TO_FIXED'
                                 ~~~ ^ ~~~~~~~~

Delete ENUM_TO_INT64, ENUM_TO_FIXED and BOOLEAN_TO_INT64 which aren't
used.

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

4 years agoMark a few static inline helpers with ASSERTED
Kristian H. Kristensen [Tue, 18 Feb 2020 22:40:00 +0000 (14:40 -0800)]
Mark a few static inline helpers with ASSERTED

Quiet warnings in release builds where these look unused.

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

4 years agomesa/draw: Make sure all the unused fields are initialized to zero
Ian Romanick [Wed, 19 Feb 2020 00:41:03 +0000 (16:41 -0800)]
mesa/draw: Make sure all the unused fields are initialized to zero

Not initializing prim.indexed caused a few thousand failures on Intel
drivers.

I also compared the generated assembly with this change and before
a6d31589097.  The code is still somewhat improved, which I am assuming
was the original goal. _mesa_DrawArrays, for example, appears to drop an
instruction or two... though the body of the function is only one byte
shorter.

MR !3591 will eventually delete the uninitialized fields.  However, I
believe that explicitly initializing the whole thing is more future
proof.  This ensures that if someone adds fields in the future, they
will also be initialized.  Once the extra fields are removed, the two
implementations should generate idential code.

Fixes: a6d31589097 ("mesa: don't use memset in glDrawArrays")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3870>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3870>

4 years agomesa: Fix FLUSH_VERTICES in SubpixelPrecisionBiasNV.
Mathias Fröhlich [Mon, 23 Sep 2019 06:10:37 +0000 (08:10 +0200)]
mesa: Fix FLUSH_VERTICES in SubpixelPrecisionBiasNV.

The FLUSH_VERTICES macro is supposed to be called before the current
context state is changed.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
4 years agopanfrost: Remove old hack
Alyssa Rosenzweig [Tue, 18 Feb 2020 15:08:51 +0000 (10:08 -0500)]
panfrost: Remove old hack

I don't know why I thought this was needed.

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

4 years agopanfrost: Remove old comment
Alyssa Rosenzweig [Tue, 18 Feb 2020 15:07:51 +0000 (10:07 -0500)]
panfrost: Remove old comment

We already handle primitive restart earlier in the function.

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

4 years agopanfrost: Remove dirty tracking
Alyssa Rosenzweig [Tue, 18 Feb 2020 15:03:44 +0000 (10:03 -0500)]
panfrost: Remove dirty tracking

We never really respected it and it doesn't quite make sense for Mali
the way it was previously setup. The correct solution is to do push as
much code into CSO creation as possible.

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

4 years agoaco: add some helpers for filling/testing register ranges
Rhys Perry [Fri, 7 Feb 2020 17:07:37 +0000 (17:07 +0000)]
aco: add some helpers for filling/testing register ranges

We do this a lot

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

4 years agoaco: add RegisterFile
Rhys Perry [Fri, 7 Feb 2020 16:47:31 +0000 (16:47 +0000)]
aco: add RegisterFile

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

4 years agost/vdpau: Only call is_video_format_supported hook if needed
Michel Dänzer [Tue, 18 Feb 2020 11:12:01 +0000 (12:12 +0100)]
st/vdpau: Only call is_video_format_supported hook if needed

Namely only if *is_supported is true, otherwise the hook result can't
affect it.

Avoids

../src/gallium/state_trackers/vdpau/vdpau_private.h:138: FormatYCBCRToPipe: Assertion `0' failed.

with assertions enabled.

Fixes: 5d5b414a7b84 "st/vdpau: fix chroma_format handling in
                     VideoSurfaceQueryGetPutBitsYCbCrCapabilities"

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3848>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3848>

4 years agoiris: Do not dereference nullptr with pipe_reference
Danylo Piliaiev [Fri, 14 Feb 2020 13:37:23 +0000 (15:37 +0200)]
iris: Do not dereference nullptr with pipe_reference

../src/gallium/drivers/iris/iris_fence.h:54:8: runtime error: member access within null pointer of type 'struct iris_syncpt'

../src/gallium/drivers/iris/iris_fence.c:136:8: runtime error: member access within null pointer of type 'struct pipe_fence_handle'

Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3825>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3825>

4 years agoglsl/blob: Do not call memcpy if there is nothing to copy
Danylo Piliaiev [Tue, 28 Jan 2020 14:53:02 +0000 (16:53 +0200)]
glsl/blob: Do not call memcpy if there is nothing to copy

../src/util/blob.c:166:7: runtime error: null pointer passed as argument 2, which is declared to never be null
    #0 0x7fe51bc315df in blob_write_bytes ../src/util/blob.c:166
    #1 0x7fe51c7a7b9a in iris_disk_cache_store ../src/gallium/drivers/iris/iris_disk_cache.c:115
    #2 0x7fe51c7f444d in iris_compile_fs ../src/gallium/drivers/iris/iris_program.c:1693
    #3 0x7fe51c7fdcd9 in iris_create_fs_state ../src/gallium/drivers/iris/iris_program.c:2331
    #4 0x7fe519e871a3 in st_create_fp_variant ../src/mesa/state_tracker/st_program.c:1275
    #5 0x7fe519e89dd0 in st_get_fp_variant ../src/mesa/state_tracker/st_program.c:1435
    #6 0x7fe519ed51e1 in st_update_fp ../src/mesa/state_tracker/st_atom_shader.c:163
    #7 0x7fe519eb5d73 in st_validate_state ../src/mesa/state_tracker/st_atom.c:261
    #8 0x7fe519e4e0bf in prepare_draw ../src/mesa/state_tracker/st_draw.c:132
    #9 0x7fe519e4e76e in st_draw_vbo ../src/mesa/state_tracker/st_draw.c:184
    #10 0x7fe51aca5245 in vbo_save_playback_vertex_list ../src/mesa/vbo/vbo_save_draw.c:215
    #11 0x7fe51a25b1cc in ext_opcode_execute ../src/mesa/main/dlist.c:1126
    #12 0x7fe51a2f8d58 in execute_list ../src/mesa/main/dlist.c:11830
    #13 0x7fe51a34b2d0 in _mesa_CallList ../src/mesa/main/dlist.c:14267

Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3825>

4 years agointel/bufmgr: Cast bitshift to unsigned
Danylo Piliaiev [Tue, 28 Jan 2020 14:37:19 +0000 (16:37 +0200)]
intel/bufmgr: Cast bitshift to unsigned

../src/mesa/drivers/dri/i965/intel_buffer_objects.c:405:4: runtime error: left shift of 255 by 24 places cannot be represented in type 'int'
    #0 0x7f9404ac4ae1 in brw_map_buffer_range ../src/mesa/drivers/dri/i965/intel_buffer_objects.c:405
    #1 0x7f9405a9cb13 in vbo_save_map_vertex_store ../src/mesa/vbo/vbo_save_api.c:261
    #2 0x7f9405b6a89d in vbo_save_NewList ../src/mesa/vbo/vbo_save_api.c:1774
    #3 0x7f94051aba3d in _mesa_NewList ../src/mesa/main/dlist.c:14172

../src/gallium/drivers/iris/iris_resource.c:1725:61: runtime error: left shift of 255 by 24 places cannot be represented in type 'int'
    #0 0x7fe51c820c8e in iris_map_direct ../src/gallium/drivers/iris/iris_resource.c:1725
    #1 0x7fe51c82322c in iris_transfer_map ../src/gallium/drivers/iris/iris_resource.c:1895
    #2 0x7fe5202628be in u_transfer_helper_transfer_map ../src/gallium/auxiliary/util/u_transfer_helper.c:243
    #3 0x7fe51997c508 in pipe_buffer_map_range ../src/gallium/auxiliary/util/u_inlines.h:344
    #4 0x7fe51997ec8d in u_upload_alloc_buffer ../src/gallium/auxiliary/util/u_upload_mgr.c:221
    #5 0x7fe51997f24f in u_upload_alloc ../src/gallium/auxiliary/util/u_upload_mgr.c:254
    #6 0x7fe51ccf43af in upload_state ../src/gallium/drivers/iris/iris_state.c:323
    #7 0x7fe51d06963a in gen9_init_state ../src/gallium/drivers/iris/iris_state.c:7516
    #8 0x7fe51c7c2ea0 in iris_create_context ../src/gallium/drivers/iris/iris_context.c:294
    #9 0x7fe519dc729b in st_api_create_context ../src/mesa/state_tracker/st_manager.c:921
    #10 0x7fe5198c47ea in dri_create_context ../src/gallium/state_trackers/dri/dri_context.c:161
    #11 0x7fe519898aac in driCreateContextAttribs ../src/mesa/drivers/dri/common/dri_util.c:475

Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3825>

4 years agointel/compiler: Do not qsort zero sized array
Danylo Piliaiev [Tue, 28 Jan 2020 14:30:55 +0000 (16:30 +0200)]
intel/compiler: Do not qsort zero sized array

../src/intel/compiler/brw_nir_analyze_ubo_ranges.c:316:4: runtime error: null pointer passed as argument 1, which is declared to never be null
    #0 0x7f78f5916611 in brw_nir_analyze_ubo_ranges ../src/intel/compiler/brw_nir_analyze_ubo_ranges.c:316
    #1 0x7f78f255c189 in brw_codegen_wm_prog ../src/mesa/drivers/dri/i965/brw_wm.c:97
    #2 0x7f78f2565571 in brw_fs_precompile ../src/mesa/drivers/dri/i965/brw_wm.c:608
    #3 0x7f78f24edd2c in brw_shader_precompile ../src/mesa/drivers/dri/i965/brw_link.cpp:56
    #4 0x7f78f24f3af8 in brw_link_shader ../src/mesa/drivers/dri/i965/brw_link.cpp:381
    #5 0x7f78f39a302a in _mesa_glsl_link_shader ../src/mesa/program/ir_to_mesa.cpp:3119
    #6 0x7f78f3a43826 in create_new_program ../src/mesa/main/ff_fragment_shader.cpp:1133
    #7 0x7f78f3a43d00 in _mesa_get_fixed_func_fragment_program ../src/mesa/main/ff_fragment_shader.cpp:1163
    #8 0x7f78f325ddcd in update_program ../src/mesa/main/state.c:134
    #9 0x7f78f325fe64 in _mesa_update_state_locked ../src/mesa/main/state.c:360
    #10 0x7f78f32600f1 in _mesa_update_state ../src/mesa/main/state.c:394
    #11 0x7f78f2b3e587 in clear ../src/mesa/main/clear.c:169
    #12 0x7f78f2b3e587 in _mesa_Clear ../src/mesa/main/clear.c:242

Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3825>

4 years agobrw_fs: Avoid zero size vla
Danylo Piliaiev [Tue, 28 Jan 2020 14:27:20 +0000 (16:27 +0200)]
brw_fs: Avoid zero size vla

../src/intel/compiler/brw_fs.cpp:2247:46: runtime error: variable length array bound evaluates to non-positive value 0
    #0 0x7f78f5697678 in fs_visitor::assign_constant_locations() ../src/intel/compiler/brw_fs.cpp:2247
    #1 0x7f78f571d29e in fs_visitor::optimize() ../src/intel/compiler/brw_fs.cpp:7361
    #2 0x7f78f574eb84 in fs_visitor::run_fs(bool, bool) ../src/intel/compiler/brw_fs.cpp:8022
    #3 0x7f78f575641b in brw_compile_fs ../src/intel/compiler/brw_fs.cpp:8408
    #4 0x7f78f255c8e4 in brw_codegen_wm_prog ../src/mesa/drivers/dri/i965/brw_wm.c:123
    #5 0x7f78f2565571 in brw_fs_precompile ../src/mesa/drivers/dri/i965/brw_wm.c:608
    #6 0x7f78f24edd2c in brw_shader_precompile ../src/mesa/drivers/dri/i965/brw_link.cpp:56
    #7 0x7f78f24f3af8 in brw_link_shader ../src/mesa/drivers/dri/i965/brw_link.cpp:381
    #8 0x7f78f39a302a in _mesa_glsl_link_shader ../src/mesa/program/ir_to_mesa.cpp:3119
    #9 0x7f78f3a43826 in create_new_program ../src/mesa/main/ff_fragment_shader.cpp:1133
    #10 0x7f78f3a43d00 in _mesa_get_fixed_func_fragment_program ../src/mesa/main/ff_fragment_shader.cpp:1163
    #11 0x7f78f325ddcd in update_program ../src/mesa/main/state.c:134
    #12 0x7f78f325fe64 in _mesa_update_state_locked ../src/mesa/main/state.c:360
    #13 0x7f78f32600f1 in _mesa_update_state ../src/mesa/main/state.c:394
    #14 0x7f78f2b3e587 in clear ../src/mesa/main/clear.c:169
    #15 0x7f78f2b3e587 in _mesa_Clear ../src/mesa/main/clear.c:242

Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3825>

4 years agobrw_nir: Cast bitshift to unsigned
Danylo Piliaiev [Tue, 28 Jan 2020 14:25:46 +0000 (16:25 +0200)]
brw_nir: Cast bitshift to unsigned

../src/intel/compiler/brw_nir.c:979:40: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
    #0 0x7f78f590d10b in brw_nir_apply_sampler_key ../src/intel/compiler/brw_nir.c:979
    #1 0x7f78f590e07b in brw_nir_apply_key ../src/intel/compiler/brw_nir.c:1057
    #2 0x7f78f5754b45 in brw_compile_fs ../src/intel/compiler/brw_fs.cpp:8347
    #3 0x7f78f255c8e4 in brw_codegen_wm_prog ../src/mesa/drivers/dri/i965/brw_wm.c:123
    #4 0x7f78f2565571 in brw_fs_precompile ../src/mesa/drivers/dri/i965/brw_wm.c:608
    #5 0x7f78f24edd2c in brw_shader_precompile ../src/mesa/drivers/dri/i965/brw_link.cpp:56
    #6 0x7f78f24f3af8 in brw_link_shader ../src/mesa/drivers/dri/i965/brw_link.cpp:381
    #7 0x7f78f39a302a in _mesa_glsl_link_shader ../src/mesa/program/ir_to_mesa.cpp:3119
    #8 0x7f78f3a43826 in create_new_program ../src/mesa/main/ff_fragment_shader.cpp:1133
    #9 0x7f78f3a43d00 in _mesa_get_fixed_func_fragment_program ../src/mesa/main/ff_fragment_shader.cpp:1163
    #10 0x7f78f325ddcd in update_program ../src/mesa/main/state.c:134
    #11 0x7f78f325fe64 in _mesa_update_state_locked ../src/mesa/main/state.c:360
    #12 0x7f78f32600f1 in _mesa_update_state ../src/mesa/main/state.c:394
    #13 0x7f78f2b3e587 in clear ../src/mesa/main/clear.c:169
    #14 0x7f78f2b3e587 in _mesa_Clear ../src/mesa/main/clear.c:242

Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3825>

4 years agodocs/envvars: document RADV_TEX_ANISO
Samuel Pitoiset [Wed, 19 Feb 2020 07:46:00 +0000 (08:46 +0100)]
docs/envvars: document RADV_TEX_ANISO

Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2524
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3873>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3873>

4 years agogallium: Only define PIPE_ALIGNSTACK on x86.
Eric Anholt [Tue, 17 Dec 2019 05:03:32 +0000 (21:03 -0800)]
gallium: Only define PIPE_ALIGNSTACK on x86.

At least arm and arm64 don't respect this attribute, producing compiler
warnings in lp_test_format.c.  The gcc and LLVM docs for the attribute
only talk about them being needed on x86.

Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3867>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3867>

4 years agollvmpipe: Fix another uninitialized value warning, on init_val.
Eric Anholt [Tue, 28 Jan 2020 21:04:10 +0000 (13:04 -0800)]
llvmpipe: Fix another uninitialized value warning, on init_val.

It's only used in the vote_ieq paths, but gcc doesn't see that.

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

4 years agollvmpipe: Silence uninitialized variable warning about "scissor"
Eric Anholt [Tue, 17 Dec 2019 04:56:14 +0000 (20:56 -0800)]
llvmpipe: Silence uninitialized variable warning about "scissor"

nr_planes is only > 3 when scissor is enabled, but gcc doesn't see it.

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

4 years agollvmpipe: Silence uninitialized variable warning about "vals"
Eric Anholt [Tue, 17 Dec 2019 04:55:23 +0000 (20:55 -0800)]
llvmpipe: Silence uninitialized variable warning about "vals"

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

4 years agollvmpipe: Fix warning about uninitialized "op" in the NIR path.
Eric Anholt [Tue, 17 Dec 2019 04:53:59 +0000 (20:53 -0800)]
llvmpipe: Fix warning about uninitialized "op" in the NIR path.

Similar to TGSI, move the switch statement and use more unreachable().

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

4 years agollvmpipe: Silence uninitialized variable warning about "chan"
Eric Anholt [Tue, 17 Dec 2019 04:52:22 +0000 (20:52 -0800)]
llvmpipe: Silence uninitialized variable warning about "chan"

Both arms of an if define it, but gcc doesn't notice.

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

4 years agollvmpipe: Silence "possibly uninitialized value" warning for ssbo_limit.
Eric Anholt [Tue, 17 Dec 2019 04:05:18 +0000 (20:05 -0800)]
llvmpipe: Silence "possibly uninitialized value" warning for ssbo_limit.

The condition for the use matches the def, but you can't trust a compiler
to notice.

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

4 years agollvmpipe: Fix real uninitialized use of "atype" for SEMANTIC_FACE
Eric Anholt [Tue, 28 Jan 2020 21:14:47 +0000 (13:14 -0800)]
llvmpipe: Fix real uninitialized use of "atype" for SEMANTIC_FACE

Fixes: 502548a09c5a ("gallivm/llvmpipe: add support for front facing in sysval.")
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3867>

4 years agoradv: Squelch possibly-undefined warning
Eric Anholt [Tue, 17 Dec 2019 04:00:00 +0000 (20:00 -0800)]
radv: Squelch possibly-undefined warning

The same condition is used in the def as in the use, but gcc wasn't
figuring it out.

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

4 years agoci: Extend the a630 flake list to reduce spurious failures.
Eric Anholt [Tue, 18 Feb 2020 20:44:57 +0000 (12:44 -0800)]
ci: Extend the a630 flake list to reduce spurious failures.

These are the tests I've seen flake twice while logged in to the IRC
channel this year.  Also include fragment_out.random.5 which fully
spuriously failed recently.

Closes: #2516
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3862>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3862>

4 years agomesa: fix immediate mode with tessellation and varying patch vertices
Marek Olšák [Fri, 14 Feb 2020 04:14:47 +0000 (23:14 -0500)]
mesa: fix immediate mode with tessellation and varying patch vertices

Cc: 19.3 20.0 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3861>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3861>

4 years agomesa: don't use memset in glDrawArrays
Marek Olšák [Wed, 12 Feb 2020 20:32:50 +0000 (15:32 -0500)]
mesa: don't use memset in glDrawArrays

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3861>

4 years agomesa: document _mesa_prim::begin/end
Marek Olšák [Tue, 11 Feb 2020 01:47:11 +0000 (20:47 -0500)]
mesa: document _mesa_prim::begin/end

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3861>

4 years agovbo: remove redundant code in vbo_exec_fixup_vertex
Marek Olšák [Tue, 11 Feb 2020 02:58:07 +0000 (21:58 -0500)]
vbo: remove redundant code in vbo_exec_fixup_vertex

Callers of this function also set FLUSH_STORED_VERTICES for attr == 0.

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3861>

4 years agovbo: remove dead code in vbo_can_merge_prims
Marek Olšák [Tue, 11 Feb 2020 02:24:26 +0000 (21:24 -0500)]
vbo: remove dead code in vbo_can_merge_prims

This is only used by immediate mode and the values are immutable.

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3861>

4 years agost/mesa: try to fix MSVC build failure due to ALWAYS_INLINE
Marek Olšák [Fri, 14 Feb 2020 21:53:42 +0000 (16:53 -0500)]
st/mesa: try to fix MSVC build failure due to ALWAYS_INLINE

Fixes: 11db8e0e00a72884ba9f ("st/mesa: optimize st_update_array with ALWAYSINLINE")
Tested-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3861>

4 years agofreedreno/registers: cleanup CP_SET_MARKER
Rob Clark [Mon, 17 Feb 2020 17:57:24 +0000 (09:57 -0800)]
freedreno/registers: cleanup CP_SET_MARKER

1) Name RM6_COMPUTE, and rename RM6_ENDVIS (from RM6_BLIT) to better
   reflect what it actually does
2) Cleanup open-coded mode enum values
3) Removed unused 0x10

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

4 years agofreedreno: quiet INFO_MSG
Rob Clark [Sat, 15 Feb 2020 23:32:12 +0000 (15:32 -0800)]
freedreno: quiet INFO_MSG

Probably not useful unless LIBGL_DEBUG is set to something.

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

4 years agofreedreno/a6xx: few register updates
Rob Clark [Sat, 15 Feb 2020 23:14:24 +0000 (15:14 -0800)]
freedreno/a6xx: few register updates

Nothing used by mesa, but crashdec tool uses a few of these.  And since
the practice is these days to sync mesa->envytools, adding these on the
mesa side first.

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

4 years agofreedreno/registers: teach gen_header.py about a3xx_regid
Rob Clark [Sat, 15 Feb 2020 23:06:44 +0000 (15:06 -0800)]
freedreno/registers: teach gen_header.py about a3xx_regid

This is a builtin type (treated as uint, but with special type-aware
decoding) in envytools/cffdump.  Lets teach gen_header.py about it and
drop the enum hack in the xml so I don't have to keep deleting the enum
when I sync the xml back to the freedreno envytools tree.

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

4 years agomeson: explicitly disallow unsupported build directory layout
Eric Engestrom [Sat, 15 Feb 2020 10:53:26 +0000 (10:53 +0000)]
meson: explicitly disallow unsupported build directory layout

Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2512
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3832>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3832>

4 years agointel/gen12: Take into account opcode when decoding SWSB
Caio Marcelo de Oliveira Filho [Fri, 31 Jan 2020 18:20:25 +0000 (10:20 -0800)]
intel/gen12: Take into account opcode when decoding SWSB

The interpretation of the fields is different depending whether the
instruction is a SEND/MATH or not.

This fixes the disassembly output for non-SEND/MATH instructions that
have both in-order and out-of-order dependencies.  Their dependencies
were wrongly represented as `@A $B` when the correct would be `@A
$B.dst`.

Fixes: 6154cdf924f ("intel/eu/gen12: Add auxiliary type to represent SWSB information during codegen.")
Fixes: 83612c01271 ("intel/disasm/gen12: Disassemble software scoreboard information.")
Acked-by: Francisco Jerez <currojerez@riseup.net>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3660>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3660>

4 years agopanfrost: Remove enum panfrost_memory_layout
Alyssa Rosenzweig [Tue, 18 Feb 2020 14:49:13 +0000 (09:49 -0500)]
panfrost: Remove enum panfrost_memory_layout

It duplicates mali_texture_layout. Let's use the native hardware enum
and spare a pointless translation.

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

4 years agoradv: Advertise VK_KHR_shader_non_semantic_info
Caio Marcelo de Oliveira Filho [Fri, 13 Dec 2019 21:21:44 +0000 (13:21 -0800)]
radv: Advertise VK_KHR_shader_non_semantic_info

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3856>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3856>

4 years agoanv: Advertise VK_KHR_shader_non_semantic_info
Caio Marcelo de Oliveira Filho [Fri, 13 Dec 2019 18:52:58 +0000 (10:52 -0800)]
anv: Advertise VK_KHR_shader_non_semantic_info

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

4 years agovulkan: Update the XML and headers to 1.2.133
Jason Ekstrand [Tue, 18 Feb 2020 15:49:41 +0000 (09:49 -0600)]
vulkan: Update the XML and headers to 1.2.133

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

4 years agopanfrost: Debitfieldize mali_uniform_buffer_meta
Alyssa Rosenzweig [Sun, 16 Feb 2020 22:01:02 +0000 (17:01 -0500)]
panfrost: Debitfieldize mali_uniform_buffer_meta

It fits snugly in a u64, just give a macro for direct computation rather
than fudging around with bitfields. Not sure if this actually matters
with well-optimized compilers but it makes the code subjectively cleaner
so it's worth it for that if nothing else.

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

4 years agopanfrost: Avoid reading GPU memory when packing vertices
Alyssa Rosenzweig [Sun, 16 Feb 2020 21:41:29 +0000 (16:41 -0500)]
panfrost: Avoid reading GPU memory when packing vertices

These occurred unintentionally as a byproduct of bitfields, etc. Whoops.

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

4 years agopanfrost: Cleanup transfer_map
Alyssa Rosenzweig [Tue, 18 Feb 2020 13:30:10 +0000 (08:30 -0500)]
panfrost: Cleanup transfer_map

A lot of these checks are obsolete since we've started tracking BO
accesses correctly.

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

4 years agopanfrost: Update scoreboarding notes
Alyssa Rosenzweig [Sun, 16 Feb 2020 18:58:09 +0000 (13:58 -0500)]
panfrost: Update scoreboarding notes

Our understanding of the set/write value jobs has evolved, so let's
update the rules.

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

4 years agopanfrost: Rewrite scoreboarding routines
Alyssa Rosenzweig [Sun, 16 Feb 2020 19:59:11 +0000 (14:59 -0500)]
panfrost: Rewrite scoreboarding routines

Rather than manipulating job descriptor headers as fat pointers (slow)
and using fancy manipulation functions for programatically building the
tree in arbitrary orders (slow and complicated) and then having to do a
topological sort at runtime every frame (slow) which requires traversing
said headers in GPU memory (slow!)... we finally know enough about
the hardware to just get things right the first time, or second for
next_job linking. So rip out all that code and replace it with a much
better routine to create, upload, and queue a job all in one (since now
it's the same operation essentially - which is much better for memory
access patterns, by the way) and most everything falls into place
gracefully according to the rules we've set out. Even wallpapering isn't
*so* terrible if you just... move that one little... giant... hack out
of sight... ahem....

panfrost_scoreboard_link_batch is no longer a bottleneck, mostly because
it no longer exists :-)

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

4 years agopanfrost: Print synced traces to stderr
Alyssa Rosenzweig [Tue, 18 Feb 2020 13:05:11 +0000 (08:05 -0500)]
panfrost: Print synced traces to stderr

To match the existing behaviour.

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

4 years agopanfrost: Implement PAN_DBG_SYNC with pandecode/minimal
Alyssa Rosenzweig [Tue, 18 Feb 2020 12:50:19 +0000 (07:50 -0500)]
panfrost: Implement PAN_DBG_SYNC with pandecode/minimal

This way we avoid duplicating job traversal logic.

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

4 years agopan/decode: Cleanup pandecode_jc
Alyssa Rosenzweig [Tue, 18 Feb 2020 12:46:03 +0000 (07:46 -0500)]
pan/decode: Cleanup pandecode_jc

Some of this code is, to put it mildly, impossibly ancient horsedropping
crazy cruft.

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

4 years agopan/decode: Add `minimal` mode
Alyssa Rosenzweig [Tue, 18 Feb 2020 12:43:51 +0000 (07:43 -0500)]
pan/decode: Add `minimal` mode

We would like a mode to skip decoding job payloads so we can just
inspect for faults.

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

4 years agost/nir: Unify inputs_read/outputs_written before serializing NIR
Danylo Piliaiev [Wed, 12 Feb 2020 10:45:55 +0000 (12:45 +0200)]
st/nir: Unify inputs_read/outputs_written before serializing NIR

Otherwise input/output interfaces won't be unified when reading
NIR from a cache.

Fixes piglit test on iris:
  clip-distance-vs-gs-out.shader_test

Fixes: 19ed12af
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3787>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3787>

4 years agozink: do not convert bools to/from uint
Erik Faye-Lund [Mon, 10 Feb 2020 14:45:22 +0000 (15:45 +0100)]
zink: do not convert bools to/from uint

Since bools are the only 1-bit type, we always know if an SSA-def is a
bool or not. So we don't need to marshal it to uint.

So let's simplify the code a bit here.

Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3763>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3763>

4 years agozink/spirv: uint -> raw
Erik Faye-Lund [Mon, 10 Feb 2020 15:04:45 +0000 (16:04 +0100)]
zink/spirv: uint -> raw

Similarly to the previous commit, the important bit here is the rawness
of these variables, not the uintness. So let's rename these to reflect
this.

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

4 years agozink/spirv: unit_value -> raw_value
Erik Faye-Lund [Mon, 10 Feb 2020 14:26:41 +0000 (15:26 +0100)]
zink/spirv: unit_value -> raw_value

The point here isn't that the value is uint, but that is't untreated. So
raw seems more fitting as a description.

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

4 years agozink/spirv: rename functions a bit
Erik Faye-Lund [Fri, 7 Feb 2020 22:16:17 +0000 (23:16 +0100)]
zink/spirv: rename functions a bit

The code is about to change so the whole uint-story isn't as true as it
used to be. So let's soften up the semantics a bit here; we only care
about if we're doing a typed ot untyped store here, really.

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

4 years agozink/spirv: prefer store_dest over store_dest_uint
Erik Faye-Lund [Fri, 7 Feb 2020 22:52:43 +0000 (23:52 +0100)]
zink/spirv: prefer store_dest over store_dest_uint

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

4 years agozink/spirv: do not reinvent store_dest
Erik Faye-Lund [Fri, 7 Feb 2020 22:52:08 +0000 (23:52 +0100)]
zink/spirv: do not reinvent store_dest

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

4 years agozink: confused compilation macro usage for zink in target helpers.
luc [Sat, 15 Feb 2020 04:55:16 +0000 (12:55 +0800)]
zink: confused compilation macro usage for zink in target helpers.

Fixes: 8d46e35d16e ("zink: introduce opengl over vulkan")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3831>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3831>

4 years agozink: do not report texture-samplers for unsupported stages
Erik Faye-Lund [Fri, 14 Feb 2020 14:42:51 +0000 (15:42 +0100)]
zink: do not report texture-samplers for unsupported stages

This caused the max combined samplers to be reported as artificially
high.

Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3826>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3826>

4 years agozink: fix binding-usage
Erik Faye-Lund [Fri, 14 Feb 2020 15:50:42 +0000 (16:50 +0100)]
zink: fix binding-usage

Rewriting the variable bindings is nasty and error-prone, and this code
triggered an assert when trying to resolve API bindings into Vulkan
bindings.

This code still needs some tweaks, but this makes things much better,
and fixes a few bugs where we incorrectly accounted for the
array-indexes.

Fixes: 1c3f4c07047 ("zink: fixup sampler-usage")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3826>

4 years agoradv: add a comment about VK_AMD_mixed_attachment_samples on GFX6-GFX7
Samuel Pitoiset [Thu, 13 Feb 2020 08:52:53 +0000 (09:52 +0100)]
radv: add a comment about VK_AMD_mixed_attachment_samples on GFX6-GFX7

There is some CTS failures.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3808>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3808>

4 years agoradv: enable VK_NV_compute_shader_derivatives on GFX6-GFX7
Samuel Pitoiset [Thu, 13 Feb 2020 08:43:25 +0000 (09:43 +0100)]
radv: enable VK_NV_compute_shader_derivatives on GFX6-GFX7

All Crucible tests pass.

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

4 years agoradv: enable VK_EXT_sampler_filter_minmax on GFX6
Samuel Pitoiset [Thu, 13 Feb 2020 08:22:04 +0000 (09:22 +0100)]
radv: enable VK_EXT_sampler_filter_minmax on GFX6

Works fine.

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

4 years agoradv: enable shaderStorageImageMultisample on GFX6-GFX7
Samuel Pitoiset [Thu, 13 Feb 2020 08:00:22 +0000 (09:00 +0100)]
radv: enable shaderStorageImageMultisample on GFX6-GFX7

It was disabled because untested, but CTS is happy with it.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3808>

4 years agoegl: Implement getImage/putImage on pbuffer swrast.
Mathias Fröhlich [Fri, 13 Dec 2019 16:09:56 +0000 (17:09 +0100)]
egl: Implement getImage/putImage on pbuffer swrast.

This change adds getImage/putImage callbacks to the swrast pbuffer
loader extension.
This fixes a recent crash with Weston as well as a crashing
test with classic swrast without an official gitlab issue.

v2: Determine bytes per pixel differently and fix non X11 builds.
v3: Plug memory leak and fix crash on out of bounds access.
    (Daniel Stone)
v4: Follow the code structure of the wayland get/put image
    implementation - hopefully being more obvious.
    Handle 64 bits formats.
    Use BufferSize directly.
    (Emil Velikov)
v5: Change pixel size computation.
    (Eric Engestrom)

Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2219
Fixes: d6edccee8da "egl: add EGL_platform_device support"
Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3711>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3711>

4 years agolima: rename lima_submit to lima_job
Qiang Yu [Mon, 10 Feb 2020 08:25:11 +0000 (16:25 +0800)]
lima: rename lima_submit to lima_job

Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3755>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3755>