platform/upstream/mesa.git
3 years agozink: optimize shader recalc
Mike Blumenkrantz [Fri, 14 May 2021 22:33:15 +0000 (18:33 -0400)]
zink: optimize shader recalc

now we only have to loop over the changed shaders that exist for the
program, and we can avoid a lot of hashing operations by reusing stored
hash values where possible

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

3 years agozink: set dedicated allocation when needed
Bas Nieuwenhuizen [Wed, 27 Jan 2021 17:06:21 +0000 (12:06 -0500)]
zink: set dedicated allocation when needed

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11958>

3 years agozink: hook up VK_KHR_dedicated_allocation
Mike Blumenkrantz [Mon, 19 Jul 2021 15:33:59 +0000 (11:33 -0400)]
zink: hook up VK_KHR_dedicated_allocation

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

3 years agozink: check for dedicated allocation requirements during image alloc
Mike Blumenkrantz [Mon, 19 Jul 2021 15:33:04 +0000 (11:33 -0400)]
zink: check for dedicated allocation requirements during image alloc

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

3 years agofreedreno/ir3: Reduce choose_instr_dec() and _inc() overhead.
Emma Anholt [Tue, 13 Jul 2021 20:39:36 +0000 (13:39 -0700)]
freedreno/ir3: Reduce choose_instr_dec() and _inc() overhead.

If you didn't have a freed+ready instruction, you'd redo the live_effect
and check_instr() logic multiple times per instr.  Replace the multiple
loops in each function with a ranking that I think is more readable,
reducing the overhead in the process.

debugoptimized dEQP-GLES31.functional.ubo.random.all_per_block_buffers.20
runtime goes from ~3.5s -> ~3.0s on my lazor.  No shader-db change.

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

3 years agofeatures: VK_EXT_color_write_enable for lavapipe
Mike Blumenkrantz [Mon, 19 Jul 2021 21:21:04 +0000 (17:21 -0400)]
features: VK_EXT_color_write_enable for lavapipe

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

3 years agolavapipe: implement VK_EXT_color_write_enable
Mike Blumenkrantz [Mon, 19 Jul 2021 20:23:31 +0000 (16:23 -0400)]
lavapipe: implement VK_EXT_color_write_enable

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

3 years agolavapipe: add a padding member to rendering_state
Mike Blumenkrantz [Mon, 19 Jul 2021 18:54:53 +0000 (14:54 -0400)]
lavapipe: add a padding member to rendering_state

I always forget where to steal bits from otherwise

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

3 years agogallium: Remove dead pb_malloc_buffer_create function prototype
Kenneth Graunke [Fri, 16 Jul 2021 02:39:50 +0000 (19:39 -0700)]
gallium: Remove dead pb_malloc_buffer_create function prototype

This was deleted by commit ec686a66dbf2180631564a3877884b1e4d0c8ea4.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11922>

3 years agowl/shm: don't fetch formats if not requested.
Dave Airlie [Mon, 19 Jul 2021 00:22:09 +0000 (10:22 +1000)]
wl/shm: don't fetch formats if not requested.

This aligns the code with the drm format code

Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11945>

3 years agov3d/driconf: Expose non-MSAA texture limits for mutter and gnome-shell
Jose Maria Casanova Crespo [Fri, 16 Jul 2021 12:30:51 +0000 (14:30 +0200)]
v3d/driconf: Expose non-MSAA texture limits for mutter and gnome-shell

To enable dual 4k displays on mutter or gnome-shell under X11 we need to
expose the non-MSAA texture limit as we did for Xorg at 60a64f028d75ad6
("v3d: Use driconf to expose non-MSAA texture limits for Xorg.")

https://gitlab.gnome.org/GNOME/mutter/-/issues/1874

Cc: 21.1 21.2 mesa-stable
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11926>

3 years agonv50/ir/nir: fix smem size for GL
Karol Herbst [Thu, 27 May 2021 16:59:37 +0000 (18:59 +0200)]
nv50/ir/nir: fix smem size for GL

Originally I fixed the case where the nir itself has a shared mem size of
0, but the frontend (e.g. clover) set it to some other value.

But st/mesa sets the shared mem size on the state object as well and we
end up actually doubling the value in the driver as we set smemSize to the
value from the state object before calling into the compiler.

So just max the value instead.

Fixes the compute_shader.shared-max CTS test.

Fixes: dc667b1f192 ("nv50/ir/nir: fix smem size")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11047>

3 years agov3dv: implement VK_EXT_physical_device_drm
Andreas Bergmeier [Sun, 28 Feb 2021 18:52:36 +0000 (18:52 +0000)]
v3dv: implement VK_EXT_physical_device_drm

Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9320>

3 years agonouveau: Support nir_intrinsic_*_atomic_fadd
M Henning [Fri, 26 Mar 2021 20:06:58 +0000 (13:06 -0700)]
nouveau: Support nir_intrinsic_*_atomic_fadd

This fixes failures in piglit's nv_shader_atomic_float tests with
NV50_PROG_USE_NIR=1

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

3 years agosoftpipe/aniso: move DDQ calculation to after scaling.
Dave Airlie [Fri, 16 Jul 2021 02:28:57 +0000 (12:28 +1000)]
softpipe/aniso: move DDQ calculation to after scaling.

I've read the papers on EWA filters and it seems like the calculate
DDQ = 2 * A after the scaling of A happens. This seems to make
things less blurry and more like real aniso.

Fixes: 2135aba8 ("softpipe: Constify variables")
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11917>

3 years agopan/bi: Shrink live array to 8-bits
Alyssa Rosenzweig [Fri, 16 Jul 2021 23:17:53 +0000 (19:17 -0400)]
pan/bi: Shrink live array to 8-bits

We only actually use 4-bits, so we could shrink again. But this by
itself means 1/2 the memory usage for liveness analysis and 1/2 the
copying/alloc/free.

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

3 years agopan/bi: Clean up liveness freeing
Alyssa Rosenzweig [Fri, 16 Jul 2021 22:43:19 +0000 (18:43 -0400)]
pan/bi: Clean up liveness freeing

This is ralloc'd, kind of pointless.

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

3 years agopan/bi: Clean up useless casts
Alyssa Rosenzweig [Fri, 16 Jul 2021 22:40:39 +0000 (18:40 -0400)]
pan/bi: Clean up useless casts

Left over from removing inheritance with sed instead of coccinelle.

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

3 years agopan/bi: Copy block bi_block
Alyssa Rosenzweig [Fri, 16 Jul 2021 22:33:43 +0000 (18:33 -0400)]
pan/bi: Copy block bi_block

Gets rid of the silly inheritance everywhere, which has caused _far_
more problems in practice than it has fixed. It was an idea I tried
before the pandemic. It didn't work. I'm finally cleaning it up.

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

3 years agopan/bi: Copy back bi_foreach_successor
Alyssa Rosenzweig [Fri, 16 Jul 2021 22:33:32 +0000 (18:33 -0400)]
pan/bi: Copy back bi_foreach_successor

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

3 years agopan/bi: Copy back add_successor
Alyssa Rosenzweig [Fri, 16 Jul 2021 22:22:54 +0000 (18:22 -0400)]
pan/bi: Copy back add_successor

Trying to get back independent block types.

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

3 years agopan/bi: Copy liveness routines back
Alyssa Rosenzweig [Fri, 16 Jul 2021 22:18:08 +0000 (18:18 -0400)]
pan/bi: Copy liveness routines back

We'll diverge shortly.

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

3 years agoaco: Fix how p_elect interacts with optimizations.
Timur Kristóf [Sat, 17 Jul 2021 21:25:52 +0000 (23:25 +0200)]
aco: Fix how p_elect interacts with optimizations.

Since p_elect doesn't have any operands, ACO's value numbering and/or
the pre-RA optimizer could currently recognize two p_elect instructions
in two different blocks as the same.

This patch adds exec as an operand to p_elect in order to achieve
correct behavior.

Fixes: e66f54e5c83fd545e1a4062e683b584a35dacc00
Closes: #5080
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11943>

3 years agoglsl: replace some C++ code with C
Timothy Arceri [Thu, 15 Jul 2021 12:28:00 +0000 (22:28 +1000)]
glsl: replace some C++ code with C

This replaces some new/delete uses with malloc/free.

This is more consistent with most of the other glsl IR code but
more importantly it allows the game "Battle Block Theater" to
start working on some mesa drivers. The game overrides new and
ends up throwing an assert and crashing when it sees this
function calling new [0].

Note: The game still crashes with radeonsi due to similar conflicts
with LLVM.

CC: mesa-stable
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11907>

3 years agomesa: fix incorrect comment in draw_gallium_multimode
Marek Olšák [Mon, 14 Jun 2021 03:00:44 +0000 (23:00 -0400)]
mesa: fix incorrect comment in draw_gallium_multimode

Fixes: 4566383ae4b ("gallium: move pipe_draw_info::index_bias to pipe_draw_start_count_bias")

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

3 years agomesa: remove unused drawid_offset parameter from DrawGalliumMultiMode
Marek Olšák [Tue, 15 Jun 2021 00:51:20 +0000 (20:51 -0400)]
mesa: remove unused drawid_offset parameter from DrawGalliumMultiMode

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11939>

3 years agost/mesa: inline st_setup_arrays on MSVC too by adding a wrapper
Marek Olšák [Mon, 14 Jun 2021 23:39:33 +0000 (19:39 -0400)]
st/mesa: inline st_setup_arrays on MSVC too by adding a wrapper

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

3 years agoutil/foz: stop crashing on destroy if prepare hasn't been called
Mike Blumenkrantz [Fri, 16 Jul 2021 16:50:21 +0000 (12:50 -0400)]
util/foz: stop crashing on destroy if prepare hasn't been called

Fixes: eca6bb9540d ("util/fossilize_db: add basic fossilize db util to read/write shader caches")

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11931>

3 years agoanv: fix feature/property/sizes reported for fragment shading rate
Iván Briano [Thu, 15 Jul 2021 02:38:28 +0000 (19:38 -0700)]
anv: fix feature/property/sizes reported for fragment shading rate

Fixes: 790ff1ceac8 ("anv: fixup physical device properties of fragment shading rate")

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

3 years agoutil/tc: make clear calls async
Mike Blumenkrantz [Tue, 13 Jul 2021 23:52:47 +0000 (19:52 -0400)]
util/tc: make clear calls async

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11864>

3 years agoradeonsi: document a missing synchronization for bindless textures
Marek Olšák [Thu, 15 Jul 2021 15:39:20 +0000 (11:39 -0400)]
radeonsi: document a missing synchronization for bindless textures

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11900>

3 years agoradeonsi: set scratch_state dirty only if ctx->scratch_buffer allocated
Yogesh mohan marimuthu [Tue, 15 Jun 2021 09:13:33 +0000 (14:43 +0530)]
radeonsi: set scratch_state dirty only if ctx->scratch_buffer allocated

if ctx->scratch_buffer is NULL, then no need to update SPI_TMPRING_SIZE
size register.

Signed-off-by: Yogesh mohan marimuthu <yogesh.mohanmarimuthu@amd.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11900>

3 years agoradeonsi: remove redundant setting scratch_state atom dirty
Yogesh mohan marimuthu [Tue, 15 Jun 2021 09:07:40 +0000 (14:37 +0530)]
radeonsi: remove redundant setting scratch_state atom dirty

Whenever scratch buffer is allocated, current spi_tmpring_size and
previous spi_tmpring_size cannot be same and hence scratch_state will be
set dirty as part of "if (spi_tmpring_size != sctx->spi_tmpring_size)".
Removing redundant dirty bit sat while allocating scratch buffer.

Signed-off-by: Yogesh mohan marimuthu <yogesh.mohanmarimuthu@amd.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11900>

3 years agoradeonsi: don't expose no-attachment MSAA 16x on all 1 RB chips due to issues
Marek Olšák [Wed, 14 Jul 2021 12:27:40 +0000 (08:27 -0400)]
radeonsi: don't expose no-attachment MSAA 16x on all 1 RB chips due to issues

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11900>

3 years agolavapipe: don't read line stipple info in pipeline creation if stipple is disabled
Mike Blumenkrantz [Fri, 16 Jul 2021 20:59:37 +0000 (16:59 -0400)]
lavapipe: don't read line stipple info in pipeline creation if stipple is disabled

otherwise these values may be (harmlessly) garbage

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

3 years agogallium/ttn: Add a debug flag for dumping the shaders.
Eric Anholt [Sat, 9 Jan 2021 00:04:42 +0000 (16:04 -0800)]
gallium/ttn: Add a debug flag for dumping the shaders.

Just like for ntt, it's nice to be able to dump the shader that assertion
failed on you.

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

3 years agonir_to_tgsi: Fix image declarations.
Emma Anholt [Tue, 12 Jan 2021 00:21:20 +0000 (16:21 -0800)]
nir_to_tgsi: Fix image declarations.

We failed to translate the target type, which virgl needs for translation.
Also the read_only flag is for consts, shader inputs, and uniforms.  The
access flag gives you the readonly qualifier.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11916>

3 years agoanv: Stop reference counting semaphores
Jason Ekstrand [Tue, 23 Mar 2021 19:00:25 +0000 (14:00 -0500)]
anv: Stop reference counting semaphores

The only reason we had to refcount semaphores was for the ancient
sync_file semaphores which we used for pre-syncobj kernels.  Now that we
assume syncobj and that code is gone, we don't need reference counting
anymore either.

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

3 years agoanv: Drop unused sync_file and BO semaphore code
Jason Ekstrand [Tue, 23 Mar 2021 18:58:34 +0000 (13:58 -0500)]
anv: Drop unused sync_file and BO semaphore code

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

3 years agoanv: Assume syncobj support
Jason Ekstrand [Tue, 23 Mar 2021 18:58:12 +0000 (13:58 -0500)]
anv: Assume syncobj support

Sync object for i915 support has been in upstream Linux since 4.14 which
is 3.5 years old at this point and, as far as we can tell, it also
exists in all the ChromeOS kernels.  Assuming it allows us to drop some
of our more gnarly synchronization fall-back paths.

At the time of merge, ChromeOS was on the following kernels:

 - kernel 3.18: SKL
 - kernel 4.4: BYT, KBL, APL
 - Kernel 4.14: BDW, GLK

All of the pre-4.14 kernels have had syncobj support back-ported.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9777>

3 years agointel/eu: Start validating LSC message descriptors
Jason Ekstrand [Wed, 30 Jun 2021 15:27:27 +0000 (10:27 -0500)]
intel/eu: Start validating LSC message descriptors

This is certainly not a full validation but it at least gets the
framework in place and validates one hard-to-find restriction.

Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11657>

3 years agointel/compiler: Enable has_iadd3 option on XeHP
Sagar Ghuge [Tue, 29 Jun 2021 00:49:01 +0000 (17:49 -0700)]
intel/compiler: Enable has_iadd3 option on XeHP

shader-db result is inconclusive but doesn't harm to include it for
reference.

Shader-db result on XeHPG:

total instructions in shared programs: 1397405 -> 1397315 (<.01%)
instructions in affected programs: 88252 -> 88162 (-0.10%)
helped: 20
HURT: 7
helped stats (abs) min: 1 max: 18 x̄: 7.20 x̃: 7
helped stats (rel) min: 0.03% max: 2.20% x̄: 0.37% x̃: 0.23%
HURT stats (abs)   min: 4 max: 23 x̄: 7.71 x̃: 4
HURT stats (rel)   min: 0.10% max: 0.68% x̄: 0.22% x̃: 0.11%
95% mean confidence interval for instructions value: -6.81 0.14
95% mean confidence interval for instructions %-change: -0.42% -0.02%
Inconclusive result (value mean confidence interval includes 0).

total cycles in shared programs: 119924219 -> 119931868 (<.01%)
cycles in affected programs: 45029193 -> 45036842 (0.02%)
helped: 11
HURT: 16
helped stats (abs) min: 15 max: 5490 x̄: 1655.73 x̃: 140
helped stats (rel) min: <.01% max: 0.35% x̄: 0.11% x̃: <.01%
HURT stats (abs)   min: 1 max: 2944 x̄: 1616.38 x̃: 1743
HURT stats (rel)   min: <.01% max: 0.17% x̄: 0.09% x̃: 0.10%
95% mean confidence interval for cycles value: -606.11 1172.70
95% mean confidence interval for cycles %-change: -0.04% 0.07%
Inconclusive result (value mean confidence interval includes 0).

v2:
- Include shader-db result (Jason)

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11596>

3 years agonir: Add optimizations for iadd3
Sagar Ghuge [Tue, 29 Jun 2021 00:41:20 +0000 (17:41 -0700)]
nir: Add optimizations for iadd3

This patch also adds has_iadd3 bit to give more control if backend
supports ternary add instruction or not.

v2:
- Add patterns in late optimization (Connor Abbott)

Suggested-by: Alyssa/Jason
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11596>

3 years agointel/compiler: Allow ternary add to promote source to immediate
Sagar Ghuge [Thu, 8 Jul 2021 01:14:57 +0000 (18:14 -0700)]
intel/compiler: Allow ternary add to promote source to immediate

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11596>

3 years agointel/compiler: Make decision based on source type instead of opcode
Sagar Ghuge [Thu, 8 Jul 2021 01:10:19 +0000 (18:10 -0700)]
intel/compiler: Make decision based on source type instead of opcode

This patch restructure code a little bit to check if source can be
represented as immediate operand. This is a foundation for next patch
which add checks for integer operand as well.

Suggested-by: Jason Ekstrand <jason@jlekstrand.net>
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11596>

3 years agointel/compiler: Add support for ternary add instruction on XeHP
Sagar Ghuge [Sat, 6 Jun 2020 05:40:26 +0000 (22:40 -0700)]
intel/compiler: Add support for ternary add instruction on XeHP

v2:
- Re-arragne opcode in correct order (Matt Turner)
- Move ADD3 case closer to LRP (Jason)

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11596>

3 years agonir: Add new opcode for ternary addition
Sagar Ghuge [Sat, 6 Jun 2020 05:52:33 +0000 (22:52 -0700)]
nir: Add new opcode for ternary addition

v2:
- Make it 2src commutative (Connor Abbott)

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11596>

3 years agoradv: Use pre-computed viewport transform for NGG culling state.
Timur Kristóf [Wed, 14 Jul 2021 10:47:35 +0000 (12:47 +0200)]
radv: Use pre-computed viewport transform for NGG culling state.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11839>

3 years agoradv: remove unused variable from radv_emit_viewport
Mike Blumenkrantz [Thu, 15 Jul 2021 13:46:27 +0000 (09:46 -0400)]
radv: remove unused variable from radv_emit_viewport

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

3 years agoradv: pre-calculate viewport transforms
Mike Blumenkrantz [Fri, 9 Jul 2021 18:30:43 +0000 (14:30 -0400)]
radv: pre-calculate viewport transforms

this requires more storage in the viewport struct, but it avoids
the need to repeatedly calculate the same transform if e.g., a meta
operation occurs, which can save about 5% cpu in some cases

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

3 years agoradv: merge si_write_viewport into radv_emit_viewport
Mike Blumenkrantz [Fri, 9 Jul 2021 18:30:02 +0000 (14:30 -0400)]
radv: merge si_write_viewport into radv_emit_viewport

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

3 years agofreedreno: fix wrong tile aligment for 3 CCU gpu
Danylo Piliaiev [Fri, 16 Jul 2021 13:01:14 +0000 (16:01 +0300)]
freedreno: fix wrong tile aligment for 3 CCU gpu

Fixes: 78c8a8af80d5b0ccd68dd85ff7ecbb699be31f7d "freedreno: Generate device-info tables at build time"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5060

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11928>

3 years agoaco: Remove s_and with exec when all lanes are active.
Timur Kristóf [Fri, 18 Jun 2021 13:25:35 +0000 (15:25 +0200)]
aco: Remove s_and with exec when all lanes are active.

This helps NGG GS and culling shaders.
No Fossil DB changes without NGG culling.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11458>

3 years agoaco: Allow elect to take advantage of knowing when all lanes are active.
Timur Kristóf [Fri, 18 Jun 2021 13:21:43 +0000 (15:21 +0200)]
aco: Allow elect to take advantage of knowing when all lanes are active.

Implement elect using a pseudo-op which is lowered during the
insert_exec_mask pass. This makes it possible to emit a more
optimal sequence when the exec mask is constant.

Fossil DB results on Sienna Cichlid:
Totals from 211 (0.16% of 128647) affected shaders:
CodeSize: 2254356 -> 2240468 (-0.62%); split: -0.62%, +0.00%
Instrs: 438471 -> 434996 (-0.79%); split: -0.80%, +0.01%
Latency: 2717082 -> 2709400 (-0.28%); split: -0.28%, +0.00%
InvThroughput: 566987 -> 566342 (-0.11%); split: -0.11%, +0.00%
Copies: 40058 -> 40162 (+0.26%)
Branches: 31209 -> 31211 (+0.01%)
PreSGPRs: 9927 -> 10125 (+1.99%)

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11458>

3 years agoaco: Swap s_and operand order for ballot.
Timur Kristóf [Fri, 18 Jun 2021 09:48:18 +0000 (11:48 +0200)]
aco: Swap s_and operand order for ballot.

This allows our optimizer to recognize this and eliminate it when
it can prove that the s_and with exec is unneeded.

Fossil DB changes on Sienna Cichlid:
Totals from 1969 (1.53% of 128647) affected shaders:
CodeSize: 9468228 -> 9469348 (+0.01%); split: -0.00%, +0.01%
Instrs: 1773566 -> 1773581 (+0.00%); split: -0.01%, +0.01%
Latency: 19504042 -> 19503385 (-0.00%); split: -0.00%, +0.00%
InvThroughput: 3617406 -> 3617333 (-0.00%)
Copies: 108998 -> 110592 (+1.46%)

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11458>

3 years agointel/perf: Use intel_i915_query_flags instead of hand-rolling it
Jason Ekstrand [Wed, 7 Jul 2021 20:05:46 +0000 (15:05 -0500)]
intel/perf: Use intel_i915_query_flags instead of hand-rolling it

Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11770>

3 years agointel/dev: Use intel_i915_query_alloc in query_topology
Jason Ekstrand [Wed, 7 Jul 2021 19:41:20 +0000 (14:41 -0500)]
intel/dev: Use intel_i915_query_alloc in query_topology

Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11770>

3 years agoiris: Use intel_i915_query for meminfo
Jason Ekstrand [Wed, 7 Jul 2021 19:36:38 +0000 (14:36 -0500)]
iris: Use intel_i915_query for meminfo

Error handling with DRM_IOCTL_I915_QUERY is tricky and we got it wrong
in one of the two calls here.  Use the common helper instead.  This also
fixes a theoretical bug where calloc() fails.  While we're here, inline
iris_bufmgr_update_meminfo because we're not really benefiting from
having it separate anymore.

Fixes: e60114b2ae11 "iris/bufmgr: Query memory region info."
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11770>

3 years agoanv: Use intel_i915_query_alloc for memory regions
Jason Ekstrand [Wed, 7 Jul 2021 19:32:23 +0000 (14:32 -0500)]
anv: Use intel_i915_query_alloc for memory regions

Error handling with DRM_IOCTL_I915_QUERY is tricky and we got it wrong
in one of the two calls here.  Use the common helper instead.  This also
fixes a theoretical bug where calloc() fails.  While we're here, inline
anv_track_meminfo because we're not really benefiting from having it
separate anymore.

Fixes: 65e8d72bc106 "anv: Query memory region info"
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11770>

3 years agointel: Pull anv_i915_query into common code
Jason Ekstrand [Wed, 7 Jul 2021 19:27:12 +0000 (14:27 -0500)]
intel: Pull anv_i915_query into common code

We also add a helper which contains the standard query+alloc+query
pattern used by anv_gem_get_engine_info().  The caller is required to
free the pointer.

These are declared static inline not because we care about the
performance of these helpers but because we're going to use them in the
intel_device_info code and we don't want a link dependency.

Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11770>

3 years agoanv: Handle errors properly in anv_i915_query
Jason Ekstrand [Wed, 7 Jul 2021 19:21:58 +0000 (14:21 -0500)]
anv: Handle errors properly in anv_i915_query

DRM_IOCTL_I915_QUERY is a multi-query.  The most egregious errors are
returned via the usual ioctl error mechanism but there are also
per-query errors that are indicated by item.length < 0.  We need to
handle those as well.  While we're at it, scrape errno so we can return
a proper integer error.

Fixes: c0d07c838a9f "anv: Support i915 query (DRM_IOCTL_I915_QUERY)..."
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11770>

3 years agoradv: Remove num_viewports from radv_skip_ngg_culling.
Timur Kristóf [Thu, 15 Jul 2021 15:19:56 +0000 (17:19 +0200)]
radv: Remove num_viewports from radv_skip_ngg_culling.

NGG culling is not compiled into shaders that can use multiple
viewports, so it's not necessary to check it here.

Fixes: 9a95f5487f5ab83fa44bea12afa30cf1a25fc9db
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11910>

3 years agoradv: Don't compile NGG culling into shaders that write viewport index.
Timur Kristóf [Thu, 15 Jul 2021 15:12:50 +0000 (17:12 +0200)]
radv: Don't compile NGG culling into shaders that write viewport index.

We don't support NGG culling with multiple viewports yet.

Fixes: f30e4351de2f562955435a04cf75dd641639d31c
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11910>

3 years agoiris: Re-emit MEDIA_VFE_STATE for variable group size shaders
Jason Ekstrand [Wed, 5 May 2021 01:24:54 +0000 (20:24 -0500)]
iris: Re-emit MEDIA_VFE_STATE for variable group size shaders

It implicitly contains the number of threads via the CURBE allocation
size field.

Fixes: 33c61eb2f105 "iris: Implement ARB_compute_variable_group_size"
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10640>

3 years agov3dv: don't emit frame setup more than once for multilayered framebuffers
Iago Toral Quiroga [Fri, 16 Jul 2021 08:13:01 +0000 (10:13 +0200)]
v3dv: don't emit frame setup more than once for multilayered framebuffers

We only need to do this once per job, not once per layer.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11923>

3 years agov3dv: don't overallocate tile state for meta TLB operations
Iago Toral Quiroga [Fri, 16 Jul 2021 06:29:08 +0000 (08:29 +0200)]
v3dv: don't overallocate tile state for meta TLB operations

Generally, all meta operations that are implemented via the TLB and
only involve tile load/store operations only need one layer worth
of tile state memory and a single frame setup pointing the binner
to that memory.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11923>

3 years agov3dv: allow limiting amount of tile state allocated
Iago Toral Quiroga [Fri, 16 Jul 2021 06:23:11 +0000 (08:23 +0200)]
v3dv: allow limiting amount of tile state allocated

With multilayered framebuffer we want to allocate enough tile state for
all layers involved, so te binner can handle layered rendering where
a geometry shader is used to redirect primitives to specific layers by
writing to gl_Layer.

However, we may also have layered framebuffers in cases where layered
rendering won't be used. Typically this will happen for meta copy/clear
operations, where we setup multilayered framebuffers but then we just
load and/or store the tile buffer without ever rendering a primitive,
let alone use a geometry shader to do layered rendering. In these cases
we can reduce the amount of tile state allocated to a sigle layer.

This patch allows us to specify if we should allocate tile state for all
layers when we start a new frame. We will take advantage of this in
later patches targetting the meta copy/clear code paths.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11923>

3 years agov3dv: improve TLB layered image clears
Iago Toral Quiroga [Thu, 15 Jul 2021 09:05:20 +0000 (11:05 +0200)]
v3dv: improve TLB layered image clears

Our meta image clearing code was emitting a job per layer to clear,
but we can emit a single job that packs multiple layer clears for
better performance. For this we just need to make sure we pass
the maximum layer we can emit to v3dv_job_start_frame so we
allocate sufficent tile state memory.

Actually, since this operation is TLB based and doesn't make use of
layered rendering, we could do with allocating less tile state
memory too. We will improve this for this and many others TLB meta
implementations in follow up patches.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11923>

3 years agov3dv: remove unused layer field from struct rcl_clear_info
Iago Toral Quiroga [Thu, 15 Jul 2021 08:43:57 +0000 (10:43 +0200)]
v3dv: remove unused layer field from struct rcl_clear_info

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11923>

3 years agoradv: fix specifying the stencil layout for separate depth/stencil layouts
Samuel Pitoiset [Wed, 14 Jul 2021 15:04:18 +0000 (17:04 +0200)]
radv: fix specifying the stencil layout for separate depth/stencil layouts

The Vulkan spec has been updated few months ago again and pNext is
always honored if present.

Found this with vkd3d-proton which implemented separate depth/stencil
layouts recently.

Cc: 21.2 mesa-stable
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/11903>

3 years agoradv: report APUs as discrete GPUs for Red Dead Redemption 2
Samuel Pitoiset [Wed, 14 Jul 2021 09:40:15 +0000 (11:40 +0200)]
radv: report APUs as discrete GPUs for Red Dead Redemption 2

On APUs, we fake heaps to simulate a dGPU setup because it seems to
have the maximum compatibility. Though, some applications like RDR2
still only looks at GTT if the driver reports an iGPU which means it
will only use 1/3rd of total memory available.

This is currently behind a drirc option because it might have
implications for other apps but we might want to extend this later
if everything is fine.

Cc: 21.2 mesa-stable
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/11891>

3 years agoradv: fix bounds checking for zero vertex stride on GFX6-7
Samuel Pitoiset [Thu, 15 Jul 2021 08:10:09 +0000 (10:10 +0200)]
radv: fix bounds checking for zero vertex stride on GFX6-7

GFX6 and GFX10+ have similar logic.

This fixes test_zero_vertex_stride from vkd3d-proton on
Pitcairn (GFX6) and on Bonaire (GFX7).

Cc: 21.2 mesa-stable
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/11904>

3 years agonir: Better document the Boissinot algorithm in nir_from_ssa()
Jason Ekstrand [Mon, 1 Feb 2021 22:10:19 +0000 (16:10 -0600)]
nir: Better document the Boissinot algorithm in nir_from_ssa()

Reviewed-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8815>

3 years agointel/dev: Drop a bogus assert
Jason Ekstrand [Fri, 16 Jul 2021 02:41:06 +0000 (21:41 -0500)]
intel/dev: Drop a bogus assert

In c24ba6cecbac, I copied over the CHV thread count code from i965 and
ANV into common code.  While at it, I added an assert that I thought
should be true based on the comments.  It turns out to be invalid.  Drop
it.

Fixes: c24ba6cecbac "intel/dev: Handle CHV CS thread weirdness in..."
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5072
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11918>

3 years agoanv: Unbreak wide lines on HSW/BDW
Iván Briano [Thu, 15 Jul 2021 20:57:54 +0000 (13:57 -0700)]
anv: Unbreak wide lines on HSW/BDW

I knew there was a reason the limit was at ~8 and not rounded to it.

Fixes: 004fcfe6985 ("anv: fix some multisample lines_wide CTS tests")

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

3 years agoanv: Zero initialize pipeline structs
Caio Marcelo de Oliveira Filho [Wed, 14 Jul 2021 05:24:26 +0000 (22:24 -0700)]
anv: Zero initialize pipeline structs

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

3 years agovulkan/util: Add and use vk_multialloc_zalloc variants
Caio Marcelo de Oliveira Filho [Wed, 14 Jul 2021 05:39:23 +0000 (22:39 -0700)]
vulkan/util: Add and use vk_multialloc_zalloc variants

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

3 years agovulkan/wsi/wayland: Initialise wl_shm pointer in VkImage
Daniel Stone [Thu, 15 Jul 2021 09:19:53 +0000 (10:19 +0100)]
vulkan/wsi/wayland: Initialise wl_shm pointer in VkImage

We don't explicitly calloc the wsi_wl_image to zero; anything that's
expected to be valid needs to be explicitly initialised.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5063
Fixes: 6b36f35734a9 ("vulkan/wsi/wl: add wl_shm support for lavapipe.")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Tested-by: Jan Beich <jbeich@freebsd.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11909>

3 years agovulkan/wsi/wayland: Cosmetic alignment fix
Daniel Stone [Thu, 15 Jul 2021 09:13:50 +0000 (10:13 +0100)]
vulkan/wsi/wayland: Cosmetic alignment fix

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

3 years agodraw: handle resetting draw_id between instances.
Dave Airlie [Thu, 15 Jul 2021 05:25:24 +0000 (15:25 +1000)]
draw: handle resetting draw_id between instances.

If we have a multi draw then the draw_id needs to get reset
between each instance.

Fixes the rest of the VK CTS multidraw tests

Fixes: ce0b1f23c30e ("aux/draw: track increment_draw_id value from draw info")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11899>

3 years agolavapipe: fix indexed multi draw draw_id increment
Dave Airlie [Thu, 15 Jul 2021 05:24:35 +0000 (15:24 +1000)]
lavapipe: fix indexed multi draw draw_id increment

I cut-n-paste this badly from the non-indexed, and used the wrong
struct.

Fixes a bunch of multi-draw CTS

Fixes: cc8f7dbf2a1a ("lavapipe: fix multi-draw regression in shader parameters test")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11899>

3 years agonir: Validate after deserialization.
Emma Anholt [Tue, 13 Jul 2021 23:31:52 +0000 (16:31 -0700)]
nir: Validate after deserialization.

It's a particularly relevant place for NIR bugs to occur, and if you make
a mistake in this code it gets caught in your debug build in something
like mesa/st's call to nir_split_var_copies() during finalization, which is
rather misleading.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11860>

3 years agodocs: mark mesa 21.0 as done
Dylan Baker [Fri, 4 Jun 2021 18:26:18 +0000 (11:26 -0700)]
docs: mark mesa 21.0 as done

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

3 years agoanv: fix some multisample lines_wide CTS tests
Iván Briano [Thu, 22 Apr 2021 18:14:02 +0000 (11:14 -0700)]
anv: fix some multisample lines_wide CTS tests

We can use a better algorithm from ICL and onward by setting a chicken
bit, but prior to that we need to resort to disabling rectangular lines.
Since we don't support strictLines anyway, this shouldn't be a major
issue.

Closes #2833
Fixes dEQP-VK.rasterization.interpolation_multisample_*_bit.*lines_wide

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

3 years agoanv: Don't advertise unsupported shader stages
Iván Briano [Wed, 14 Jul 2021 21:37:40 +0000 (14:37 -0700)]
anv: Don't advertise unsupported shader stages

We don't currently support mesh or ray tracing, so don't advertise their
shader stages as supported for subgroups.

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

3 years agoradv: Use 128-sized vertex grouping for NGG shaders.
Timur Kristóf [Fri, 9 Jul 2021 19:23:25 +0000 (21:23 +0200)]
radv: Use 128-sized vertex grouping for NGG shaders.

This matches what RadeonSI also does.
It seems to improve performance especially with NGG culling shaders.

Eg. in Doom Eternal this gives me +5ish fps.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11810>

3 years agomesa: (correctly) flush more in _mesa_make_current
Adam Jackson [Thu, 10 Jun 2021 14:55:17 +0000 (10:55 -0400)]
mesa: (correctly) flush more in _mesa_make_current

The code being removed here requires that the old context have a
window-system drawable bound to the default framebuffer as a condition
of the context-release flush. I can find no justification for
restricting flushes to contexts like this, and GL 3.0 (etc) let you make
a context current without any drawable bound.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11423>

3 years agoglx/drisw: Nerf PutImage when loaderPrivate == NULL
Adam Jackson [Wed, 16 Jun 2021 01:53:27 +0000 (21:53 -0400)]
glx/drisw: Nerf PutImage when loaderPrivate == NULL

This means the drawable was already destroyed. This can happen during
diplay teardown, destroying the context will make it current first so it
can flush rendering and destroy textures and such, and if the drawable
is already destroyed then flushing to nowhere would crash.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11423>

3 years agoasahi: Move assignment after null check.
Vinson Lee [Thu, 15 Jul 2021 05:23:09 +0000 (22:23 -0700)]
asahi: Move assignment after null check.

Fix defect reported by Coverity Scan.

Dereference before null check (REVERSE_INULL)
check_after_deref: Null-checking so suggests that it may be null,
but it has already been dereferenced on all paths leading to the
check.

Fixes: dcd2d8ca500 ("asahi: Track more Gallium state")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11898>

3 years agoRevert "ci: disable Broadcom CI"
Jose Maria Casanova Crespo [Thu, 15 Jul 2021 11:11:17 +0000 (13:11 +0200)]
Revert "ci:  disable Broadcom CI"

Our POE switch rebooted with factory settings. So devices weren't turning
on/off because of failing SMNP auth.

This reverts commit 87cdcf56455b78b0ca799adccb20c7d23d1b3a51.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11906>

3 years agoutil: document that workaround also fixes Riptale
Timothy Arceri [Wed, 14 Jul 2021 06:03:00 +0000 (16:03 +1000)]
util: document that workaround also fixes Riptale

The games use an idential executable.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11871>

3 years agov3dv: refactor meta copy/clear code
Iago Toral Quiroga [Thu, 15 Jul 2021 06:51:55 +0000 (08:51 +0200)]
v3dv: refactor meta copy/clear code

This change does the following:

- Moves image clearing code from v3dv_meta_copy.c to v3dv_meta_clear.c
  where it belongs.
- Renames v3dv_meta_copy.h to v3dv_meta_common.h since now it is required
  by the copy and clear code.
- Renames 'struct framebuffer_data' type.
- Merges v3dvx_meta_clear.c and v3dvx_meta_copy.c into v3dvx_meta_common.c.
- Prefixes all "public" meta functions with the 'meta' prefix.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11902>

3 years agov3dv: remove more dead clearing code
Iago Toral Quiroga [Thu, 15 Jul 2021 06:23:42 +0000 (08:23 +0200)]
v3dv: remove more dead clearing code

We forgot to remove the v3dvx code for the clearing code fallbacks
we removed after we implemented layered clears.

Fixes: 5ba7f64b45 ('v3dv: remove fallback path for vkCmdClearAttachments')

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11902>

3 years agoci: disable Broadcom CI
Iago Toral Quiroga [Thu, 15 Jul 2021 07:52:04 +0000 (09:52 +0200)]
ci:  disable Broadcom CI

The CI is down at the moment, disable it while we figure out
a solution.

Acked-by: Rob Clark <robclark@freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11901>

3 years agoradv: only init the TC-compat ZRANGE metadata for the depth aspect
Samuel Pitoiset [Wed, 14 Jul 2021 18:05:54 +0000 (20:05 +0200)]
radv: only init the TC-compat ZRANGE metadata for the depth aspect

With separate depth/stencil layouts, if the depth aspect is first
initialized and then cleared, the ZRANGE_PRECISION metadata might
be different than 0. Initializing it again for the stencil aspect
will overwrite the value.

Fixes rendering glitches with Scarlet Nexus on GFX8-9.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5052
Cc: 21.1 21.2 mesa-stable
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/11883>

3 years agonv50/ir: Initialize Value member id in constructor.
Vinson Lee [Thu, 22 Apr 2021 04:06:28 +0000 (21:06 -0700)]
nv50/ir: Initialize Value member id in constructor.

Fix defect reported by Coverity Scan.

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

Suggested-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10401>

3 years agolima: handle fp16 vertex formats
Vasily Khoruzhick [Wed, 14 Jul 2021 06:12:13 +0000 (23:12 -0700)]
lima: handle fp16 vertex formats

12128fb1351e marked fp16 vertex formats supported, but they aren't actually handled
by lima_pipe_format_to_attrib_type(). Fix it by handling it there.
FP16 seems to be the only missing index which is 0x3.

Fixes: 12128fb1351e ("lima: add natively supported vertex buffer formats")

Cc: 21.1 mesa-stable
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11872>

3 years agovenus: refactor vn_EndCommandBuffer
Chia-I Wu [Wed, 14 Jul 2021 23:08:25 +0000 (16:08 -0700)]
venus: refactor vn_EndCommandBuffer

Add vn_cmd_submit as a wrapper to vn_instance_ring_submit.  It is also
designed such that it can be called from any of the vn_Cmd* functions.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11896>

3 years agolavapipe: fix multi-draw regression in shader parameters test
Dave Airlie [Wed, 14 Jul 2021 22:05:03 +0000 (08:05 +1000)]
lavapipe: fix multi-draw regression in shader parameters test

dEQP-VK.draw.shader_draw_parameters.base_instance.draw,Fail
dEQP-VK.draw.shader_draw_parameters.base_instance.draw_indexed,Fail

Fixes: 6b6dda56b5ff ("lavapipe: increment drawid for multidraws")
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11894>

3 years agopan/gen_pack: Use 1U for unpacking log2 to avoid undefined behaviour
Icecream95 [Wed, 14 Jul 2021 00:48:11 +0000 (12:48 +1200)]
pan/gen_pack: Use 1U for unpacking log2 to avoid undefined behaviour

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