platform/upstream/mesa.git
4 years agodocs: consistantly -> consistently
Erik Faye-Lund [Mon, 28 Sep 2020 15:56:22 +0000 (17:56 +0200)]
docs: consistantly -> consistently

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

4 years agodocs: clippping -> clipping
Erik Faye-Lund [Mon, 28 Sep 2020 15:53:58 +0000 (17:53 +0200)]
docs: clippping -> clipping

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

4 years agodocs: drop outdated gallium-docs comment
Erik Faye-Lund [Mon, 28 Sep 2020 14:27:32 +0000 (16:27 +0200)]
docs: drop outdated gallium-docs comment

The separate readthedocs documentation is quite pointless these days, as
it's been moved to docs.mesa3d.org, where all other documentation
already is. There's nothing special about this documentation any longer.

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

4 years agokmsro: Add mediatek entry point
Boris Brezillon [Wed, 23 Sep 2020 09:11:14 +0000 (11:11 +0200)]
kmsro: Add mediatek entry point

Add an entry for the mediatek modesetting driver.

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

4 years agopanfrost: Add preliminary support for Mali G72
Boris Brezillon [Wed, 23 Sep 2020 09:08:02 +0000 (11:08 +0200)]
panfrost: Add preliminary support for Mali G72

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

4 years agopanfrost: Adjust quirks for bifrost v6
Boris Brezillon [Wed, 23 Sep 2020 09:05:31 +0000 (11:05 +0200)]
panfrost: Adjust quirks for bifrost v6

The G72, which is a bifrost v6, supports fast operations. The selection
should probably be done on a per-GPU basis instead of forcing this quirk
for all v6 GPUs.

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

4 years agomesa: bptc fixes for decompress rgba_unorm and rgb_float
Denis Pauk [Tue, 29 Sep 2020 06:00:16 +0000 (09:00 +0300)]
mesa: bptc fixes for decompress rgba_unorm and rgb_float

Save bit_offset between iterations fixes for piglit:
* LIBGL_ALWAYS_SOFTWARE=true GALLIUM_DRIVER=softpipe piglit/bin/bptc-float-modes
* LIBGL_ALWAYS_SOFTWARE=true GALLIUM_DRIVER=llvmpipe piglit/bin/bptc-float-modes

Memset to zero in reserved mode for rgba_unorm fixes for VK-GL-CTS with libvulkan_val:
* dEQP-VK.texture.compressed.bc7_unorm_block_2d_pot
* dEQP-VK.texture.compressed.bc7_srgb_block_2d_pot
* dEQP-VK.texture.compressed.bc7_unorm_block_2d_npot
* dEQP-VK.texture.compressed.bc7_srgb_block_2d_npot

Signed-off-by: Denis Pauk <pauk.denis@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6809>

4 years agoac/llvm: fix invalid IR if image stores are shrinked using the format
Samuel Pitoiset [Mon, 28 Sep 2020 07:34:00 +0000 (09:34 +0200)]
ac/llvm: fix invalid IR if image stores are shrinked using the format

It's not always v4f32 (or v4f16 for 16-bit) when image stores are
shrinked using the format.

This fixes a ton of crashes with RADV_DEBUG=checkir,llvm.

Fixes: e4d75c22beb ("nir/opt_shrink_vectors: shrink image stores using the format")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6882>

4 years agoradv: lower deref operations for global memory for both backends
Samuel Pitoiset [Thu, 4 Jun 2020 06:27:50 +0000 (08:27 +0200)]
radv: lower deref operations for global memory for both backends

To match ACO.

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

4 years agoac/nir: implement nir_intrinsic_global_atomic_*
Samuel Pitoiset [Thu, 4 Jun 2020 07:01:10 +0000 (09:01 +0200)]
ac/nir: implement nir_intrinsic_global_atomic_*

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

4 years agoac/nir: implement nir_intrinsic_{load,store}_global
Samuel Pitoiset [Wed, 3 Jun 2020 16:25:46 +0000 (18:25 +0200)]
ac/nir: implement nir_intrinsic_{load,store}_global

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

4 years agoCI: Temporarily disable Panfrost T7xx
Daniel Stone [Mon, 28 Sep 2020 17:47:42 +0000 (18:47 +0100)]
CI: Temporarily disable Panfrost T7xx

Due to more work in the on-site lab, we need to take the T7xx machines
out of the rotation for a couple of hours.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6896>

4 years agopan/mdg: Fix memory leak on error path.
Vinson Lee [Fri, 25 Sep 2020 01:32:49 +0000 (18:32 -0700)]
pan/mdg: Fix memory leak on error path.

Fix defect reported by Coverity Scan.

Resource leak (RESOURCE_LEAK)
leaked_storage: Variable l going out of scope leaks the storage it
points to.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6858>

4 years agogallium/swr: Remove unreachable code.
Vinson Lee [Fri, 25 Sep 2020 00:56:08 +0000 (17:56 -0700)]
gallium/swr: Remove unreachable code.

pContextMem has already been checked and cannot be NULL.

Fix defect reported by Coverity Scan.

Logically dead code (DEADCODE)
dead_error_line: Execution cannot reach this statement: return tsCtx;

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Jan Zielinski <jan.zielinski@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6857>

4 years agoaco: Initialize mad_info member literal_idx.
Vinson Lee [Wed, 23 Sep 2020 00:51:06 +0000 (17:51 -0700)]
aco: Initialize mad_info member literal_idx.

Fix defect reported by Coverity Scan.

Uninitialized scalar field (UNINIT_CTOR)
uninit_member: Non-static class member literal_idx is not initialized in
this constructor nor in any functions that it calls.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6832>

4 years agoanv: Check file descriptor before closing.
Vinson Lee [Tue, 8 Sep 2020 01:34:46 +0000 (18:34 -0700)]
anv: Check file descriptor before closing.

Fix defect reported by Coverity Scan.

Argument cannot be negative (NEGATIVE_RETURNS)
negative_returns: fd is passed to a parameter that cannot be negative

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6643>

4 years agointel/vec4: Remove everything related to VS_OPCODE_SET_SIMD4X2_HEADER_GEN9
Ian Romanick [Tue, 22 Sep 2020 20:21:17 +0000 (13:21 -0700)]
intel/vec4: Remove everything related to VS_OPCODE_SET_SIMD4X2_HEADER_GEN9

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6826>

4 years agointel/vec4: Remove all support for Gen8+ [v2]
Ian Romanick [Tue, 22 Sep 2020 20:09:56 +0000 (13:09 -0700)]
intel/vec4: Remove all support for Gen8+ [v2]

v2: Restore the gen == 10 hunk in brw_compile_vs (around line 2940).
This function is also used for scalar VS compiles.  Squash in:

    intel/vec4: Reindent after removing Gen8+ support
    intel/vec4: Silence unused parameter warning in try_immediate_source

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> [v1]
Reviewed-by: Matt Turner <mattst88@gmail.com> [v1]
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> [v1]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6826>

4 years agointel/compiler: Remove INTEL_SCALAR_... env variables
Ian Romanick [Tue, 22 Sep 2020 18:47:38 +0000 (11:47 -0700)]
intel/compiler: Remove INTEL_SCALAR_... env variables

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6826>

4 years agointel/vec4: Remove inline lowering of LRP
Ian Romanick [Tue, 22 Sep 2020 19:46:05 +0000 (12:46 -0700)]
intel/vec4: Remove inline lowering of LRP

Since dd7135d55d5 ("intel/compiler: Use the flrp lowering pass for all
stages on Gen4 and Gen5"), it's not possible to get to this function on
GPUs that don't have a LRP instruction.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6826>

4 years agointel/compiler: Don't fallback to vec4 when scalar GS compile fails [v2]
Ian Romanick [Tue, 22 Sep 2020 20:04:47 +0000 (13:04 -0700)]
intel/compiler: Don't fallback to vec4 when scalar GS compile fails [v2]

v2: Add missing error string handling.  Noticed by Jason.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Matt Turner <mattst88@gmail.com> [v1]
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6826>

4 years agointel/compiler: Silence unused parameter warning in brw_surface_payload_size
Ian Romanick [Tue, 22 Sep 2020 21:10:56 +0000 (14:10 -0700)]
intel/compiler: Silence unused parameter warning in brw_surface_payload_size

src/intel/compiler/brw_eu_emit.c: In function ‘brw_surface_payload_size’:
src/intel/compiler/brw_eu_emit.c:3070:46: warning: unused parameter ‘p’ [-Wunused-parameter]
 3070 | brw_surface_payload_size(struct brw_codegen *p,
      |                          ~~~~~~~~~~~~~~~~~~~~^

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6826>

4 years agointel/vec4: Silence unused paramter warnings in brw_vec4_generator.cpp
Ian Romanick [Tue, 22 Sep 2020 20:53:25 +0000 (13:53 -0700)]
intel/vec4: Silence unused paramter warnings in brw_vec4_generator.cpp

src/intel/compiler/brw_vec4_generator.cpp: In function ‘void generate_gs_svb_write(brw_codegen*, brw_vue_prog_data*, brw::vec4_instruction*, brw_reg, brw_reg, brw_reg)’:
src/intel/compiler/brw_vec4_generator.cpp:488:49: warning: unused parameter ‘prog_data’ [-Wunused-parameter]
  488 |                       struct brw_vue_prog_data *prog_data,
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
src/intel/compiler/brw_vec4_generator.cpp: In function ‘void generate_pull_constant_load(brw_codegen*, brw_vue_prog_data*, brw::vec4_instruction*, brw_reg, brw_reg, brw_reg)’:
src/intel/compiler/brw_vec4_generator.cpp:1269:55: warning: unused parameter ‘prog_data’ [-Wunused-parameter]
 1269 |                             struct brw_vue_prog_data *prog_data,
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
src/intel/compiler/brw_vec4_generator.cpp: In function ‘void generate_get_buffer_size(brw_codegen*, brw_vue_prog_data*, brw::vec4_instruction*, brw_reg, brw_reg, brw_reg)’:
src/intel/compiler/brw_vec4_generator.cpp:1331:52: warning: unused parameter ‘prog_data’ [-Wunused-parameter]
 1331 |                          struct brw_vue_prog_data *prog_data,
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
src/intel/compiler/brw_vec4_generator.cpp: In function ‘void generate_pull_constant_load_gen7(brw_codegen*, brw_vue_prog_data*, brw::vec4_instruction*, brw_reg, brw_reg, brw_reg)’:
src/intel/compiler/brw_vec4_generator.cpp:1357:60: warning: unused parameter ‘prog_data’ [-Wunused-parameter]
 1357 |                                  struct brw_vue_prog_data *prog_data,
      |                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6826>

4 years agor600/sfn: Add support for helper invocations
Gert Wollny [Sun, 27 Sep 2020 15:09:03 +0000 (17:09 +0200)]
r600/sfn: Add support for helper invocations

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6879>

4 years agor600/sfn: remove old code to track uniforms as it is no longer needed
Gert Wollny [Sun, 27 Sep 2020 14:40:55 +0000 (16:40 +0200)]
r600/sfn: remove old code to track uniforms as it is no longer needed

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6879>

4 years agor600/sfn: replace hand-backed literal check by NIR function
Gert Wollny [Sun, 27 Sep 2020 14:24:56 +0000 (16:24 +0200)]
r600/sfn: replace hand-backed literal check by NIR function

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6879>

4 years agor600/sfn; go back to not lowering uniforms to UBOs
Gert Wollny [Sat, 26 Sep 2020 18:14:00 +0000 (20:14 +0200)]
r600/sfn; go back to not lowering uniforms to UBOs

Lowering uniforms to UBOs results in an aditional iadd for the
UBO buffer id evaluation, and for indirect buffers access that
results in an unnecessary op that can be avoided by not lowering
uniforms. There is some code duplication when reading the uniforms
but it saves a whole instruction group per indirect cont buffer
access.

This reverts commit 98eb00face93b9af5aac19008ecff5a2bf376745 with
some additional fixes.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6879>

4 years agor600/sfn: Fix indirect const buffer access
Gert Wollny [Sat, 26 Sep 2020 17:25:41 +0000 (19:25 +0200)]
r600/sfn: Fix indirect const buffer access

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6879>

4 years agor600/sfn: Fix interpolate at sample
Gert Wollny [Sat, 26 Sep 2020 10:53:08 +0000 (12:53 +0200)]
r600/sfn: Fix interpolate at sample

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

4 years agor600/sfn: use fine gradient evaluation for interpolate_at_offset
Gert Wollny [Fri, 25 Sep 2020 12:45:43 +0000 (14:45 +0200)]
r600/sfn: use fine gradient evaluation for interpolate_at_offset

Also pass in the interpolator x component (because the TGSI does this too)

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6879>

4 years agor600/sfn: save some instructions when doing multisample on sample 0
Gert Wollny [Thu, 24 Sep 2020 18:04:30 +0000 (20:04 +0200)]
r600/sfn: save some instructions when doing multisample on sample 0

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6879>

4 years agor600/sfn: Support group memory barrier
Gert Wollny [Thu, 24 Sep 2020 06:56:12 +0000 (08:56 +0200)]
r600/sfn: Support group memory barrier

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6879>

4 years agor600/sfn: lower to scalar for some optimizations and vectortize later
Gert Wollny [Thu, 24 Sep 2020 06:46:53 +0000 (08:46 +0200)]
r600/sfn: lower to scalar for some optimizations and vectortize later

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

4 years agor600/sfn: Handle nir_op_b2b32
Gert Wollny [Wed, 23 Sep 2020 22:00:49 +0000 (00:00 +0200)]
r600/sfn: Handle nir_op_b2b32

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6879>

4 years agor600/sfn: Fix emitting shared atomics with constant sources
Gert Wollny [Wed, 23 Sep 2020 21:56:35 +0000 (23:56 +0200)]
r600/sfn: Fix emitting shared atomics with constant sources

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6879>

4 years agonir/lower_clip: Add i/o semantics for load/store intrinsics.
Eric Anholt [Tue, 1 Sep 2020 19:54:25 +0000 (12:54 -0700)]
nir/lower_clip: Add i/o semantics for load/store intrinsics.

ir3 looks at the .location on its inputs for handling
non-VARYING_SLOT_POS, but our uninitialized semantics matched that and
threw a compiler assertion failure.

Fixes: 502abfce7f5d ("nir: save IO semantics in lowered IO intrinsics")
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6716>

4 years agoci/freedreno: Add trace tests for glxgears, 0 A.D., and xonotic.
Eric Anholt [Mon, 14 Sep 2020 22:05:51 +0000 (15:05 -0700)]
ci/freedreno: Add trace tests for glxgears, 0 A.D., and xonotic.

glxgears is now trimmed to not be tons of frames, and we've picked up a
couple more traces in the public repo.

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

4 years agoci/freedreno: Sort the traces in the .yml of expectations
Eric Anholt [Mon, 14 Sep 2020 22:03:51 +0000 (15:03 -0700)]
ci/freedreno: Sort the traces in the .yml of expectations

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

4 years agoturnip: Replace tu_log*() with mesa_log*()
Eric Anholt [Mon, 21 Sep 2020 20:02:14 +0000 (13:02 -0700)]
turnip: Replace tu_log*() with mesa_log*()

This gets us logging on Android.

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6806>

4 years agomesa: Promote Intel's simple logging façade for Android to util/
Eric Anholt [Mon, 21 Sep 2020 19:53:14 +0000 (12:53 -0700)]
mesa: Promote Intel's simple logging façade for Android to util/

I'm bringing up freedreno Vulkan on an Android phone, and my pains are
exactly what Chad said when working on Intel's vulkan for Android in
aa716db0f64d ("intel: Add simple logging façade for Android (v2)"):

    On Android, stdio goes to /dev/null. On Android, remote gdb is even
    more painful than the usual remote gdb. On Android, nothing works like
    you expect and debugging is hell. I need logging.

    This patch introduces a small, simple logging API that can easily wrap
    Android's API. On non-Android platforms, this logger does nothing
    fancy.  It follows the time-honored Unix tradition of spewing
    everything to stderr with minimal fuss.

    My goal here is not perfection. My goal is to make a minimal, clean API,
    that people hate merely a little instead of a lot, and that's good
    enough to let me bring up Android Vulkan.  And it needs to be fast,
    which means it must be small. No one wants to their game to miss frames
    while aiming a flaming bow into the jaws of an angry robot t-rex, and
    thus become t-rex breakfast, because some fool had too much fun desiging
    a bloated, ideal logging API.

Compared to trusty fprintf, _mesa_log[ewi]() is actually usable on
Android.  Compared to os_log_message(), this has different error levels
and supports format arguments.

The only code change in the move is wrapping flockfile/funlockfile in
!DETECT_OS_WINDOWS, since mingw32 doesn't have it.  Windows likely wants
different logging code, anyway.

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6806>

4 years agoradv: Record cache flushes for RGP.
Bas Nieuwenhuizen [Tue, 1 Sep 2020 19:28:16 +0000 (21:28 +0200)]
radv: Record cache flushes for RGP.

Not doing the EOP TS cacheflush event because that break wave counting
in RGP for some reason. But the rest looks to be all there.

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

4 years agoradv: Include flushes in the barrier.
Bas Nieuwenhuizen [Tue, 1 Sep 2020 15:09:19 +0000 (17:09 +0200)]
radv: Include flushes in the barrier.

Since the flushes really happen on the next draw delay the barrier
end to include the flushes.

This fixes the barrier duration in RGP.

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

4 years agoradv: Fix RGP Asic CU info for GFX10+.
Bas Nieuwenhuizen [Mon, 28 Sep 2020 02:16:27 +0000 (04:16 +0200)]
radv: Fix RGP Asic CU info for GFX10+.

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

4 years agoradv: Use correct alignment for SQTT buffer sizes.
Bas Nieuwenhuizen [Mon, 28 Sep 2020 01:50:49 +0000 (03:50 +0200)]
radv: Use correct alignment for SQTT buffer sizes.

Otherwise we can miss the start of the buffer, which
results in RGP missing the initial (and only) timestamp
packet and results in RGP completely ignoring the second
SE, causing messy issues and missed events.

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

4 years agoradv: Fix emitting SQTT userdata.
Bas Nieuwenhuizen [Sun, 13 Sep 2020 14:19:17 +0000 (16:19 +0200)]
radv: Fix emitting SQTT userdata.

Otherwise some marker packets were missing ...

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

4 years agozink: remove old extension infrastructure
Hoe Hao Cheng [Sat, 26 Sep 2020 07:01:54 +0000 (15:01 +0800)]
zink: remove old extension infrastructure

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6789>

4 years agozink: use the new, generated extension infrastructure
Hoe Hao Cheng [Mon, 28 Sep 2020 10:43:36 +0000 (18:43 +0800)]
zink: use the new, generated extension infrastructure

this is just a find-and-replace from screen->... to screen->info.

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6789>

4 years agozink: use the new extension infrastructure in device creation
Hoe Hao Cheng [Mon, 28 Sep 2020 10:40:37 +0000 (18:40 +0800)]
zink: use the new extension infrastructure in device creation

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6789>

4 years agozink: hook zink_device_info.py to build system
Hoe Hao Cheng [Sat, 26 Sep 2020 06:49:49 +0000 (14:49 +0800)]
zink: hook zink_device_info.py to build system

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6789>

4 years agozink: generate extension infrastructure using a python script
Hoe Hao Cheng [Fri, 18 Sep 2020 20:39:19 +0000 (04:39 +0800)]
zink: generate extension infrastructure using a python script

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6789>

4 years agonir/lower_memory_model: do not break with global atomic operations
Samuel Pitoiset [Mon, 28 Sep 2020 09:47:50 +0000 (11:47 +0200)]
nir/lower_memory_model: do not break with global atomic operations

Global atomics don't have an access flag.

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

4 years agonir/lower_memory_model: return progress when visiting instructions
Samuel Pitoiset [Mon, 28 Sep 2020 09:46:25 +0000 (11:46 +0200)]
nir/lower_memory_model: return progress when visiting instructions

It never returned progress=TRUE.

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

4 years agopan/mdg: Infer whether to disassemble shaders from info.internal
Icecream95 [Sat, 26 Sep 2020 00:19:14 +0000 (12:19 +1200)]
pan/mdg: Infer whether to disassemble shaders from info.internal

Blit shaders are now marked as internal, so remove the silent argument
from midgard_compile_shader_nir and instead use nir->info.internal to
suppress disassembling shaders.

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

4 years agopanfrost: Mark blit shaders as internal
Icecream95 [Sat, 26 Sep 2020 00:16:02 +0000 (12:16 +1200)]
panfrost: Mark blit shaders as internal

Fixes spam of blit shader nir when NIR_PRINT=1 is set.

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

4 years agonir/load_store_vectorize: improve vectorization with identical operations
Rhys Perry [Wed, 10 Jun 2020 10:47:55 +0000 (11:47 +0100)]
nir/load_store_vectorize: improve vectorization with identical operations

We might have several identical options to vectorize an entry with, but
only one might be vectorizable because of writes interfering.

An example of this is a pattern found in some CTS tests:
a = load(0)
b = load(4)
store(0, a)
store(4, b)
a = load(0)
b = load(4)
store(0, a)
store(4, b)
...

It might have attempted to vectorize the first load(0) with the second
load(4) without attempting the second load(4) when the first fails. This
changes vectorize_entries() to continue even if the first try_vectorize()
failed.

fossil-db (Navi):
Totals from 117 (0.09% of 137413) affected shaders:
SGPRs: 7040 -> 7088 (+0.68%)
CodeSize: 276504 -> 276308 (-0.07%); split: -0.08%, +0.01%
Instrs: 51152 -> 51111 (-0.08%); split: -0.09%, +0.01%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5415>

4 years agopanfrost: Remove extra printf arguments.
Vinson Lee [Wed, 23 Sep 2020 00:22:12 +0000 (17:22 -0700)]
panfrost: Remove extra printf arguments.

Fix defects reported by Coverity Scan.

Extra argument to printf format specifier (PRINTF_ARGS)
extra_argument: This argument was not used by the format string: job +
32UL.

Fixes: 89fafe9e926b ("panfrost: XML-ify the fragment job descriptor")
Fixes: d289209ea68f ("panfrost: XML-ify the compute job descriptor")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6829>

4 years agoglsl/linker: Add support for XFB varying lowering in geometry shader
Louis-Francis Ratté-Boulianne [Wed, 12 Aug 2020 16:32:37 +0000 (12:32 -0400)]
glsl/linker: Add support for XFB varying lowering in geometry shader

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

4 years agodocs: recognisable -> recognizable
Erik Faye-Lund [Fri, 25 Sep 2020 13:32:32 +0000 (15:32 +0200)]
docs: recognisable -> recognizable

Most of the docs is US English, let's stick to that.

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

4 years agodocs: url -> URL
Erik Faye-Lund [Fri, 25 Sep 2020 13:24:30 +0000 (15:24 +0200)]
docs: url -> URL

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

4 years agodocs: gitlab -> GitLab
Erik Faye-Lund [Fri, 25 Sep 2020 13:20:20 +0000 (15:20 +0200)]
docs: gitlab -> GitLab

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

4 years agodocs: initialisation -> initialization
Erik Faye-Lund [Fri, 25 Sep 2020 13:09:15 +0000 (15:09 +0200)]
docs: initialisation -> initialization

Most of the docs is US English, let's stick to that.

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

4 years agodocs: timeplan -> time plan
Erik Faye-Lund [Fri, 25 Sep 2020 13:00:39 +0000 (15:00 +0200)]
docs: timeplan -> time plan

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

4 years agodocs: behaviour -> behavior
Erik Faye-Lund [Fri, 25 Sep 2020 12:54:56 +0000 (14:54 +0200)]
docs: behaviour -> behavior

Most of our documentation is US English, so let's stick to that.

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

4 years agodocs: unecessarily -> unnecessarily
Erik Faye-Lund [Fri, 25 Sep 2020 12:51:40 +0000 (14:51 +0200)]
docs: unecessarily -> unnecessarily

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

4 years agodocs: make two acronyms upper-case
Erik Faye-Lund [Fri, 25 Sep 2020 12:50:08 +0000 (14:50 +0200)]
docs: make two acronyms upper-case

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

4 years agodocs: frambuffer -> framebuffer
Erik Faye-Lund [Fri, 25 Sep 2020 12:46:54 +0000 (14:46 +0200)]
docs: frambuffer -> framebuffer

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

4 years agodocs: scons -> SCons
Erik Faye-Lund [Fri, 25 Sep 2020 11:50:31 +0000 (13:50 +0200)]
docs: scons -> SCons

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

4 years agodocs: apis -> APIs
Erik Faye-Lund [Fri, 25 Sep 2020 11:46:54 +0000 (13:46 +0200)]
docs: apis -> APIs

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

4 years agodocs: everytime -> every time
Erik Faye-Lund [Fri, 25 Sep 2020 11:39:35 +0000 (13:39 +0200)]
docs: everytime -> every time

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

4 years agodocs: remove webmaster article
Erik Faye-Lund [Fri, 25 Sep 2020 10:35:27 +0000 (12:35 +0200)]
docs: remove webmaster article

This article is out-of-date, so let's instead forward to the "About
Mesa3D.org" article on the main website. This explains where to submit
merge requests for wanted changes.

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

4 years agodocs: store prefixes in redirects
Erik Faye-Lund [Fri, 25 Sep 2020 10:49:03 +0000 (12:49 +0200)]
docs: store prefixes in redirects

This allows us to link to articles that are using pretty-URLs without
adding an ugly "/index.html"-suffix to them.

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

4 years agodocs: show 'Edit on GitLab'-link
Erik Faye-Lund [Wed, 16 Sep 2020 09:54:21 +0000 (11:54 +0200)]
docs: show 'Edit on GitLab'-link

It's easier to contribute to the documentation if we have links to the
document on GitLab. This will allow people to easily edit docs, or to
realize where in the source-tree they are without having to search.

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

4 years agodocs: escape backquote character
Erik Faye-Lund [Fri, 25 Sep 2020 10:58:30 +0000 (12:58 +0200)]
docs: escape backquote character

This unescaped backquote charcter confuses Sphinx, making it emit a
warning and slightly confused HTML in the end.

Let's escape it instead, to keep things sane.

Fixes: fdff24d930d ("docs: add release notes for 20.1.8")
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6863>

4 years agolima: set clear depth value to 0x00ffffff as default
Andreas Baierl [Wed, 23 Sep 2020 14:59:19 +0000 (16:59 +0200)]
lima: set clear depth value to 0x00ffffff as default

According to the specs, the initial depth value for a
depth buffer clear is 1. Use 0x00ffffff like the blob does.

We can remove setting this value in lima_clear, because it's
set during job creation now.

Fixes the following dEQP tests:

dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb5_a1_depth_component16
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb4_depth_component16
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgba_depth_component16
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgb_depth_component16

Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: Andreas Baierl <ichgeh@imkreisrum.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6842>

4 years agoandroid: pan/bi: fix typo in bifrost_gen_disasm.c gen rules
Mauro Rossi [Fri, 25 Sep 2020 22:09:07 +0000 (00:09 +0200)]
android: pan/bi: fix typo in bifrost_gen_disasm.c gen rules

Gen rules were erroneusly named as bifrost_gen_disasm*s*
This patch fixes them

Fixes: 792b51713bf4 ("android: pan/bi: Use new disassembler")
Signed-off-by: Mauro Rossi <issor.oruam@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6873>

4 years agopanfrost: Fix bifrost tiler job emission
Boris Brezillon [Fri, 25 Sep 2020 08:27:33 +0000 (10:27 +0200)]
panfrost: Fix bifrost tiler job emission

The tiler descriptor pointer and padding sections were not filled.

Fixes: d289209ea68f ("panfrost: XML-ify the compute job descriptor")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tested-by: Christian Hewitt <christianshewitt@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6859>

4 years agopanfrost: Fix bifrost tiler descriptor definition
Boris Brezillon [Fri, 25 Sep 2020 08:24:43 +0000 (10:24 +0200)]
panfrost: Fix bifrost tiler descriptor definition

The bifrost tiler descriptor definition was wrong, leading to a buffer
overflow.

Fixes: efce73d99d0e ("panfrost: XML-ify the bifrost tiler descriptors")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tested-by: Christian Hewitt <christianshewitt@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6859>

4 years agoci: add dEQP-VK.info.device_extensions to the list of skipped tests
Samuel Pitoiset [Thu, 24 Sep 2020 11:15:58 +0000 (13:15 +0200)]
ci: add dEQP-VK.info.device_extensions to the list of skipped tests

It regularly fails when a new KHR extension is implemented.

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

4 years agoclover: set LLVM min version to 8.0.1
Serge Martin [Sun, 23 Aug 2020 05:57:12 +0000 (07:57 +0200)]
clover: set LLVM min version to 8.0.1

It also bump from 8.0.0 to .1 for AMD gallium and VK

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6336>

4 years agoclover/nir: Call the memcpy lowering pass
Jason Ekstrand [Mon, 14 Sep 2020 20:56:48 +0000 (15:56 -0500)]
clover/nir: Call the memcpy lowering pass

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

4 years agospirv: Add support for OpCopyMemorySized
Jason Ekstrand [Mon, 14 Sep 2020 19:18:24 +0000 (14:18 -0500)]
spirv: Add support for OpCopyMemorySized

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

4 years agonir: Add a lowering pass to lower memcpy
Jason Ekstrand [Mon, 14 Sep 2020 20:20:37 +0000 (15:20 -0500)]
nir: Add a lowering pass to lower memcpy

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

4 years agonir: Add a new memcpy intrinsic
Jason Ekstrand [Mon, 14 Sep 2020 20:21:47 +0000 (15:21 -0500)]
nir: Add a new memcpy intrinsic

This matches SPIR-V's OpCopyMemorySized

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

4 years agospirv: Use the new types helpers
Jason Ekstrand [Mon, 14 Sep 2020 21:30:16 +0000 (16:30 -0500)]
spirv: Use the new types helpers

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

4 years agocompiler/types: Add glsl_baseN_t_type(bit_size) helpers
Jason Ekstrand [Mon, 14 Sep 2020 21:30:03 +0000 (16:30 -0500)]
compiler/types: Add glsl_baseN_t_type(bit_size) helpers

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

4 years agogallivm: add support for lowered IO in vertex shaders
Marek Olšák [Fri, 11 Sep 2020 23:59:32 +0000 (19:59 -0400)]
gallivm: add support for lowered IO in vertex shaders

for Selection/Feedback/RasterPos in st/mesa.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6698>

4 years agomeson/anv: Use variable that checks for --build-id
Dylan Baker [Tue, 22 Sep 2020 16:02:46 +0000 (09:02 -0700)]
meson/anv: Use variable that checks for --build-id

fixes: d1992255bb29054fa51763376d125183a9f602f3
       ("meson: Add build Intel "anv" vulkan driver")

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

4 years agovtn/opencl: Switch fma to conditionally use libclc for 32bit floats
Jesse Natalie [Tue, 18 Aug 2020 15:00:29 +0000 (08:00 -0700)]
vtn/opencl: Switch fma to conditionally use libclc for 32bit floats

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6035>

4 years agovtn/opencl: Only use libclc ldexp when lower_ldexp is set
Jesse Natalie [Tue, 18 Aug 2020 14:59:56 +0000 (07:59 -0700)]
vtn/opencl: Only use libclc ldexp when lower_ldexp is set

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6035>

4 years agovtn/opencl: Switch some nir-sequence ops to use libclc
Jesse Natalie [Tue, 18 Aug 2020 14:58:20 +0000 (07:58 -0700)]
vtn/opencl: Switch some nir-sequence ops to use libclc

All of these are pretty well-defined. Rather than implementing them
as a sequence of nir ops, we can just use the libclc implementation.

v2 (idr): Delete functions that are now unused.

Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6035>

4 years agovtn/opencl: Switch division-related ops to use libclc
Jesse Natalie [Tue, 18 Aug 2020 14:55:42 +0000 (07:55 -0700)]
vtn/opencl: Switch division-related ops to use libclc

Specifically, fmod only uses libclc if it was going to be lowered.
Also, add missing half_divide and half_recip handling.

Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6035>

4 years agovtn/opencl: Switch exp/pow/log to use libclc
Jesse Natalie [Tue, 18 Aug 2020 14:52:27 +0000 (07:52 -0700)]
vtn/opencl: Switch exp/pow/log to use libclc

Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6035>

4 years agovtn/opencl: Switch non-native trig to use libclc
Jesse Natalie [Tue, 18 Aug 2020 14:42:51 +0000 (07:42 -0700)]
vtn/opencl: Switch non-native trig to use libclc

Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6035>

4 years agovtn/opencl: Hook up OpenCL async copy and group wait opcodes via libclc
Jesse Natalie [Fri, 25 Sep 2020 19:13:17 +0000 (12:13 -0700)]
vtn/opencl: Hook up OpenCL async copy and group wait opcodes via libclc

Adds an additional hook for spirv_to_nir to handle a core opcode via
the OpenCL libclc infrastructure, and adds handling for SpvOpGroupAsyncCopy and
SpvOpGroupWaitEvents.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6035>

4 years agovtn/opencl: Rework handle_instr to be able to handle core SPIR-V opcodes via libclc
Jesse Natalie [Fri, 25 Sep 2020 19:11:14 +0000 (12:11 -0700)]
vtn/opencl: Rework handle_instr to be able to handle core SPIR-V opcodes via libclc

The OpenCL async copy/wait opcodes are core SPIR-V, rather than OpenCL extension opcodes.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6035>

4 years agovtn/opencl: Implement a lot of opcodes via libclc
Jesse Natalie [Tue, 18 Aug 2020 14:37:00 +0000 (07:37 -0700)]
vtn/opencl: Implement a lot of opcodes via libclc

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6035>

4 years agoclover: handle libclc shader (v3)
Dave Airlie [Wed, 10 Apr 2019 00:24:46 +0000 (10:24 +1000)]
clover: handle libclc shader (v3)

This works by taking the spirv produced by libclc which contains
a lot of mangled function entrypoints identified with LinkageAttribute decorations.

This patch just sets up clover to load the libclc blob and convert it to
library nir, and support inlining application nir with calls to libclc.

v2: Add a disk cache support for this object, to avoid the spirv parsing
overheads each time. move spirv->nir to lazy instantiation to avoid
the mess with glsl types and constructor ordering.
v3: make disk cache optional

v1-Reviewed-by: Jesse Natalie <jenatali@microsoft.com>

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

4 years agoutil: add missing extern C
Dave Airlie [Thu, 27 Aug 2020 20:17:46 +0000 (06:17 +1000)]
util: add missing extern C

This code is included in c++ code via disk_cache in theory,
in practice it never has been.

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

4 years agovtn/opencl: Add infrastructure for calling out to libclc
Jesse Natalie [Tue, 18 Aug 2020 14:16:32 +0000 (07:16 -0700)]
vtn/opencl: Add infrastructure for calling out to libclc

This patch adds a function remap table with name mangling, which
can convert a SPIR-V OpenCL extension opcode to a call to the external
libclc shader, which will be lowered/inlined after conversion.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6035>

4 years agoclover/nir: add libclc lowering pass
Dave Airlie [Mon, 18 Nov 2019 06:37:28 +0000 (16:37 +1000)]
clover/nir: add libclc lowering pass

This pass goes through all the functions in the shader, checks
if the matching function is in the clc spir-v library and inlines
the replacement from there it is.

v2 (daniels): Also copy variables from the libclc shader
v3 (jekstrand): Fix progress return, only run variable inlining once
v4 (jekstrand): Have function inlining also copy vars for us

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