Rhys Perry [Fri, 14 Aug 2020 16:40:13 +0000 (17:40 +0100)]
radv: fix null memcpy and zero-sized malloc
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6206>
Rhys Perry [Thu, 6 Aug 2020 13:39:04 +0000 (14:39 +0100)]
radv: align pipeline cache entry and header sizes
Fixes UBSan error:
../src/amd/vulkan/radv_pipeline_cache.c:603:42: runtime error: member access within misaligned address 0x00000152ebcc for type 'struct cache_entry', which requires 8 byte alignment
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6206>
Rhys Perry [Wed, 5 Aug 2020 20:03:22 +0000 (21:03 +0100)]
radv: don't pass null to _mesa_sha1_update
This could then pass NULL to memcpy. Fixes UBSan error:
../src/util/sha1/sha1.c:140:8: runtime error: null pointer passed as argument 2, which is declared to never be null
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6206>
Rhys Perry [Thu, 6 Aug 2020 13:17:31 +0000 (14:17 +0100)]
nir: fix memory leak in nir_cf_list_clone
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/6206>
Rhys Perry [Wed, 5 Aug 2020 20:03:31 +0000 (21:03 +0100)]
nir: fix potential left shift of a negative value
Fixes UBSan error:
src/compiler/nir/nir_constant_expressions.c:36573:32: runtime error: left shift of negative value -1
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/6206>
Rhys Perry [Thu, 6 Aug 2020 13:53:36 +0000 (14:53 +0100)]
util: add a alignof() macro
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/6206>
Rhys Perry [Tue, 18 Aug 2020 12:23:59 +0000 (13:23 +0100)]
gitlab: ask inxi output to be in code blocks
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Acked-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6365>
Samuel Pitoiset [Fri, 14 Aug 2020 11:59:16 +0000 (13:59 +0200)]
radv,aco: report ACO errors/warnings back via VK_EXT_debug_report
To help developers.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6318>
Samuel Pitoiset [Fri, 14 Aug 2020 08:42:27 +0000 (10:42 +0200)]
aco: rework the way various compilation/validation errors are reported
The upcoming change will allow to report all ACO errors (or warnings)
directly to the app via VK_EXT_debug_report. This is similar to what
we already do for reporting various SPIRV->NIR errors.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6318>
Samuel Pitoiset [Tue, 18 Aug 2020 06:14:06 +0000 (08:14 +0200)]
aco: rename DEBUG_VALIDATE to DEBUG_VALIDATE_IR
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6318>
Tapani Pälli [Tue, 18 Aug 2020 12:16:37 +0000 (15:16 +0300)]
anv: null check for buffer before reading size
v2: move assignment under existing check (Nanley)
Fixes: b9a05447a19 ("anv: dynamic vertex input binding stride and size support")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6369>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>