mesa.git
3 years agoutil: Explicitly call the unpack functions from inside bptc pack/unpack.
Eric Anholt [Thu, 13 Aug 2020 20:23:35 +0000 (13:23 -0700)]
util: Explicitly call the unpack functions from inside bptc pack/unpack.

We were calling the table-based unpack functions from inside the pack and
unpack table's methods, so if anything included these pack functions (such
as a call to a table-based pack function), you'd pull in all of unpack as
well.

By calling them explicitly, we save some overhead in these functions
(switch statement, address math on the zero x,y arguments) anyway.

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

3 years agoutil: Expose rgba unpack/fetch functions as external functions as well.
Eric Anholt [Thu, 13 Aug 2020 20:10:04 +0000 (13:10 -0700)]
util: Expose rgba unpack/fetch functions as external functions as well.

Like we just did for pack functions for freedreno, it will be useful to be
able to pick out a specific rgba unpack function instead of going through
the table.

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

3 years agoiris: Drop buffer support in resource_from_handle
Nanley Chery [Mon, 27 Jul 2020 17:05:07 +0000 (10:05 -0700)]
iris: Drop buffer support in resource_from_handle

The callers don't seem to pass targets of PIPE_BUFFER. Stop nesting an
if-else block by dropping support for this target.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6311>

3 years agoiris: Add and use iris_resource_configure_main
Nanley Chery [Tue, 21 Jul 2020 16:01:46 +0000 (09:01 -0700)]
iris: Add and use iris_resource_configure_main

Reduce duplication of ISL surface creation code for main surfaces. This
is similar to iris_resource_configure_aux.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6311>

3 years agoiris: Move size/offset calculations out of configure_aux
Nanley Chery [Wed, 15 Jul 2020 21:46:25 +0000 (14:46 -0700)]
iris: Move size/offset calculations out of configure_aux

Not all callers want the result of the offset and size calculations.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6311>

3 years agoiris: Drop old comment on clear color BO allocation
Nanley Chery [Thu, 16 Jul 2020 00:42:26 +0000 (17:42 -0700)]
iris: Drop old comment on clear color BO allocation

Iris hasn't used a clear color BO on gen9 since commit 1cd13ccee7b.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6311>

3 years agoiris: Drop unused resource allocation optimization
Nanley Chery [Wed, 15 Jul 2020 19:02:40 +0000 (12:02 -0700)]
iris: Drop unused resource allocation optimization

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6311>

3 years agoiris: Drop iris_resource_alloc_separate_aux
Nanley Chery [Wed, 15 Jul 2020 18:21:39 +0000 (11:21 -0700)]
iris: Drop iris_resource_alloc_separate_aux

When this function was called, the res->mod_info->aux_usage parameter
was ISL_AUX_USAGE_NONE. As a result, no aux buffer was ever allocated.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6311>

3 years agoegl: drop another indentation level in _eglFindDisplay() by inverting an if
Eric Engestrom [Tue, 18 Aug 2020 09:48:54 +0000 (11:48 +0200)]
egl: drop another indentation level in _eglFindDisplay() by inverting an if

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6361>

3 years agoegl: drop an indentation level in _eglFindDisplay() by replacing break/if with a...
Eric Engestrom [Tue, 18 Aug 2020 09:45:34 +0000 (11:45 +0200)]
egl: drop an indentation level in _eglFindDisplay() by replacing break/if with a goto

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6361>

3 years agogitlab-ci: fix quoting of variables passed down to bare-metal runners
Eric Engestrom [Tue, 18 Aug 2020 22:47:16 +0000 (00:47 +0200)]
gitlab-ci: fix quoting of variables passed down to bare-metal runners

Eric Anholt identified the issue when merging one of my MRs: the
variable contained words in '`' backticks, which caused them to be
executed by the bare metal runner's shell.

Quote the value printed using bash's shell expansion feature to make
sure anything in the future will be properly quoted.

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6389>

3 years agogitlab-ci: fix testing whether a variable with a given name is set or not
Eric Engestrom [Wed, 19 Aug 2020 14:02:44 +0000 (16:02 +0200)]
gitlab-ci: fix testing whether a variable with a given name is set or not

The previous code considered unset variables the same as set-but-empty;
sometimes setting a variable as something empty is meaningful, so let's
pass them through properly.

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6389>

3 years agodocs: update calendar and link releases notes for 20.1.6
Eric Engestrom [Wed, 19 Aug 2020 21:11:19 +0000 (23:11 +0200)]
docs: update calendar and link releases notes for 20.1.6

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

3 years agodocs: add release notes for 20.1.6
Eric Engestrom [Wed, 19 Aug 2020 20:55:49 +0000 (22:55 +0200)]
docs: add release notes for 20.1.6

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

3 years agov3d/compiler: add v3dv_prog_data_size helper
Alejandro Piñeiro [Sat, 25 Jul 2020 22:52:17 +0000 (00:52 +0200)]
v3d/compiler: add v3dv_prog_data_size helper

Main use case is to help to implement Vulkan PipelineCache, as we are
serializing/deserializing the prog_data too.

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

3 years agocompiler/types: Allow interfaces in get_explicit_type_for_size_align
Jason Ekstrand [Tue, 28 Jul 2020 23:01:19 +0000 (18:01 -0500)]
compiler/types: Allow interfaces in get_explicit_type_for_size_align

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6210>

3 years agonir/large_constants: Handle incomplete derefs
Jason Ekstrand [Thu, 16 Jul 2020 01:12:33 +0000 (20:12 -0500)]
nir/large_constants: Handle incomplete derefs

This pass works entirely with variables, all we have to do is ignore any
derefs we see which we can't chase back to the variable.  The one
interesting case we have to handle is if we have a complex use of a
deref_var.  In that case, we have to flag it non-constant.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6210>

3 years agonir/find_array_copies: Handle cast derefs
Jason Ekstrand [Thu, 16 Jul 2020 00:13:35 +0000 (19:13 -0500)]
nir/find_array_copies: Handle cast derefs

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6210>

3 years agonir/builder: Add a nir_iand_imm helper
Jason Ekstrand [Thu, 11 Jun 2020 22:32:11 +0000 (17:32 -0500)]
nir/builder: Add a nir_iand_imm helper

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6210>

3 years agonir: Initialize nir_ssa_def::live_index
Jason Ekstrand [Fri, 31 Jul 2020 15:36:35 +0000 (10:36 -0500)]
nir: Initialize nir_ssa_def::live_index

Previously, this was left uninitialized.  Let's initialize it to an
obviously bogus value so we notice if anyone ever tries to use stale
liveness data.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6210>

3 years agoclover/nir: Use the correct address mode for shared
Jason Ekstrand [Wed, 19 Aug 2020 17:15:23 +0000 (12:15 -0500)]
clover/nir: Use the correct address mode for shared

Shared memory needs to have 64-bit pointers but we want 32-bit offsets
most of the time.  This is exactly what 32bit_offset_as_64bit is for.

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367>

3 years agoclover/nir: Stop computing the global address format twice
Jason Ekstrand [Wed, 19 Aug 2020 16:32:32 +0000 (11:32 -0500)]
clover/nir: Stop computing the global address format twice

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367>

3 years agoclover/nir: Stop setting ubo_addr_format
Jason Ekstrand [Wed, 19 Aug 2020 16:30:19 +0000 (11:30 -0500)]
clover/nir: Stop setting ubo_addr_format

We unconditionally set constant_as_global = true so we should never get
UBO access out of spirv_to_nir.

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367>

3 years agonv50/ir/nir: support load_work_dim
Karol Herbst [Tue, 18 Aug 2020 12:29:24 +0000 (14:29 +0200)]
nv50/ir/nir: support load_work_dim

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367>

3 years agonvc0: handle nr being 0 in nvc0_set_global_bindings
Karol Herbst [Wed, 20 May 2020 15:40:28 +0000 (17:40 +0200)]
nvc0: handle nr being 0 in nvc0_set_global_bindings

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367>

3 years agonv50/ir/nir: fix global_atomic_comp_swap
Karol Herbst [Sat, 7 Mar 2020 15:17:48 +0000 (16:17 +0100)]
nv50/ir/nir: fix global_atomic_comp_swap

Fixes: 20d0ae464c4a ("nv50/ir: implement global atomics and handle it for nir")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367>

3 years agoclover/nir: support int64 atomics if the device supports it
Karol Herbst [Thu, 5 Mar 2020 22:00:27 +0000 (23:00 +0100)]
clover/nir: support int64 atomics if the device supports it

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Pierre Moreau <dev@pmoreau.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367>

3 years agonv50/ir/nir: assert on unknown alu ops
Karol Herbst [Sat, 14 Dec 2019 18:21:11 +0000 (19:21 +0100)]
nv50/ir/nir: assert on unknown alu ops

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367>

3 years agonve4: fix uploading unaligned sized input buffers
Karol Herbst [Sun, 22 Apr 2018 00:01:18 +0000 (02:01 +0200)]
nve4: fix uploading unaligned sized input buffers

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367>

3 years agoclover/nir: Call vars_to_explicit_types for shared memory
Karol Herbst [Sat, 15 Aug 2020 11:33:29 +0000 (13:33 +0200)]
clover/nir: Call vars_to_explicit_types for shared memory

This is required for shared memory buffers declared with an explicit
size inside the kernel.

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367>

3 years agonir/glsl: Add glsl_get_cl_type_size_align helper
Jesse Natalie [Thu, 28 May 2020 17:24:34 +0000 (10:24 -0700)]
nir/glsl: Add glsl_get_cl_type_size_align helper

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6367>

3 years agofreedreno/ir3: Fix assertion failures dumping CS high full regs.
Eric Anholt [Fri, 14 Aug 2020 18:52:57 +0000 (11:52 -0700)]
freedreno/ir3: Fix assertion failures dumping CS high full regs.

The *2 here would bump into the *2 in regset, causing assertion failures
dumping CS programs.  Just set the mergedregs flag on a6xx, and don't
duplicate the mergedregs logic.  If you're dealing with new HW where we
don't know if mergedregs is set, you may need to tweak the flag during
disasm setup for the stats to make sense.

Fixes: f7bd3456d79a ("freedreno: deduplicate a3xx+ disasm")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6323>

3 years agofreedreno/cffdec: When .mergedregs is set, don't count half regs.
Eric Anholt [Mon, 17 Aug 2020 17:58:06 +0000 (10:58 -0700)]
freedreno/cffdec: When .mergedregs is set, don't count half regs.

This matches what ir3.c does in the mergedregs case: just count max full
reg used.  This flag is unset so far, but will be soon and keeps our
output comparable between blob and freedreno.

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

3 years agofreedreno/ir3: Fix compiler warning from the setjmp fails path.
Eric Anholt [Fri, 14 Aug 2020 18:56:18 +0000 (11:56 -0700)]
freedreno/ir3: Fix compiler warning from the setjmp fails path.

The TRY() macro doesn't call the contents if we fail to set up
setjmp/longjmp.

Fixes: 3d6e4a201af0 ("freedreno/decode: try harder to not crash in disasm")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6323>

3 years agonir/lower_input_attachments: Support loading layer id via gl_ViewIndex
Connor Abbott [Wed, 1 Jul 2020 15:29:45 +0000 (17:29 +0200)]
nir/lower_input_attachments: Support loading layer id via gl_ViewIndex

This is required on adreno when the special multiview mode is switched
on.

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

3 years agotu: Use an input for the layer when lowering input attachments
Connor Abbott [Wed, 1 Jul 2020 15:21:47 +0000 (17:21 +0200)]
tu: Use an input for the layer when lowering input attachments

Also remove a hack that's no longer needed. This should fix input
attachments with layered rendering.

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

3 years agoradv: Use an input for the layer when lowering input attachments
Connor Abbott [Wed, 1 Jul 2020 15:19:11 +0000 (17:19 +0200)]
radv: Use an input for the layer when lowering input attachments

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

3 years agonir/lower_input_attachments: Support loading layer id as an input
Connor Abbott [Wed, 1 Jul 2020 15:16:01 +0000 (17:16 +0200)]
nir/lower_input_attachments: Support loading layer id as an input

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

3 years agonir/lower_input_attachments: Refactor to use an options struct
Connor Abbott [Wed, 1 Jul 2020 14:55:46 +0000 (16:55 +0200)]
nir/lower_input_attachments: Refactor to use an options struct

While we're at it, fold the details of how to load the fragcoord into
load_fragcoord().

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

3 years agonir/spirv: Add the option to keep ViewIndex as an input
Connor Abbott [Tue, 30 Jun 2020 11:47:22 +0000 (13:47 +0200)]
nir/spirv: Add the option to keep ViewIndex as an input

This is necessary for fragment shaders on adreno.

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

3 years agoRevert "gitlab-ci: reuse container_post_build when building the test images"
Andres Gomez [Wed, 19 Aug 2020 14:18:43 +0000 (17:18 +0300)]
Revert "gitlab-ci: reuse container_post_build when building the test images"

ccache is installed as ephemeral. Hence, the build will fail if used
by the post_build script after removing it.

This reverts commit 40ab6d77c06fe5c0882fe3320583a6a2b1355eab.

Signed-off-by: Andres Gomez <agomez@igalia.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6391>

3 years agofreedreno/a6xx: fix occlusion query with more than one tile
Rob Clark [Tue, 18 Aug 2020 22:12:06 +0000 (15:12 -0700)]
freedreno/a6xx: fix occlusion query with more than one tile

We need to emit epilogue after each tile, not just after the last tile.

Fixes: 13fc03f4c0e ("freedreno/a6xx: Avoid stalling for occlusion queries")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6376>

3 years agofreedreno/a6xx: only generate streamout for draw pass shader
Rob Clark [Tue, 18 Aug 2020 19:00:37 +0000 (12:00 -0700)]
freedreno/a6xx: only generate streamout for draw pass shader

Previously we were doing this both for draw and binning pass.. resulting
that the stateobj contained first the incorrect state (based on binning
pass shader with varyings DCEd) followed by the correct state.

Also, in the streamout case we should link binning pass VS against the
real FS, rather than the dummy FS, so that OUTLOC's match (since same
streamout stateobj is used for both draw and binning pass).

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

3 years agofreedreno/registers: SC_WAIT_WC is not a6xx
Rob Clark [Tue, 18 Aug 2020 21:00:42 +0000 (14:00 -0700)]
freedreno/registers: SC_WAIT_WC is not a6xx

I think this is probably only a2xx, but it was masking
WRITE_PRIMITIVE_COUNTS on a6xx.

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

3 years agonir/opt_remove_phis: optimize out phis with undef
Rhys Perry [Mon, 17 Aug 2020 11:18:24 +0000 (12:18 +0100)]
nir/opt_remove_phis: optimize out phis with undef

This removes some phis that loop unrolling can create.

fossil-db (Navi):
Totals from 349 (0.26% of 135946) affected shaders:
SpillSGPRs: 52 -> 41 (-21.15%)
CodeSize: 3179968 -> 3169920 (-0.32%); split: -0.33%, +0.01%
Instrs: 626965 -> 624712 (-0.36%); split: -0.37%, +0.01%

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

3 years agoegl/x11_dri3: implement EGL_KHR_swap_buffers_with_damage
Eric Engestrom [Fri, 22 May 2020 23:45:42 +0000 (01:45 +0200)]
egl/x11_dri3: implement EGL_KHR_swap_buffers_with_damage

Passes all of `dEQP-EGL.functional.swap_buffers_with_damage.*`:

    Passed:        36/54 (66.7%)
    Failed:        0/54 (0.0%)
    Not supported: 18/54 (33.3%)
    Warnings:      0/54 (0.0%)
    Waived:        0/54 (0.0%)

The "not supported" ones are the `preserve_buffer_*` tests, which is not
supported on X11/DRI3.

Cc: 20.2 <mesa-stable>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3030
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6132>

3 years agoegl/x11_dri3: enable & require xfixes 2.0
Eric Engestrom [Sat, 8 Aug 2020 17:21:58 +0000 (19:21 +0200)]
egl/x11_dri3: enable & require xfixes 2.0

Cc: 20.2 <mesa-stable>
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6132>

3 years agoci: Run deqp-gles2 on RadeonSI
Tomeu Vizoso [Wed, 19 Aug 2020 07:55:47 +0000 (09:55 +0200)]
ci: Run deqp-gles2 on RadeonSI

We have one more DUT in the Collabora lab, use it to run GLES2 tests.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6385>

3 years agopan/mdg: Fix auxiliary load/store swizzle packing
Alyssa Rosenzweig [Fri, 14 Aug 2020 15:03:46 +0000 (11:03 -0400)]
pan/mdg: Fix auxiliary load/store swizzle packing

It needs to respect the existing swizzle, as well as the type size.

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

3 years agopan/mdg: Fix printing of r26 ld/st sources post-RA
Alyssa Rosenzweig [Fri, 14 Aug 2020 15:02:47 +0000 (11:02 -0400)]
pan/mdg: Fix printing of r26 ld/st sources post-RA

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

3 years agopan/mdg: Identify barrier out-of-order field
Alyssa Rosenzweig [Thu, 13 Aug 2020 21:14:58 +0000 (17:14 -0400)]
pan/mdg: Identify barrier out-of-order field

All barrier types are implied regardless, this is an optimization for
out-of-order.

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

3 years agopan/mdg: Handle 32-bit offsets from store_shared
Alyssa Rosenzweig [Thu, 13 Aug 2020 22:56:40 +0000 (18:56 -0400)]
pan/mdg: Handle 32-bit offsets from store_shared

Implicitly zero-extended for the 64-bit address.

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

3 years agopan/mdg: Ensure barrier op is set on texture
Alyssa Rosenzweig [Thu, 13 Aug 2020 21:15:11 +0000 (17:15 -0400)]
pan/mdg: Ensure barrier op is set on texture

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Fixes: 92c808cd475 ("pan/mdg: eliminate references to ins->texture.op")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6321>

3 years agopanfrost: Fix shared memory size computation
Alyssa Rosenzweig [Thu, 13 Aug 2020 22:11:12 +0000 (18:11 -0400)]
panfrost: Fix shared memory size computation

Based on core count. Also, avoid some of the more complex programming
and stick to powers-of-two for now.

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

3 years agopanfrost: Fix WRITES_GLOBAL bit
Alyssa Rosenzweig [Thu, 13 Aug 2020 23:08:38 +0000 (19:08 -0400)]
panfrost: Fix WRITES_GLOBAL bit

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Fixes: dce7722ef89 ("panfrost: Handle writes_memory correctly")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6321>

3 years agoandroid: freedreno: Another build fix
Roman Stratiienko [Tue, 4 Aug 2020 10:45:39 +0000 (13:45 +0300)]
android: freedreno: Another build fix

During build on Android 10, build error occurred:

'''
[ 26% 456/1718] Gen Header: libfreedreno_registers_32 <= a3xx.xml.h
FAILED: out/target/product/pinephone/gen/STATIC_LIBRARIES/libfreedreno_registers_intermediates/registers/adreno/a3xx.xml.h
/bin/bash -c "PATH=/usr/bin:\$PATH python3 external/mesa3d/src/freedreno/registers/gen_header.py external/mesa3d/src/freedreno/registers/adreno/a3xx.xml > out/target/product/pinephone/gen/STATIC_LIBRARIES/libfreedreno_registers_intermediates/registers/adreno/a3xx.xml.h"
Traceback (most recent call last):
  File "external/mesa3d/src/freedreno/registers/gen_header.py", line 470, in <module>
    main()
  File "external/mesa3d/src/freedreno/registers/gen_header.py", line 446, in main
    xml_file = sys.argv[2]
IndexError: list index out of range
'''

Align build rules with meson fixes it.

Fixes: 62ebd342 ("freedreno/registers: split header build into subdirs")
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Acked-by: Rob Clark <robdclark@gmail.com>
Acked-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6170>

3 years agoradv: restrict exported symbols with static llvm
Emil Velikov [Thu, 6 Aug 2020 08:14:07 +0000 (09:14 +0100)]
radv: restrict exported symbols with static llvm

Like the gallium --version-script magic but for radv.

The long term goal is to make LLVM support optional, remove it even, so
let's keep the hunk in an if block.

v2: fold if checks (Eric)
v3 (Tomeu): Remove spaces within [] (Dylan)

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> (v1)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6203>

3 years agofreedreno: Destroy syncobj too when destroying fence
Eduardo Lima Mitev [Wed, 19 Aug 2020 07:57:33 +0000 (09:57 +0200)]
freedreno: Destroy syncobj too when destroying fence

This is a missing part of freedreno EXT_semaphore support,
recently merged as part of series adding EXT_external_objects. This hunk was
actually lost due to a mistake on my side while doing a rebase.

Reviewed-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6383>

3 years agogitlab-ci: reorder container_post_build call for arm64_test image
Andres Gomez [Mon, 17 Aug 2020 09:53:35 +0000 (12:53 +0300)]
gitlab-ci: reorder container_post_build call for arm64_test image

And remove a redundant call to ccache --show-stats

Signed-off-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6343>

3 years agogitlab-ci: reuse container_post_build when building the test images
Andres Gomez [Mon, 17 Aug 2020 09:49:52 +0000 (12:49 +0300)]
gitlab-ci: reuse container_post_build when building the test images

Signed-off-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6343>

3 years agopanfrost: Hoist assert from bind to create
Alyssa Rosenzweig [Fri, 14 Aug 2020 22:34:56 +0000 (18:34 -0400)]
panfrost: Hoist assert from bind to create

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

3 years agopanfrost: Remove useless comment
Alyssa Rosenzweig [Fri, 14 Aug 2020 22:33:11 +0000 (18:33 -0400)]
panfrost: Remove useless comment

Less than useless, actually - it's not even factually correct.

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

3 years agopanfrost: Hoist add_fbo_bo call
Alyssa Rosenzweig [Fri, 14 Aug 2020 22:31:05 +0000 (18:31 -0400)]
panfrost: Hoist add_fbo_bo call

Move it to batch initialization, to take it out of the clear/draw path.
This should make sense - as soon as the batch is created, we need to
hold the refference. Functionally there shouldn't be unused batches
floating around anyway.

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

3 years agopanfrost: Drop QUADS primitive convert
Alyssa Rosenzweig [Fri, 14 Aug 2020 22:27:32 +0000 (18:27 -0400)]
panfrost: Drop QUADS primitive convert

Even Bifrost retains QUADS support.

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

3 years agopanfrost: Drop panfrost_invalidate_frame
Alyssa Rosenzweig [Fri, 14 Aug 2020 22:22:36 +0000 (18:22 -0400)]
panfrost: Drop panfrost_invalidate_frame

Only used to initialize active_queries once at context initialization,
then unneeded.

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

3 years agopanfrost: Drop ZSA null checks in draws
Alyssa Rosenzweig [Fri, 14 Aug 2020 21:56:09 +0000 (17:56 -0400)]
panfrost: Drop ZSA null checks in draws

Likewise.

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

3 years agopanfrost: Drop rasterizer null checks in draw calls
Alyssa Rosenzweig [Fri, 14 Aug 2020 21:50:44 +0000 (17:50 -0400)]
panfrost: Drop rasterizer null checks in draw calls

rasterizer must be non-null when draw_vbo is called (indeed, we assert
this there), so anything in the per-draw graphics path can safely assume
we have a rasterizer object bound.

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

3 years agopanfrost: Decontextualize rasterizer
Alyssa Rosenzweig [Fri, 14 Aug 2020 21:38:36 +0000 (17:38 -0400)]
panfrost: Decontextualize rasterizer

Tightens the scope.

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

3 years agoradv: track and report if a logical device is lost
Samuel Pitoiset [Mon, 13 Jul 2020 11:59:48 +0000 (13:59 +0200)]
radv: track and report if a logical device is lost

This currently covers two situations where it's obvious that
the GPU hung:

1) when wait-of-idle doesn't finish in a finite time
2) when a CS submission is cancelled by the kernel

There is still probably some other situations that aren't yet handled.

According to the Vulkan spec, some operations should return
VK_ERROR_DEVICE_LOST when the corresponding logical device is
known to be lost.

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

3 years agoci: Update kernel used in LAVA to 5.8-based drm-misc
Tomeu Vizoso [Tue, 18 Aug 2020 09:20:20 +0000 (11:20 +0200)]
ci: Update kernel used in LAVA to 5.8-based drm-misc

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

3 years agoci: Fix URL to imagediff page in traces dashboard
Tomeu Vizoso [Wed, 5 Aug 2020 09:56:06 +0000 (11:56 +0200)]
ci: Fix URL to imagediff page in traces dashboard

It has been updated recently.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Reviewed-By: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6185>

3 years agoci: Test Panfrost with more traces
Tomeu Vizoso [Wed, 5 Aug 2020 08:52:19 +0000 (10:52 +0200)]
ci: Test Panfrost with more traces

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Reviewed-By: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6185>

3 years agoci: Split traces.yml file per driver
Tomeu Vizoso [Wed, 5 Aug 2020 08:17:26 +0000 (10:17 +0200)]
ci: Split traces.yml file per driver

As drivers have been tested with more and more traces, the yml file is
becoming a bit unwieldy. As more drivers are going to be tested with
traces, and more traces will be used, split them in per-driver files so
the size stays manageable.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Reviewed-By: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6185>

3 years agollvmpipe/nir: lower some more packing at nir level.
Dave Airlie [Tue, 18 Aug 2020 19:15:50 +0000 (05:15 +1000)]
llvmpipe/nir: lower some more packing at nir level.

Fixes:
dEQP-VK.glsl.builtin.function.pack_unpack.*

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

3 years agollvmpipe: lower mul 2x32_64
Dave Airlie [Tue, 18 Aug 2020 19:14:16 +0000 (05:14 +1000)]
llvmpipe: lower mul 2x32_64

Fixes:
dEQP-VK.glsl.builtin.function.integer.umulextended*
dEQP-VK.glsl.builtin.function.integer.imulextended*

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

3 years agollvmpipe: lower cs local index from id
Dave Airlie [Tue, 7 Apr 2020 01:13:38 +0000 (11:13 +1000)]
llvmpipe: lower cs local index from id

Fixes:
dEQP-VK.glsl.atomic_operations.*_shared

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

3 years agogallivm/nir: split tex/sampler indirect offsets
Dave Airlie [Fri, 19 Jun 2020 07:00:46 +0000 (17:00 +1000)]
gallivm/nir: split tex/sampler indirect offsets

vulkan has these separate, should be fine for GL as well as
the values will be the same anyways.

Fixes:
dEQP-VK.binding_model.shader_access.secondary_cmd_buf.uniform_texel_buffer.*
dEQP-VK.binding_model.descriptorset_random.sets4.noarray.ubolimitlow.sbolimitlow.sampledimglow.outimgtexlow.noiub.uab.vert.noia*
dEQP-VK.binding_model.descriptor_copy.graphics.uniform_texel_buffer.*

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

3 years agogallivm/nir: fixup compact TCS variable storage.
Dave Airlie [Tue, 7 Apr 2020 01:11:51 +0000 (11:11 +1000)]
gallivm/nir: fixup compact TCS variable storage.

This fixes a lot of tessellation shaders, since tess factors
get emitted with spir-v now.

Fixes a bunch of:
dEQP-VK.tessellation*
along with 7000 others.

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

3 years agogallium/nir/tgsi: add support for compact variables
Dave Airlie [Mon, 17 Aug 2020 04:52:04 +0000 (14:52 +1000)]
gallium/nir/tgsi: add support for compact variables

vulkan tessellation uses compact variables for tess factors,
and trips over in the nir->tgsi info gathering, add support
to the info extraction for compact inputs and outputs.

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

3 years agollvmpipe: lower uadd_carry/usub_borrow.
Dave Airlie [Mon, 17 Aug 2020 01:42:42 +0000 (11:42 +1000)]
llvmpipe: lower uadd_carry/usub_borrow.

Fixes:
dEQP-VK.glsl.builtin.function.integer.uaddcarry.*
dEQP-VK.glsl.builtin.function.integer.usubborrow.*

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

3 years agogallivm/sample: fix lod query on array textures.
Dave Airlie [Mon, 17 Aug 2020 01:09:19 +0000 (11:09 +1000)]
gallivm/sample: fix lod query on array textures.

The lod query doesn't take a layer, but the code tries to use one,
detect lodq and don't use a layer in those cases.

There appears to be no GL tests for this behaviour, but the vulkan
CTS hits it.

Fixes:
dEQP-VK.glsl.texture_functions.query.texturequerylod.*

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

3 years agogallivm/nir: add imod support
Dave Airlie [Fri, 19 Jun 2020 07:07:31 +0000 (17:07 +1000)]
gallivm/nir: add imod support

Just adds support for the imod instruction

Fixes:
dEQP-VK.glsl.operator.binary_operator.mod.*

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

3 years agogallium/nir/tgsi: reindent some code in the nir->tgsi info (v2)
Dave Airlie [Tue, 18 Aug 2020 18:52:06 +0000 (04:52 +1000)]
gallium/nir/tgsi: reindent some code in the nir->tgsi info (v2)

v2: Eric pointed out some code changes snuck in here.

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

3 years agollvmpipe/cs: update compute counters not fragment shader.
Dave Airlie [Fri, 19 Jun 2020 05:27:51 +0000 (15:27 +1000)]
llvmpipe/cs: update compute counters not fragment shader.

This was updating the wrong counters.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Fixes: a6f6ca37c82bb6810971 ("llvmpipe: add initial shader create/bind/destroy variants framework.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339>

3 years agovallium: fix input attachment lowering variable shadowing
Dave Airlie [Tue, 18 Aug 2020 05:17:57 +0000 (15:17 +1000)]
vallium: fix input attachment lowering variable shadowing

This caused a bunch of tests to crash due to pos being shadowed
wrongly.

Fixes:
dEQP-VK.binding_model.descriptor_copy.graphics.input_attachment*

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Fixes: b38879f8c5f57b7f1802 ("vallium: initial import of the vulkan frontend")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339>

3 years agofreedreno: support GL_EXT_semaphore
Hyunjun Ko [Sun, 19 Apr 2020 15:20:41 +0000 (17:20 +0200)]
freedreno: support GL_EXT_semaphore

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4565>

3 years agofreedreno: Enable GL_EXT_memory_object and GL_EXT_memory_object_fd
Eduardo Lima Mitev [Tue, 7 Apr 2020 06:54:16 +0000 (08:54 +0200)]
freedreno: Enable GL_EXT_memory_object and GL_EXT_memory_object_fd

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

3 years agofreedreno: Implement pipe screen's get_device/driver_uuid()
Eduardo Lima Mitev [Thu, 11 Jun 2020 16:54:10 +0000 (18:54 +0200)]
freedreno: Implement pipe screen's get_device/driver_uuid()

v2: Don't need to prefix included uuid headers path with
    'freedreno'. (Rob Clark)

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

3 years agofreedreno: implement pipe screen's resource_from_memobj
Eduardo Lima Mitev [Wed, 8 Apr 2020 11:59:48 +0000 (13:59 +0200)]
freedreno: implement pipe screen's resource_from_memobj

v2: Use 'prsc' and 'rsc', 'pmemobj' and 'memobj' for consistency with
    rest of the code. (Rob Clark)

v3: - Use the existing flag PIPE_BIND_LINEAR instead (Marek Olšák)
    - Assert that the resource is not intended for scanout (Rob Clark)
    - Use the fd_resource_allocate_and_resolve() helper (Rob Clark)
    - Check that bo's resolved size fit into memobj's bo size (Rob Clark)

v4: Don't steal memobj's bo, but share it instead by getting a new
ref. (Rob Clark)

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

3 years agofreedreno/layout: Move hard-coded minimum width for UBWC to a macro
Eduardo Lima Mitev [Wed, 13 May 2020 10:51:36 +0000 (12:51 +0200)]
freedreno/layout: Move hard-coded minimum width for UBWC to a macro

This will also allow reuse of the value later in this series.

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

3 years agofreedreno: Refactor fd_resource_create_with_modifiers() into a helper
Eduardo Lima Mitev [Tue, 18 Aug 2020 08:04:02 +0000 (10:04 +0200)]
freedreno: Refactor fd_resource_create_with_modifiers() into a helper

The helper just allocates and resolves layout, but does not deal with
scanout buffers nor allocation of the actual bo.

The resolved bo size is returned as an output argument.

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

3 years agofreedreno: Implement memory object create/destroy for GL_EXT_memory_object
Eduardo Lima Mitev [Tue, 7 Apr 2020 06:52:25 +0000 (08:52 +0200)]
freedreno: Implement memory object create/destroy for GL_EXT_memory_object

v2: Add implementation of fd_memobj_destroy() virtual func, which was newly
added.

v3: The memobj bo must be non-NULL and destroyed as part of memobj
destruction (instead of its reference being stolen). (Rob Clark)

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

3 years agost: Pass TextureTiling option from texture to memory obj
Eduardo Lima Mitev [Thu, 7 May 2020 15:28:44 +0000 (17:28 +0200)]
st: Pass TextureTiling option from texture to memory obj

If tiling is linear, also adds the corresponding pipe bind flag
to the resource template when creating a new resource from the
memory object.

Modified TexParameteri to update the TextureTiling option only when the
texObj is not immutable (before TexStorageMem*DEXT is called to create
the texture from external memory).

v2: Ensure that memory object is not NULL before setting the
TextureTiling option (fixes TexStorage*D).

v3: Also add flag PIPE_SHARED to bindings (needed for some gallium
drivers).

v4: Use PIPE_BIND_LINEAR instead of adding a new PIPE_RESOURCE_FLAG
(Marek Olšák)

Co-authored-by: Eduardo Lima Mitev <elima@igalia.com>
Co-authored-by: Eleni Maria Stea <estea@igalia.com>
Co-authored-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4565>

3 years agospirv: Don't emit RMW for vector indexing in shared or global
Jason Ekstrand [Mon, 17 Aug 2020 15:51:32 +0000 (10:51 -0500)]
spirv: Don't emit RMW for vector indexing in shared or global

Anything that fails the is_external_block check is getting the
vtn_local_load/store path which does read-modify-write which isn't
correct if the variable mode can be written cross-workgroup.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6372>

3 years agoradv: Fix handling of attribs 16-31.
Bas Nieuwenhuizen [Sat, 8 Aug 2020 22:51:15 +0000 (00:51 +0200)]
radv: Fix handling of attribs 16-31.

We really need to update the enum for consistency, but that involves
a bunch of GL & bitfield work which is error-prone, so since this is
a fix for stable lets do the simple things.

Confirmed that nothing in radv/aco/nir/spirv uses MAX_VERT_ATTRIB
except the one thing I bumped.

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

3 years agoradv: Override the uniform buffer offset alignment for World War Z.
Bas Nieuwenhuizen [Thu, 30 Jul 2020 00:49:33 +0000 (02:49 +0200)]
radv: Override the uniform buffer offset alignment for World War Z.

Game does the equivalent of a

ALIGN(..., minUniformBufferOffsetAlignment >> 4)

which breaks when said alignment is <16 with a SIGFPE.

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

3 years agodriconf: Support selection by Vulkan applicationName.
Bas Nieuwenhuizen [Thu, 30 Jul 2020 00:33:01 +0000 (02:33 +0200)]
driconf: Support selection by Vulkan applicationName.

This adds applicationName + version through like engineName.

Rationale: A game (World War Z) includes the store name in the
executable name, so has multiple executable names.

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

3 years agoegl/android: Add support for CrOS buffer info perform op
Kristian H. Kristensen [Tue, 11 Aug 2020 02:05:05 +0000 (19:05 -0700)]
egl/android: Add support for CrOS buffer info perform op

This uses a new gralloc perform op that returns the buffer info we
need.  No need to guess at formats, hard code offsets and recalculate
strides.  This also gives us the format modifier as well as aux planes
for compressed RGBA buffers.

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

3 years agoegl/android: Use droid_create_image_from_prime_fds() in get_back_bo()
Kristian H. Kristensen [Tue, 11 Aug 2020 01:44:34 +0000 (18:44 -0700)]
egl/android: Use droid_create_image_from_prime_fds() in get_back_bo()

This function wants to create a __DRIimage for an ANativeWindowBuffer,
which is mostly the same logic as when we create an EGLImage for an
ANativeWindowBuffer.  Reuse droid_create_image_from_prime_fds().

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

3 years agoegl/android: Move droid_create_image_from_prime_fds() function up
Kristian H. Kristensen [Tue, 11 Aug 2020 01:42:33 +0000 (18:42 -0700)]
egl/android: Move droid_create_image_from_prime_fds() function up

We'll use it for get_back_bo() next.

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