James Park [Mon, 30 Nov 2020 10:00:48 +0000 (02:00 -0800)]
vulkan/util: Consolidate typed_memcpy
Collapse typed_memcpy definitions into one header.
Use do/while(0) pattern to fix MSVC compilation.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7830>
James Park [Mon, 30 Nov 2020 08:57:55 +0000 (00:57 -0800)]
util: Add os_localtime
MSVC does not have localtime_r, so add abstraction.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7829>
Kenneth Graunke [Tue, 1 Dec 2020 00:14:55 +0000 (16:14 -0800)]
nir/algebraic: Avoid creating new fp64 ops when using softfp64
In commit
00b28a50b2c492eee25ef3f75538aabe1e569ff1, Marek extended
a number of optimizations that had been 32-bit specific to work on
other bit-sizes.
Most optimizations preserve the data type across the transformation.
In other words, an optimization which generates e.g. fp64 operations
only does so when the source expression also contains fp64 operations.
These transformations are fine with respect to lowering, because we
will lower away all expressions that would trigger the search portion
of the expression, and so we'd never apply those rules.
However, a few of the rules create new operations that run afoul of
lowering passes. For example,
('bcsel', a, 1.0, 0.0) => ('b2f', a)
where the result is a double would simply be a selection between two
different 64-bit constants. The replacement expression, on the other
hand, involves a nir_op_b2f64 ALU operation. If we're run after
nir_lower_doubles, then it may not be legal to generate such an
expression anymore (at least without running lowering again, which we
don't do today).
Regressions due to this are blocking the 20.3 release, so for now, we
take the easy route and simply disallow those few rules when doing full
softfp64 lowering, which fixes the immediate problem. But it doesn't
solve the long-term problem in an extensible manner.
In the future, we may want to add a `lowered_alu_ops` bitfield to the
NIR shader, and as lowering passes are run, mark them as taboo. Then,
we could have each algebraic transformation track which operations it
creates in the replacement expression. With both of those in place,
nir_replace_instr could compare the transformation's list of ALU ops
against `lowered_alu_ops` and implicitly skip rules that generate
forbidden ALU operations.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3504
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7841>
Rob Clark [Wed, 25 Nov 2020 00:54:52 +0000 (16:54 -0800)]
mesa: Use os_get_option() for MESA_*_OVERRIDE
This will allow for overriding via setprop mesa.*.override on android.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7763>
Rob Clark [Tue, 24 Nov 2020 20:38:47 +0000 (12:38 -0800)]
util: Add property_get() fallback for android
Environment variables aren't the easiest thing to use on android. So
add a fallback to android's property mechanism for os_get_option().
This is slightly complicated by the fact that the assumption that the
return value of os_get_option() need not be freed.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7763>
Jason Ekstrand [Mon, 30 Nov 2020 20:02:06 +0000 (14:02 -0600)]
intel/fs: DISCARD_JUMP does not have side-effects
This accidentally snuck into
75209d5bd1f6e93 due to a rebase fail.
Fixes: 75209d5bd1f6e93 "intel/fs: Add and implement intel-specific..."
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3897
Tested-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7839>
Jason Ekstrand [Mon, 30 Nov 2020 16:41:35 +0000 (10:41 -0600)]
nir: Use the right argument order for load_scratch_base_ptr
Fixes: c9bcad25737 "nir: add generated intrinsic builders"
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7836>
Iago Toral Quiroga [Mon, 30 Nov 2020 06:44:28 +0000 (07:44 +0100)]
v3dv: check return value of drmGetMagic
Fixes coverty issue:
** CID
1470345: Error handling issues (CHECKED_RETURN)
/src/broadcom/vulkan/v3dv_device.c: 407 in v3dv_drm_handle_device()
Calling "drmGetMagic" without checking return value (as is done
elsewhere 5 out of 6 times).
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7828>
Iago Toral Quiroga [Mon, 30 Nov 2020 09:15:57 +0000 (10:15 +0100)]
v3dv: expand format coverage in TFU path for buffer to image copies
Just like we do for image copies, since we are not doing any pixel
format conversions, we can translate the image format to a compatible
format that is supported by the TFU.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7809>
Iago Toral Quiroga [Fri, 27 Nov 2020 10:13:26 +0000 (11:13 +0100)]
v3dv: fix base layer for 3D blits in the TFU path
We were always using baseArrayLayer from the image subresource, but
for 3D images we should use the Z offset of the region.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7809>
Iago Toral Quiroga [Fri, 27 Nov 2020 10:56:37 +0000 (11:56 +0100)]
v3dv: add a TFU path for image copies
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7809>
Iago Toral Quiroga [Fri, 27 Nov 2020 10:52:17 +0000 (11:52 +0100)]
v3dv: add a format parameter to emit_tfu_job
We will be using the new parameter in an upcomig change. The TFU
unit has a limited list of supported formats, so for cases where
we don't want to do any pixel format conversions and we are just
copying raw image data, we want to be able to rewrite the underlying
image format to use a compatible format. We will be using this
in a follow-up patch that adds a TFU path for image copies. For this
purpose, we also, move the function definition up in the file
so it is available for that upcoming TFU path without having to
put its prototype earlier in the file.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7809>
Iago Toral Quiroga [Thu, 26 Nov 2020 11:34:52 +0000 (12:34 +0100)]
v3dv: support compressed formats with TFU unit
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7809>
Iago Toral Quiroga [Thu, 26 Nov 2020 11:51:22 +0000 (12:51 +0100)]
v3dv: remove obsolete disabled code
We are successfully using TFU blits for existing CTS tests covering
1D and 3D images.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7809>
Samuel Pitoiset [Thu, 26 Nov 2020 06:46:11 +0000 (07:46 +0100)]
radv: disable WGP_MODE for NGG on GFX10.3
Ported from RadeonSI, reducing the CU mask probably broke WGP mode.
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/7769>
Samuel Pitoiset [Wed, 25 Nov 2020 07:16:14 +0000 (08:16 +0100)]
radv: only mask 1 CU for GS/VS waves on GFX10.3
Ported from Radeonsi and PAL.
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/7769>
Samuel Pitoiset [Wed, 25 Nov 2020 07:13:29 +0000 (08:13 +0100)]
radv: only disable CU2 & CU3 when NGG is enabled
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/7769>
Samuel Pitoiset [Wed, 25 Nov 2020 07:09:59 +0000 (08:09 +0100)]
radv: enable NGG on GFX10.3 APUs by default
According to Radeonsi, VanGogh benefits.
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/7769>
Michel Dänzer [Fri, 20 Nov 2020 10:05:56 +0000 (11:05 +0100)]
ci: Make test-docs job depend on sanity job
Without this, the test-docs job could end up waiting for manual action
after the sanity job failed, which prevented the pipeline as a whole
from having failed status.
(This means the test-docs job will no longer exist in one corner case
where it did before, when pushing directly to a non-master branch of
the main repository. That should be fine, since the docs are only
deployed from master.)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7676>
Michel Dänzer [Wed, 18 Nov 2020 17:48:47 +0000 (18:48 +0100)]
ci: Squash "check mr/commits" jobs into a single sanity job
The "check commits" job can work again with current ci-templates, but
there's no need to keep it as a separate job.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7676>
Michel Dänzer [Wed, 18 Nov 2020 17:32:05 +0000 (18:32 +0100)]
ci: Move sanity stage to the beginning of the pipeline
This is possible now that it uses the external ci-fairy docker image.
This allows dropping the "check mr" job from needs: of other jobs, the
container stage jobs will only become available once the sanity stage
has passed.
This also allows simplifying the "check mr" job rules and script, since
the job only needs to exist in pre-merge pipelines for MRs anymore.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7676>
Michel Dänzer [Wed, 18 Nov 2020 17:23:29 +0000 (18:23 +0100)]
ci: Use ci-fairy docker image instead of local git_archive one
The ci-fairy image contains pip and ci-fairy.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7676>
Michel Dänzer [Wed, 18 Nov 2020 17:55:28 +0000 (18:55 +0100)]
ci: Update to current ci-templates
The 64-bit ARM architecture suffix was changed from arm64v8 to aarch64.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7676>
Michel Dänzer [Tue, 24 Nov 2020 16:02:13 +0000 (17:02 +0100)]
ci: Drop ci-templates-sha anchor
As of GitLab 13.6, multiple files can be included for a single ref.
Suggested-by: Daniel Stone <daniel@fooishbar.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7676>
James Park [Fri, 27 Nov 2020 03:42:54 +0000 (19:42 -0800)]
vulkan: Portable wsi_common_get_current_time()
Use os_time_get_nano(), which has a Windows implementation.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7783>
James Park [Fri, 27 Nov 2020 03:42:19 +0000 (19:42 -0800)]
vulkan: Replace pthread mutex with mtx_t
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7783>
James Park [Fri, 27 Nov 2020 03:41:32 +0000 (19:41 -0800)]
vulkan: Remove GCC pragmas by fixing warnings
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7783>
Samuel Pitoiset [Fri, 20 Nov 2020 15:55:41 +0000 (16:55 +0100)]
radv: save and dump vertex descriptors during GPU hang detection
It might be useful to know if the VA is valid and if other info
like the stride seems correct.
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/7753>
Samuel Pitoiset [Tue, 24 Nov 2020 07:41:54 +0000 (08:41 +0100)]
radv: fix using bitfields for debug/perftest options
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/7753>
Leo Liu [Thu, 26 Nov 2020 18:34:14 +0000 (13:34 -0500)]
mesa/st_vdpau: set surface winsys handle modifier
The VDPAU interop was broken without setting it explicitly
Fixes: c786150d ("radeonsi: Add modifier support")
Cc: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7803>
James Park [Sat, 28 Nov 2020 07:35:51 +0000 (23:35 -0800)]
amd/common: Check with_tests before adding test
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7819>
Gert Wollny [Sat, 28 Nov 2020 15:36:23 +0000 (16:36 +0100)]
r600/sfn: remove leftover debug message
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7823>
Gert Wollny [Sat, 28 Nov 2020 15:39:28 +0000 (16:39 +0100)]
r600/sfn: remove unused file
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7823>
Gert Wollny [Sat, 28 Nov 2020 09:58:53 +0000 (10:58 +0100)]
r600/sfn: Fix a few warnings in release builds
[1083/1142] Compiling C++ object src/gallium/drivers/r600/libr600.a.p/sfn_sfn_nir_lower_fs_out_to_vector.cpp.o
../src/gallium/drivers/r600/sfn/sfn_nir_lower_fs_out_to_vector.cpp: In member function ‘nir_ssa_def* r600::NirLowerFSOutToVector::create_combined_vector(nir_builder*, nir_ssa_def**, int, int)’:
../src/gallium/drivers/r600/sfn/sfn_nir_lower_fs_out_to_vector.cpp:442:48: warning: ‘op’ may be used uninitialized in this function [-Wmaybe-uninitialized]
nir_alu_instr * instr = nir_alu_instr_create(b->shader, op);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
[1092/1142] Compiling C++ object src/gallium/drivers/r600/libr600.a.p/sfn_sfn_nir.cpp.o
../src/gallium/drivers/r600/sfn/sfn_nir.cpp: In function ‘int r600_shader_from_nir(r600_context*, r600_pipe_shader*, r600_shader_key*)’:
../src/gallium/drivers/r600/sfn/sfn_nir.cpp:859:24: warning: unused variable ‘func’ [-Wunused-variable]
859 | const nir_function *func = reinterpret_cast<const nir_function *>(exec_list_get_head_const(&sel->nir->functions));
| ^~~~
[1118/1142] Compiling C++ object src/gallium/drivers/r600/libr600.a.p/sfn_sfn_shader_base.cpp.o
../src/gallium/drivers/r600/sfn/sfn_shader_base.cpp: In member function ‘void r600::ShaderFromNirProcessor::add_array_deref(nir_deref_instr*)’:
../src/gallium/drivers/r600/sfn/sfn_shader_base.cpp:300:18: warning: unused variable ‘var’ [-Wunused-variable]
300 | nir_variable *var = nir_deref_instr_get_variable(instr);
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7820>
Gert Wollny [Sat, 28 Nov 2020 09:27:48 +0000 (10:27 +0100)]
r600/sfn: fix definition of priority queue
Closes #3889
Fixes: b8fdcffc4c755241d645c62385729ee14dd8620b
r600/sfn: Fix vertex stage export to accomodate IO lowering
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7820>
Gert Wollny [Sat, 28 Nov 2020 09:12:21 +0000 (10:12 +0100)]
r600/sfn: correct error signalling in switch default case
This is unreachable, and in release mode it should also indicated that
the function will not return something useful here. Also add a default
return value just in case a compiler doesn't support the "unreachable"
Thanks Dieter Nützel for pointing this error out.
Fixes: b6c17e2965621a46eb07ba2605d9f9e221a400b
r600/sfn: lower IO for FS inputs and handle interpolation accordingly
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7820>
James Park [Fri, 27 Nov 2020 04:44:50 +0000 (20:44 -0800)]
amd: Fix declaration mismatch
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7791>
James Park [Fri, 27 Nov 2020 04:44:26 +0000 (20:44 -0800)]
amd: Fix signature mismatch
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7791>
James Park [Fri, 27 Nov 2020 04:43:29 +0000 (20:43 -0800)]
amd: Work around MSVC limit for string literals
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7791>
James Park [Fri, 27 Nov 2020 04:41:35 +0000 (20:41 -0800)]
amd: Replace vasprintf with vfprintf
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7791>
James Park [Fri, 27 Nov 2020 04:41:08 +0000 (20:41 -0800)]
amd: Stub sections that don't have _WIN32 support
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7791>
James Park [Fri, 27 Nov 2020 04:38:58 +0000 (20:38 -0800)]
amd: Remove bitfield sizes from enum values
Fixes negative indexing on MSVC.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7791>
James Park [Fri, 27 Nov 2020 04:35:36 +0000 (20:35 -0800)]
amd: Cast to int for %d snprintf argument
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7791>
James Park [Fri, 27 Nov 2020 12:14:19 +0000 (04:14 -0800)]
amd: Simplify ac_addrlib_create
Rework ac_addrlib_create to rely solely on radeon_info without
amdgpu_gpu_info.
No longer need <amdgpu.h> to create ac_addrlib instance.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7811>
Tapani Pälli [Fri, 20 Nov 2020 09:31:16 +0000 (11:31 +0200)]
mesa/st: choose S/D format depending on gl_format passed for readpixels
This makes sure we create correct type of a sampler view for reading.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3775
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7707>
Alejandro Piñeiro [Fri, 27 Nov 2020 12:14:47 +0000 (13:14 +0100)]
v3dv/pipeline: avoid unused warning on release build
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7812>
Theogen Ratkin [Thu, 26 Nov 2020 22:38:16 +0000 (18:38 -0400)]
docs: grammar fixes
Signed-off-by: Theogen Ratkin <feogenratkin@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7804>
Bas Nieuwenhuizen [Fri, 27 Nov 2020 14:07:17 +0000 (15:07 +0100)]
radv: Deal with unused attachments in mip flush
Fixes: 4cce4d22a72 ("radv: Fix a hang on CB change by adding flushes.")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7813>
Danylo Piliaiev [Thu, 26 Nov 2020 17:57:26 +0000 (19:57 +0200)]
freedreno/a6xx: add support for ARB_shader_stencil_export
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7810>
Samuel Pitoiset [Thu, 26 Nov 2020 09:39:23 +0000 (10:39 +0100)]
radv: disable SQTT support for unsupported GPUs
Like GFX10.3 which is currently broken.
Cc: 20.2 20.3
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/7786>
Rhys Perry [Fri, 23 Oct 2020 10:54:08 +0000 (11:54 +0100)]
aco: use binding chasing helpers
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/7291>
Rhys Perry [Fri, 23 Oct 2020 10:46:25 +0000 (11:46 +0100)]
ac/nir: use binding chasing helpers
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/7291>
Rhys Perry [Fri, 23 Oct 2020 10:37:42 +0000 (11:37 +0100)]
nir/opt_load_store_vectorize: use resource binding chasing helpers
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/7291>
Rhys Perry [Fri, 23 Oct 2020 10:22:48 +0000 (11:22 +0100)]
nir: add helpers for chasing resource bindings
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/7291>
Daniel Stone [Thu, 26 Nov 2020 17:30:52 +0000 (17:30 +0000)]
CI: Re-enable MSVC build
Trying this again after reworking the virtualised network setup on the
Windows runner.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7537>
Daniel Stone [Thu, 26 Nov 2020 19:02:45 +0000 (19:02 +0000)]
CI: Build d3d12 Gallium driver and CLC framework on MSVC
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7537>
Daniel Stone [Thu, 26 Nov 2020 19:01:40 +0000 (19:01 +0000)]
CI: Update Windows build for current Meson options
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7537>
Daniel Stone [Thu, 26 Nov 2020 19:03:47 +0000 (19:03 +0000)]
CI: Remove ludicrous Windows container build timeout
The full end-to-end job now completes in around 45min, which is far more
reasonable than the previous 3.5h.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7537>
Daniel Stone [Thu, 26 Nov 2020 18:10:27 +0000 (18:10 +0000)]
CI: Windows: Use 32 vCPUs for Mesa build
The physical machine has 64, and the bottleneck is mostly I/O and
network, so let's just go ahead and smash the CPUs to bits.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7537>
Daniel Stone [Thu, 26 Nov 2020 17:47:38 +0000 (17:47 +0000)]
CI: Add Windows libclc and SPIRV-LLVM-Translator builds
We need these builds in Windows in order to build the microsoft-clc
parts.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7537>
Daniel Stone [Thu, 26 Nov 2020 23:42:13 +0000 (23:42 +0000)]
microsoft/clc: Disable broken f32 -> i64/u64 test
Saturated conversions from f32 -> i64/u64 need to be reworked in the
upstream tree. Disable this test until we've done so, since it doesn't
pass currently.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7537>
Daniel Stone [Thu, 26 Nov 2020 19:25:32 +0000 (19:25 +0000)]
microsoft/clc: Allow building with Clang git
clang's version argument will return '1.2.3git' when built from a
non-release source tree, but the resource directory will be '1.2.3'.
Strip the 'git' suffix if it's there.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7537>
Rhys Perry [Fri, 27 Nov 2020 10:13:49 +0000 (10:13 +0000)]
d3d12: remove hand-written intrinsic builders
These are no longer necessary and break the build.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Fixes: c9bcad25737 ("nir: add generated intrinsic builders")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7808>
Rhys Perry [Fri, 27 Nov 2020 09:56:50 +0000 (09:56 +0000)]
nir: fix nir_builder.h on MSVC C++ and GCC7.
MSVC C++ can't do designated initializers without /std:c++latest. These
helpers will likely be removed soon anyway, so just don't use the
intrinsic builders here.
This should also fix the GCC7 build, which doesn't implement non-trivial
designated initializers.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Fixes: c9bcad25737 ("nir: add generated intrinsic builders")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7808>
Rhys Perry [Fri, 27 Nov 2020 09:55:11 +0000 (09:55 +0000)]
nir: fix intrinsic builders on MSVC C++
Fix this error:
error C4576: a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Fixes: c9bcad25737 ("nir: add generated intrinsic builders")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7808>
Gert Wollny [Thu, 26 Nov 2020 16:30:34 +0000 (17:30 +0100)]
r600/sfn: lower all IO in one pass
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7715>
Gert Wollny [Wed, 25 Nov 2020 19:44:13 +0000 (20:44 +0100)]
r600/sfn: simplify IO lowering and fix TESS IO lowering
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7715>
Gert Wollny [Tue, 24 Nov 2020 19:55:07 +0000 (20:55 +0100)]
r600/sfn: lower GS IO
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7715>
Gert Wollny [Tue, 24 Nov 2020 20:26:33 +0000 (21:26 +0100)]
r600/sfn: drop store_deref handling for VS and TES
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7715>
Gert Wollny [Mon, 23 Nov 2020 10:46:33 +0000 (11:46 +0100)]
r600/sfn: Lower tess-eval IO
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7715>
Gert Wollny [Mon, 23 Nov 2020 10:45:59 +0000 (11:45 +0100)]
r600/sfn: lower VS output IO
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7715>
Gert Wollny [Mon, 23 Nov 2020 10:44:04 +0000 (11:44 +0100)]
r600/sfn: Fix vertex stage export to accomodate IO lowering
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7715>
Gert Wollny [Sat, 21 Nov 2020 15:34:10 +0000 (16:34 +0100)]
r600/sfn: remove unused FS input deref code
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7715>
Gert Wollny [Sat, 21 Nov 2020 15:22:11 +0000 (16:22 +0100)]
r600/sfn: lower IO for FS inputs and handle interpolation accordingly
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7715>
Gert Wollny [Sat, 21 Nov 2020 15:20:50 +0000 (16:20 +0100)]
r600/sfn: Add simplified constructors for FS shader inputs.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7715>
Gert Wollny [Sat, 21 Nov 2020 15:20:01 +0000 (16:20 +0100)]
r600/sfn: Add lowering pass to convert load_interpolated to load for POS
the values are loaded directly from a register and the specification of
parycentrics is only in the way.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7715>
Gert Wollny [Mon, 23 Nov 2020 17:49:08 +0000 (18:49 +0100)]
r600/sfn: fix component loading from fixed buffer ID
Fixes: 18e97817148eb376274a8749c03b45c2f817c139
r600/sfn: Use load_ubo_vec4 lowering pass
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7715>
Boris Brezillon [Thu, 26 Nov 2020 14:35:20 +0000 (15:35 +0100)]
panfrost: Update the resource layout when doing a tile -> linear conversion
If we don't do that the stride in texture/framebuffer descriptors
is wrong, leading to page faults when those buffers are accessed.
Fixes: 00360cd5c85e ("panfrost: Calculate the row stride at resource creation time")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7797>
Iago Toral Quiroga [Thu, 26 Nov 2020 09:44:30 +0000 (10:44 +0100)]
v3dv: extend the list of formats supported by the TFU unit
Also, update the hardware version assert check to match what we are
really requiring for Vulkan.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7788>
Iago Toral Quiroga [Wed, 25 Nov 2020 13:16:19 +0000 (14:16 +0100)]
v3dv: batch buffer to image copies with the texel buffer path if possible
When copying multiple regions that have the same image subresource we are
effectively copying various rects across the same layer range, so we can
batch together all the rects to copy for each layer in a single job.
This allows us to significantly reduce CPU overhead when recording the
command, as we need to produce less jobs and allocate less descriptor
sets. It also offers smaller gains in execution time due to the reduced
job count.
A stress test where we copy 10 subrects of an image in a loop 100 time,
choosing regions that will involve the texel buffer path, we get these
results:
| Recording Time | Execution Time |
----------|----------------|----------------|
master | 3.021s | 0.112s |
----------|----------------|----------------|
patch | 0.163s | 0.080s |
----------|----------------|----------------|
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7782>
Iago Toral Quiroga [Thu, 26 Nov 2020 07:02:36 +0000 (08:02 +0100)]
v3dv: fix leak in the buffer to image copy via texel buffer
Fixes: ba69c36ada5 ("v3dv: add a buffer to image copy path using a texel buffer")
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7782>
Marek Olšák [Mon, 9 Nov 2020 22:52:45 +0000 (17:52 -0500)]
radeonsi: implement GS fast launch for indexed triangle strips
This increases performance for indexed triangle strips up to +100%.
In practice, it's limited by memory bandwidth and compute power,
so 256-bit memory bus and a lot of CUs are recommended.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7681>
Bas Nieuwenhuizen [Mon, 19 Oct 2020 00:53:39 +0000 (02:53 +0200)]
radv: Fix a hang on CB change by adding flushes.
This workaround fixes a hang while loading a renderdoc trace for me.
Since the workload does 1 mip per cmdbuffer it is quite hard to confirm
what exactly the conditions for the hang are but this is the most
restrictive set I found and it corresponds to a workaround in AMDVLK as
well.
CC: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7210>
Erik Faye-Lund [Thu, 26 Nov 2020 18:26:23 +0000 (19:26 +0100)]
docs: document new zink-flag
We forgot to document this previously, so let's add it now.
Fixes: feb9462bb19 ("zink: Added inbuilt debug logging from the VK_LAYER_LUNARG_standard_validation layer.")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7802>
Rhys Perry [Mon, 14 Sep 2020 18:51:41 +0000 (19:51 +0100)]
nir: make intrinsic order in nir_print consistent
Make it consistent with nir_intrinsics.py, the unlabelled indices just
before it and the intrinsic builders.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6587>
Rhys Perry [Thu, 3 Sep 2020 18:44:00 +0000 (19:44 +0100)]
radv: use intrinsic builders
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/6587>
Rhys Perry [Thu, 3 Sep 2020 16:20:17 +0000 (17:20 +0100)]
nir: use intrinsic builders
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6587>
Rhys Perry [Mon, 7 Sep 2020 13:17:14 +0000 (14:17 +0100)]
glsl_to_nir: use intrinsic builders
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6587>
Rhys Perry [Mon, 7 Sep 2020 13:16:57 +0000 (14:16 +0100)]
spirv: use intrinsic builders
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6587>
Rhys Perry [Mon, 7 Sep 2020 12:55:38 +0000 (13:55 +0100)]
nir: add generated intrinsic builders
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6587>
Rhys Perry [Mon, 14 Sep 2020 18:56:48 +0000 (19:56 +0100)]
nir: move nir_load_system_value() to nir_builder.h
To make review easier.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6587>
Rhys Perry [Mon, 14 Sep 2020 18:57:25 +0000 (19:57 +0100)]
nir: remove useless nir_builder_opcodes.h include
This is included earlier in the file.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6587>
Rhys Perry [Mon, 7 Sep 2020 12:35:41 +0000 (13:35 +0100)]
nir: add destination bit-size information to more intrinsics
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6587>
Rhys Perry [Mon, 7 Sep 2020 12:25:59 +0000 (13:25 +0100)]
nir: add bit_size_src for when the destination bit size matches a source
If bit_size_src is not -1, then it's the index of the source the
destination bit size can be expected to match. This will be useful for
generating intrinsic builders
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6587>
Rhys Perry [Tue, 24 Nov 2020 12:51:59 +0000 (12:51 +0000)]
nir: use a single canonical list of intrinsic indices
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6587>
Rhys Perry [Thu, 10 Sep 2020 10:58:04 +0000 (11:58 +0100)]
nir: fix sampler_lod_parameters_pan indices
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Fixes: deaebc82a73 "nir: Add load_sampler_lod_paramaters_pan intrinsic"
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6587>
Danylo Piliaiev [Thu, 26 Nov 2020 12:05:59 +0000 (14:05 +0200)]
freedreno/a6xx: Fix typo in height alignment calculation in a6xx layout
Fixes KHR-GL31.texture_size_promotion.functional
Fixes: e49748521ec9182e8d2eec823182cc463709123f
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7792>
Danylo Piliaiev [Thu, 19 Nov 2020 09:27:33 +0000 (11:27 +0200)]
freedreno/a6xx: add support for dual-source blending
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7708>
Rhys Perry [Thu, 13 Feb 2020 15:09:53 +0000 (15:09 +0000)]
nir/lower_non_uniform: improve code with the same texture, sampler indices
NIR can't CSE the read_first_invocation intrinsics, so we can end up
creating iand(read_first_invocation(a) == a, read_first_invocation(a) == a)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3813>
Lionel Landwerlin [Thu, 26 Nov 2020 14:37:01 +0000 (16:37 +0200)]
anv: fix descriptor pool leak in VMA object
Quoting the spec :
"When a pool is destroyed, all descriptor sets allocated from the
pool are implicitly freed and become invalid. Descriptor sets
allocated from a given pool do not need to be freed before
destroying that descriptor pool."
This implies we might leak nodes allocated in the vma object.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 0a6d2593b8b63d ("anv: Allocate descriptor buffers from the BO cache")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7796>