platform/upstream/mesa.git
18 months agopvr: Move heap initialisation out of pvr_winsys_helper.
Donald Robson [Wed, 3 May 2023 13:50:36 +0000 (14:50 +0100)]
pvr: Move heap initialisation out of pvr_winsys_helper.

This code will not be used by the new KMD, so it is being moved out of
this shared code area.

Signed-off-by: Donald Robson <donald.robson@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22826>

18 months agopanvk: clear dangling pointers
David Heidelberg [Wed, 3 May 2023 14:57:03 +0000 (16:57 +0200)]
panvk: clear dangling pointers

Fixes:
```
[829/1646] Compiling C object src/panfrost/vulkan/libpanvk_v6.a.p/panvk_vX_meta_clear.c.o
In function 'panvk_meta_clear_zs_img',
    inlined from 'panvk_v6_CmdClearDepthStencilImage' at ../src/panfrost/vulkan/panvk_vX_meta_clear.c:457:7:
../src/panfrost/vulkan/panvk_vX_meta_clear.c:415:26: warning: storing the address of local variable 'view' in '((struct pan_fb_info *)((char *)commandBuffer + 144))[23].zs.view.zs' [-Wdangling-pointer=]
  415 |       fbinfo->zs.view.zs = &view;
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~
../src/panfrost/vulkan/panvk_vX_meta_clear.c: In function 'panvk_v6_CmdClearDepthStencilImage':
../src/panfrost/vulkan/panvk_vX_meta_clear.c:393:26: note: 'view' declared here
  393 |    struct pan_image_view view = {
      |                          ^~~~
../src/panfrost/vulkan/panvk_vX_meta_clear.c:393:26: note: 'commandBuffer' declared here
[844/1646] Compiling C object src/panfrost/vulkan/libpanvk_v7.a.p/panvk_vX_meta_clear.c.o
In function 'panvk_meta_clear_zs_img',
    inlined from 'panvk_v7_CmdClearDepthStencilImage' at ../src/panfrost/vulkan/panvk_vX_meta_clear.c:457:7:
../src/panfrost/vulkan/panvk_vX_meta_clear.c:415:26: warning: storing the address of local variable 'view' in '((struct pan_fb_info *)((char *)commandBuffer + 144))[23].zs.view.zs' [-Wdangling-pointer=]
  415 |       fbinfo->zs.view.zs = &view;
      |       ~~~~~~~~~~~~~~~~~~~^~~~~~~
../src/panfrost/vulkan/panvk_vX_meta_clear.c: In function 'panvk_v7_CmdClearDepthStencilImage':
../src/panfrost/vulkan/panvk_vX_meta_clear.c:393:26: note: 'view' declared here
  393 |    struct pan_image_view view = {
      |                          ^~~~
../src/panfrost/vulkan/panvk_vX_meta_clear.c:393:26: note: 'commandBuffer' declared here
```

Cc: mesa-stable
Suggested-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22829>

18 months agoanv: implement VK_KHR_ray_tracing_position_fetch
Lionel Landwerlin [Thu, 1 Dec 2022 21:30:59 +0000 (23:30 +0200)]
anv: implement VK_KHR_ray_tracing_position_fetch

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <f{merge_request.web_url}>

18 months agointel/nir/rt: wire position fetch intrinsic
Lionel Landwerlin [Fri, 2 Dec 2022 11:05:34 +0000 (13:05 +0200)]
intel/nir/rt: wire position fetch intrinsic

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <f{merge_request.web_url}>

18 months agointel/nir/rt: use a single load for instance leaf loading
Lionel Landwerlin [Fri, 2 Dec 2022 11:06:02 +0000 (13:06 +0200)]
intel/nir/rt: use a single load for instance leaf loading

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <f{merge_request.web_url}>

18 months agospirv/nir: wire ray interection triangle position fetch
Lionel Landwerlin [Thu, 1 Dec 2022 15:09:22 +0000 (17:09 +0200)]
spirv/nir: wire ray interection triangle position fetch

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <f{merge_request.web_url}>

18 months agospirv: update to latest headers
Lionel Landwerlin [Thu, 27 Apr 2023 12:49:41 +0000 (15:49 +0300)]
spirv: update to latest headers

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <f{merge_request.web_url}>

18 months agovulkan: bump headers to 1.3.249
Lionel Landwerlin [Thu, 1 Dec 2022 14:44:53 +0000 (16:44 +0200)]
vulkan: bump headers to 1.3.249

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <f{merge_request.web_url}>

18 months agopvr: Reduce free list initial size when multiple devices are created
Jarred Davies [Fri, 17 Mar 2023 14:26:48 +0000 (14:26 +0000)]
pvr: Reduce free list initial size when multiple devices are created

Will hopefully reduce the memory load when running dEQP.

Signed-off-by: Jarred Davies <jarred.davies@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22330>

18 months agopvr: Use vk_device's enabled features struct
Jarred Davies [Wed, 22 Mar 2023 16:38:43 +0000 (16:38 +0000)]
pvr: Use vk_device's enabled features struct

Avoids duplicating the struct in pvr_device and fixes uninitialized
accesses when ppEnabledFeatures was NULL.

Noticed when running valgrind over dEQP.

Signed-off-by: Jarred Davies <jarred.davies@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22331>

18 months agopvr: Don't ralloc build context from compiler
Jarred Davies [Fri, 24 Mar 2023 17:58:49 +0000 (17:58 +0000)]
pvr: Don't ralloc build context from compiler

rogue_compiler is allocated for each VkPhysicalDevice which means it can
be used from multiple threads when compiling. Allocating the build context
from this will lead to race conditions as ralloc is not thread safe.

Signed-off-by: Jarred Davies <jarred.davies@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22332>

18 months agopanvk: port panvk_logi to vk_logi
nihui [Sat, 29 Apr 2023 14:27:21 +0000 (22:27 +0800)]
panvk: port panvk_logi to vk_logi

Signed-off-by: Hui Ni <shuizhuyuanluo@126.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22772>

18 months agopvr: Adjust clear's region clip words
James Glanville [Tue, 2 May 2023 14:46:45 +0000 (15:46 +0100)]
pvr: Adjust clear's region clip words

Co-Authored-By: : Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Signed-off-by: James Glanville <james.glanville@imgtec.com>
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22822>

18 months agopvr: Fix incorrect PBE packmode for S8_UINT
James Glanville [Fri, 28 Apr 2023 15:09:46 +0000 (16:09 +0100)]
pvr: Fix incorrect PBE packmode for S8_UINT

Fixes:
dEQP-VK.pipeline.monolithic.stencil.format.d24_unorm_s8_uint.states
  .fail_keep.pass_keep.dfail_keep.comp_always

Signed-off-by: James Glanville <james.glanville@imgtec.com>
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22822>

18 months agopvr: Don't advertise S8_UINT support
Karmjit Mahil [Thu, 20 Apr 2023 14:38:18 +0000 (15:38 +0100)]
pvr: Don't advertise S8_UINT support

S8_UINT is not a requirement for Vulkan 1.0.

Revert "pvr: Add initial support for VK_FORMAT_S8_UINT".

This reverts commit 220356e0831bc870a189cf8d116a8b0ff6e1e500.

Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22822>

18 months agopvr: fix sync waiting while using pvrsrvkm
SoroushIMG [Wed, 26 Apr 2023 19:46:36 +0000 (20:46 +0100)]
pvr: fix sync waiting while using pvrsrvkm

pvrsrvkm type sync objects can have a pending state where,
the fence is unsignaled but does not have a valid sync file
due to not yet being submitted to kernel.

The wait function therefore needs to handle these types of syncs
through a spin loop.

This was seen as crashes in dEQP-VK.synchronization.timeline_semaphore.*

Signed-off-by: SoroushIMG <soroush.kashani@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22822>

18 months agodocs: fixup About Mesa3D.org link
Erik Faye-Lund [Wed, 3 May 2023 13:12:42 +0000 (15:12 +0200)]
docs: fixup About Mesa3D.org link

This link is supposed to point to www.mesa3d.org, not docs.mesa3d.org.
Let's fix it up!

Fixes: 7da0482636a ("docs: add custom html theme")
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22825>

18 months agollvmpipe: fixup refactor copypasta
Erik Faye-Lund [Wed, 3 May 2023 16:31:38 +0000 (18:31 +0200)]
llvmpipe: fixup refactor copypasta

I accidentally set this state based on the wrong state when refactoring,
whoops!

Fixes: a1846e39269 ("llvmpipe: merge all rasterizer-bind functions")
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22832>

18 months agomesa/main: drop use_legacy_math_rules
Erik Faye-Lund [Sat, 15 Apr 2023 17:03:00 +0000 (19:03 +0200)]
mesa/main: drop use_legacy_math_rules

Seems the only thing that really needs this is fpow(0, 0), which should
return NaN, but then gets multiplied with zero. Let's fix that by doing
a bcsel instead of fmul to select the result here. While we're at it,
get rid of the fabs for stop, which isn't needed.

This fixes a piglits failure for most (if not all?) drivers that doesn't
support legacy math rules.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22789>

18 months agor600: remove unused code
Thomas H.P. Andersen [Thu, 27 Apr 2023 18:40:42 +0000 (20:40 +0200)]
r600: remove unused code

With the cleanup in 337dc7d76604e646f1a85615ab2d9d238427bf46 this code
became unused.

Fixes: 337dc7d76604 ("r600: remove TGSI code path")
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22743>

18 months agonir/lower_io_to_vector: initialize base
David Heidelberg [Wed, 3 May 2023 21:30:27 +0000 (23:30 +0200)]
nir/lower_io_to_vector: initialize base

Prevent GCC warning:
```
[230/1401] Compiling C object src/compiler/nir/libnir.a.p/nir_lower_io_to_vector.c.o
In function 'get_flat_type',
    inlined from 'create_new_io_vars' at ../src/compiler/nir/nir_lower_io_to_vector.c:300:10:
../src/compiler/nir/nir_lower_io_to_vector.c:208:14: warning: 'base' may be used uninitialized [-Wmaybe-uninitialized]
  208 |       return glsl_array_type(glsl_vector_type(base, 4), slots, 0);
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/compiler/nir/nir_lower_io_to_vector.c: In function 'create_new_io_vars':
../src/compiler/nir/nir_lower_io_to_vector.c:163:24: note: 'base' was declared here
  163 |    enum glsl_base_type base;
      |                        ^~~~
```

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8957

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22840>

18 months agodzn: Delete queue-level event waits
Jesse Natalie [Wed, 3 May 2023 22:51:51 +0000 (15:51 -0700)]
dzn: Delete queue-level event waits

These are unneeded. Events can't be used to indefinitely stall work
like you can with a semaphore or timeline semaphore. The signals
still need to happen so that execution will modify the state that
can be polled from the CPU though.

Fixes dEQP-VK.synchronization.basic.event.single_submit_multi_command_buffer

Fixes: 04fa6c71 ("dzn: Batch command lists together")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22842>

18 months agodzn: Support separate depth/stencil resolves via blits
Jesse Natalie [Wed, 3 May 2023 19:46:17 +0000 (12:46 -0700)]
dzn: Support separate depth/stencil resolves via blits

In theory, ResolveSubresourceRegion should be able to resolve just
the depth or just the stencil. In practice, WARP had bugs, which
means that was never tested, so just do it via blits.

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

18 months agodzn: Support all available depth/stencil resolve modes
Jesse Natalie [Wed, 3 May 2023 18:19:09 +0000 (11:19 -0700)]
dzn: Support all available depth/stencil resolve modes

Fixes dEQP-VK.imageless_framebuffer.depth_stencil_resolve and
dEQP-VK.renderpass2.depth_stencil_resolve.misc.properties

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

18 months agodzn: Augment blit resolve to support min/max/sample-zero modes
Jesse Natalie [Wed, 3 May 2023 18:18:52 +0000 (11:18 -0700)]
dzn: Augment blit resolve to support min/max/sample-zero modes

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

18 months agovulkan: write beta extensions into generator scripts.
Dave Airlie [Tue, 14 Mar 2023 05:39:14 +0000 (15:39 +1000)]
vulkan: write beta extensions into generator scripts.

Updated by: Hyunjun Ko <zzoon@igalia.com>

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

18 months agovulkan/cmd_queue: handle beta extensions.
Dave Airlie [Thu, 9 Mar 2023 04:18:25 +0000 (14:18 +1000)]
vulkan/cmd_queue: handle beta extensions.

Since this was moved to vulkan_core.h, we have to add the beta header
ourselves when required.

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

18 months agonir: add/update comments for gl_access_qualifier
Marek Olšák [Fri, 28 Apr 2023 03:12:46 +0000 (23:12 -0400)]
nir: add/update comments for gl_access_qualifier

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

18 months agonir: rename ACCESS_STREAM_CACHE_POLICY -> ACCESS_NON_TEMPORAL and document
Marek Olšák [Fri, 28 Apr 2023 03:02:28 +0000 (23:02 -0400)]
nir: rename ACCESS_STREAM_CACHE_POLICY -> ACCESS_NON_TEMPORAL and document

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

18 months agodevice_select_layer: log selectable devices if MESA_VK_DEVICE_SELECT_DEBUG or DRI_PRI...
Luna Nova [Tue, 17 Jan 2023 01:05:39 +0000 (17:05 -0800)]
device_select_layer: log selectable devices if MESA_VK_DEVICE_SELECT_DEBUG or DRI_PRIME_DEBUG are set

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

18 months agodevice_select_layer: add MESA_VK_DEVICE_SELECT_DEBUG which logs why default selection...
Luna Nova [Mon, 16 Jan 2023 00:23:32 +0000 (16:23 -0800)]
device_select_layer: add MESA_VK_DEVICE_SELECT_DEBUG which logs why default selection was made

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

18 months agodevice_select_layer: pick a default device before applying DRI_PRIME
Luna Nova [Mon, 16 Jan 2023 00:12:59 +0000 (16:12 -0800)]
device_select_layer: pick a default device before applying DRI_PRIME

This ensures DRI_PRIME works if there are multiple CPU devices available

Suggested by @pepp

Fixes: afa1fba1 ("vulkan/device_select: don't pick a cpu driver as the default")

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

18 months agodevice_select_layer: apply DRI_PRIME even if default device is > 1 to match opengl...
Luna Nova [Mon, 16 Jan 2023 00:09:04 +0000 (16:09 -0800)]
device_select_layer: apply DRI_PRIME even if default device is > 1 to match opengl behavior

This fixes DRI_PRIME=1 doing nothing if the GPU order is [dGPU, dGPU,
iGPU, cpu] (or more GPUs than that) and the iGPU is the default GPU.

Fixes: afa1fba1 ("vulkan/device_select: don't pick a cpu driver as the default")

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

18 months agodevice_select_layer: fix inverted strcmp in device_select_find_dri_prime_tag_default...
Luna Nova [Sun, 16 Oct 2022 23:10:47 +0000 (16:10 -0700)]
device_select_layer: fix inverted strcmp in device_select_find_dri_prime_tag_default (v1)

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7498
Fixes: 9bc5b2d169d ("vulkan: add initial device selection layer. (v6.1)")

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

18 months agosvga: use util_unreference_framebuffer_state to unref fb state
Mike Blumenkrantz [Mon, 24 Apr 2023 20:24:56 +0000 (16:24 -0400)]
svga: use util_unreference_framebuffer_state to unref fb state

Fixes: f5bde99cbdd ("gallium: plumb resolve attachments through from frontends -> pipe_framebuffer_state")

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22673>

18 months agollvmpipe: use util_unreference_framebuffer_state to unref fb state
Mike Blumenkrantz [Mon, 24 Apr 2023 20:24:56 +0000 (16:24 -0400)]
llvmpipe: use util_unreference_framebuffer_state to unref fb state

Fixes: f5bde99cbdd ("gallium: plumb resolve attachments through from frontends -> pipe_framebuffer_state")

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22673>

18 months agovc4: use util_unreference_framebuffer_state to unref fb state
Mike Blumenkrantz [Mon, 24 Apr 2023 20:24:56 +0000 (16:24 -0400)]
vc4: use util_unreference_framebuffer_state to unref fb state

Fixes: f5bde99cbdd ("gallium: plumb resolve attachments through from frontends -> pipe_framebuffer_state")

Reviewed-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22673>

18 months agov3d: use util_unreference_framebuffer_state to unref fb state
Mike Blumenkrantz [Mon, 24 Apr 2023 20:24:56 +0000 (16:24 -0400)]
v3d: use util_unreference_framebuffer_state to unref fb state

Fixes: f5bde99cbdd ("gallium: plumb resolve attachments through from frontends -> pipe_framebuffer_state")

Reviewed-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22673>

18 months agosoftpipe: use util_unreference_framebuffer_state to unref fb state
Mike Blumenkrantz [Mon, 24 Apr 2023 20:24:56 +0000 (16:24 -0400)]
softpipe: use util_unreference_framebuffer_state to unref fb state

Fixes: f5bde99cbdd ("gallium: plumb resolve attachments through from frontends -> pipe_framebuffer_state")

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22673>

18 months agoiris: use util_unreference_framebuffer_state to unref fb state
Mike Blumenkrantz [Mon, 24 Apr 2023 20:24:56 +0000 (16:24 -0400)]
iris: use util_unreference_framebuffer_state to unref fb state

Fixes: f5bde99cbdd ("gallium: plumb resolve attachments through from frontends -> pipe_framebuffer_state")

Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22673>

18 months agoi915: use util_unreference_framebuffer_state to unref fb state
Mike Blumenkrantz [Mon, 24 Apr 2023 20:24:56 +0000 (16:24 -0400)]
i915: use util_unreference_framebuffer_state to unref fb state

Fixes: f5bde99cbdd ("gallium: plumb resolve attachments through from frontends -> pipe_framebuffer_state")

Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22673>

18 months agoi915: use util_copy_framebuffer_state to set fb state
Mike Blumenkrantz [Mon, 24 Apr 2023 20:27:11 +0000 (16:27 -0400)]
i915: use util_copy_framebuffer_state to set fb state

Fixes: f5bde99cbdd ("gallium: plumb resolve attachments through from frontends -> pipe_framebuffer_state")

Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22673>

18 months agocso: unbind fb state when unbinding the context
Mike Blumenkrantz [Mon, 24 Apr 2023 20:23:52 +0000 (16:23 -0400)]
cso: unbind fb state when unbinding the context

this avoids leaking/ballooning references

cc: mesa-stable

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22673>

18 months agoci: carry venus-protocol 1.0 release patches in virglrenderer
Yiwei Zhang [Tue, 2 May 2023 23:43:12 +0000 (16:43 -0700)]
ci: carry venus-protocol 1.0 release patches in virglrenderer

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22547>

18 months agodocs: update Virtio-GPU Venus driver page
Yiwei Zhang [Mon, 17 Apr 2023 22:40:49 +0000 (15:40 -0700)]
docs: update Virtio-GPU Venus driver page

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22547>

18 months agomeson/ci: promote virtio-experimental to virtio
Yiwei Zhang [Wed, 12 Apr 2023 18:15:33 +0000 (11:15 -0700)]
meson/ci: promote virtio-experimental to virtio

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22547>

18 months agovenus: adopt venus protocol release
Yiwei Zhang [Sat, 8 Apr 2023 06:53:09 +0000 (23:53 -0700)]
venus: adopt venus protocol release

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22547>

18 months agovenus: stop query experimental features
Yiwei Zhang [Sat, 8 Apr 2023 06:55:26 +0000 (23:55 -0700)]
venus: stop query experimental features

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22547>

18 months agoci/zink+anv: Test piglit quick_gl pre-merge, dropping a few KHR-GL46 tests.
Emma Anholt [Tue, 2 May 2023 17:53:18 +0000 (10:53 -0700)]
ci/zink+anv: Test piglit quick_gl pre-merge, dropping a few KHR-GL46 tests.

piglit provides way more important coverage than these bits of GL46, and
has been regressing regularly.  Thanks to dropping the long KHR-GL46
tests, this is now completing faster than it was before, and things will
get even better with
https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/804.

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

18 months agoci/zink: Update more xfails for tgl piglit.
Emma Anholt [Tue, 2 May 2023 21:58:48 +0000 (14:58 -0700)]
ci/zink: Update more xfails for tgl piglit.

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

18 months agoRevert "ci/zink: Try to update TGL results for new MSAA behavior."
Emma Anholt [Tue, 2 May 2023 21:15:53 +0000 (14:15 -0700)]
Revert "ci/zink: Try to update TGL results for new MSAA behavior."

This reverts commit 74a8f118a2595479a94a8b7097680c5111d7273c.

This should have been in !22753.

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

18 months agovenus: use pipelineCacheUUID for shader cache id
Juston Li [Fri, 21 Apr 2023 16:55:51 +0000 (09:55 -0700)]
venus: use pipelineCacheUUID for shader cache id

Use the host driver pipelineCacheUUID as the shader cache id. This is
just used as an identifier for fossilize replay since venus utilizes
the host side shader cache anyways.

Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22634>

18 months agozink: sync queries at the end of cmdbufs
Mike Blumenkrantz [Wed, 3 May 2023 14:39:55 +0000 (10:39 -0400)]
zink: sync queries at the end of cmdbufs

with tc, query results can be fetched async, and it's impossible to
sync tc in this scenario. to avoid needing to sync when a sync is not
possible, sync ahead of time in all cases

Fixes: 7c96e989755 ("zink: always start/stop/resume queries inside renderpasses")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22827>

18 months agozink: null some descriptor buffer pointers during destruction
Mike Blumenkrantz [Wed, 3 May 2023 15:43:53 +0000 (11:43 -0400)]
zink: null some descriptor buffer pointers during destruction

this shouldn't actually be needed? and yet...

Fixes: 13c6ad0038a ("zink: use a single descriptor buffer for all non-bindless types")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22827>

18 months agozink: set depth dynamic state values unconditionally
Mike Blumenkrantz [Wed, 3 May 2023 14:39:10 +0000 (10:39 -0400)]
zink: set depth dynamic state values unconditionally

spec requires the state values to be set if the dynamic state is
enabled regardless of whether they will take effect

cc: mesa-stable

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

18 months agonouveau/nir: image_samples/size don't have coordinates
Faith Ekstrand [Wed, 3 May 2023 14:46:55 +0000 (09:46 -0500)]
nouveau/nir: image_samples/size don't have coordinates

Without this, it treats the src[1] as a coordinate (it's actually LOD)
and may try to read more than one component.  I don't think this usually
hurts anything as the coordinate should get ignored later but it can
result in OOB memory reads while translating NIR.

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

18 months agozink: disable a630 traces
Mike Blumenkrantz [Wed, 3 May 2023 15:53:10 +0000 (11:53 -0400)]
zink: disable a630 traces

I can't even run a fair number of these locally without a gpu hang,
and there are no validation errors, so just disable the whole thing
until at least #8874 can be resolved

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

18 months agonv50/codegen: Set lower_uniforms_to_ubo
M Henning [Fri, 17 Feb 2023 22:32:12 +0000 (17:32 -0500)]
nv50/codegen: Set lower_uniforms_to_ubo

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

18 months agopanfrost: Check blend enabled state in pan_allow_forward_pixel_to_kill()
Boris Brezillon [Fri, 7 Apr 2023 13:16:17 +0000 (15:16 +0200)]
panfrost: Check blend enabled state in pan_allow_forward_pixel_to_kill()

The shader can write to a specific RT, but the blend descriptor gets
to decide if the RT is really updated. We need to take that into
account when initializing the rt_written local variable in
pan_allow_forward_pixel_to_kill() otherwise we might get inconsistent
results.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Suggested-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22465>

18 months agoci/zink: Disable Freedoom trace on ANV
Daniel Stone [Wed, 3 May 2023 09:40:51 +0000 (10:40 +0100)]
ci/zink: Disable Freedoom trace on ANV

Apparently it's flaky.

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

18 months agoradv/ci: document a series of recent regressions
Martin Roukala (né Peres) [Wed, 3 May 2023 10:13:05 +0000 (13:13 +0300)]
radv/ci: document a series of recent regressions

No time to bisect all the regressions, so I am just including the
GOOD/BAD commits if anyone is interested to bisect.

One thing is for sure, !22753 is responsible for at least tens of
these issues.

Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22820>

18 months agowsi/wayland: Do not assert that all present IDs have been waited on.
Hans-Kristian Arntzen [Tue, 2 May 2023 11:31:37 +0000 (13:31 +0200)]
wsi/wayland: Do not assert that all present IDs have been waited on.

EXT_swapchain_maintenance1 allows destruction when the swapchain fence
is complete. That may signal before we have dispatched all present
waits. Just discard those presentation feedbacks.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Joshua Ashton <joshua@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22682>

18 months agowsi/wayland: Simplify wait logic for present wait.
Hans-Kristian Arntzen [Tue, 2 May 2023 11:15:25 +0000 (13:15 +0200)]
wsi/wayland: Simplify wait logic for present wait.

CLOCK_REALTIME is generally problematic due to NTP.
Use normal MONOTONIC waits for condition variable,
and remove the timedlock. The lock is never held in a blocking fashion,
so there is little need for a timed lock here.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Joshua Ashton <joshua@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22682>

18 months agowsi/wayland: Support VK_KHR_present_wait
Daniel Stone [Wed, 11 May 2022 18:47:52 +0000 (19:47 +0100)]
wsi/wayland: Support VK_KHR_present_wait

Use the wp_presentation extension to detect when a given presentation
has taken effect.

Since this protocol is not guaranteed to be supported,
it must be enabled through driconf (vk_khr_present_wait=true) for the time being.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Co-authored-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Joshua Ashton <joshua@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22682>

18 months agowayland: generalize wayland-protocols code generation
Simon Ser [Fri, 26 Aug 2022 09:01:29 +0000 (11:01 +0200)]
wayland: generalize wayland-protocols code generation

Make it easy to add a new protocol to the list without duplicating
logic.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22682>

18 months agoradv: Add driconf to always drain waves before writing timestamps
Friedrich Vock [Wed, 3 May 2023 10:20:39 +0000 (12:20 +0200)]
radv: Add driconf to always drain waves before writing timestamps

UE4's Vulkan backend uses vkCmdWriteTimestamp with TOP_OF_PIPE
to measure how long a workload took in the GPU Benchmark. This is wrong
and writes the timestamp before the workload is actually finished,
making it seem like the GPU is much faster than it actually is.
This caused subsequent benchmark passes to contain way too big workloads,
which caused soft hangs on slower GPUs.

Fixes GPU hangs with Splitgate during automatic settings configuration.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22823>

18 months agoradv: Always call si_emit_cache_flush before writing timestamps
Friedrich Vock [Wed, 3 May 2023 11:52:44 +0000 (13:52 +0200)]
radv: Always call si_emit_cache_flush before writing timestamps

In case of barriers with TOP_OF_PIPE as dst stage, writing timestamps
immediately would be invalid.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22823>

18 months agoradv/meta: rename dest to dst
Samuel Pitoiset [Tue, 2 May 2023 10:17:26 +0000 (12:17 +0200)]
radv/meta: rename dest to dst

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

18 months agoradv: replace radv_get_levelCount() by vk_image_subresource_level_count()
Samuel Pitoiset [Tue, 2 May 2023 09:21:08 +0000 (11:21 +0200)]
radv: replace radv_get_levelCount() by vk_image_subresource_level_count()

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

18 months agoradv: replace radv_get_layerCount by vk_image_subresource_layer_count()
Samuel Pitoiset [Tue, 2 May 2023 09:17:50 +0000 (11:17 +0200)]
radv: replace radv_get_layerCount by vk_image_subresource_layer_count()

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

18 months agoradv: fix fast-clearing images with VK_REMAINING_{ARRAY_LAYERS,MIP_LEVELS}
Samuel Pitoiset [Tue, 2 May 2023 09:26:29 +0000 (11:26 +0200)]
radv: fix fast-clearing images with VK_REMAINING_{ARRAY_LAYERS,MIP_LEVELS}

Found by inspection.

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

18 months agoradv: fix invalid type for usage in radv_get_buffer_memory_requirements()
Samuel Pitoiset [Tue, 2 May 2023 08:41:46 +0000 (10:41 +0200)]
radv: fix invalid type for usage in radv_get_buffer_memory_requirements()

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

18 months agobroadcom/compiler: move buffer loads to lower register pressure
Iago Toral Quiroga [Wed, 3 May 2023 09:52:37 +0000 (11:52 +0200)]
broadcom/compiler: move buffer loads to lower register pressure

If we are trying to lower register pressure this can make a big
difference in some cases. To avoid adding even more strategies,
merge this with disabling ubo load sorting, since they are basically
trying to do the same.

total instructions in shared programs: 12848024 -> 12844510 (-0.03%)
instructions in affected programs: 236537 -> 233023 (-1.49%)
helped: 195
HURT: 87
Instructions are helped.

total uniforms in shared programs: 3815601 -> 3814932 (-0.02%)
uniforms in affected programs: 31773 -> 31104 (-2.11%)
helped: 67
HURT: 115
Inconclusive result (value mean confidence interval includes 0).

total max-temps in shared programs: 2210803 -> 2210622 (<.01%)
max-temps in affected programs: 9362 -> 9181 (-1.93%)
helped: 114
HURT: 34
Max-temps are helped.

total spills in shared programs: 2556 -> 2330 (-8.84%)
spills in affected programs: 1391 -> 1165 (-16.25%)
helped: 39
HURT: 9

total fills in shared programs: 3840 -> 3317 (-13.62%)
fills in affected programs: 2379 -> 1856 (-21.98%)
helped: 39
HURT: 23

total sfu-stalls in shared programs: 21965 -> 21978 (0.06%)
sfu-stalls in affected programs: 2618 -> 2631 (0.50%)
helped: 45
HURT: 81
Inconclusive result (value mean confidence interval includes 0).

total inst-and-stalls in shared programs: 12869989 -> 12866488 (-0.03%)
inst-and-stalls in affected programs: 238771 -> 235270 (-1.47%)
helped: 193
HURT: 87
Inst-and-stalls are helped.

total nops in shared programs: 303501 -> 303274 (-0.07%)
nops in affected programs: 4159 -> 3932 (-5.46%)
helped: 87
HURT: 105
Inconclusive result (value mean confidence interval includes 0).

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

18 months agodocs: fix edit-links
Erik Faye-Lund [Tue, 2 May 2023 08:07:45 +0000 (10:07 +0200)]
docs: fix edit-links

When making a custom-theme, I accidentally hard-coded the edit-URL to
point to the index-file in the mesa3d.org repo instead of pointing to
the correct file in our docs. This fixes that, so the "Edit this
page"-links in the footer works the same way as the old "Edit on
GitLab"-links did.

Fixes: 7da0482636a ("docs: add custom html theme")
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22791>

18 months agoturnip: fix buffer markers using wrong addresses
Amber [Tue, 2 May 2023 08:08:57 +0000 (10:08 +0200)]
turnip: fix buffer markers using wrong addresses

Fixes failures in dEQP-VK.api.buffer_marker.*

Signed-off-by: Amber Amber <amber@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22792>

18 months agoradv: Move all the dirty flags from TES binding to TCS binding.
Bas Nieuwenhuizen [Mon, 1 May 2023 17:51:42 +0000 (19:51 +0200)]
radv: Move all the dirty flags from TES binding to TCS binding.

With merged shaders we might not have an explicit TES.

Fixes: 879ddf97202 ("radv: rework binding shaders to cmdbuf by introducing new helpers")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8939
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22784>

18 months agoradv: use lower_ballot_bit_count_to_mbcnt_amd
Georg Lehmann [Mon, 1 May 2023 17:04:54 +0000 (19:04 +0200)]
radv: use lower_ballot_bit_count_to_mbcnt_amd

Foz-DB Navi21:
Totals from 62 (0.05% of 134864) affected shaders:
VGPRs: 2464 -> 2440 (-0.97%)
CodeSize: 332408 -> 324276 (-2.45%)
MaxWaves: 1690 -> 1692 (+0.12%)
Instrs: 62356 -> 60828 (-2.45%)
Latency: 595723 -> 592554 (-0.53%)
InvThroughput: 126106 -> 124241 (-1.48%)
SClause: 2163 -> 2162 (-0.05%)
Copies: 6392 -> 6226 (-2.60%); split: -2.94%, +0.34%
Branches: 2295 -> 2298 (+0.13%)
PreSGPRs: 2390 -> 2389 (-0.04%)
PreVGPRs: 2139 -> 2117 (-1.03%); split: -1.08%, +0.05%

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22783>

18 months agonir: lower ballot_bit_count_exclusive/inclusive to mbcnt_amd
Georg Lehmann [Mon, 1 May 2023 17:04:03 +0000 (19:04 +0200)]
nir: lower ballot_bit_count_exclusive/inclusive to mbcnt_amd

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22783>

18 months agointel/compiler: make uses_pos_offset a tri-state
Lionel Landwerlin [Wed, 26 Apr 2023 13:44:51 +0000 (16:44 +0300)]
intel/compiler: make uses_pos_offset a tri-state

This value depends on the per-sample value which can be unknown at
compile time with graphics pipeline libraries. So we need to have this
dynamic has well and pick the right value when generating the
3DSTATE_PS/3DSTATE_WM packet.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: d8dfd153c5 ("intel/fs: Make per-sample and coarse dispatch tri-state")
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22728>

18 months agomesa/main: drop unused variable
David Heidelberg [Tue, 2 May 2023 23:57:28 +0000 (01:57 +0200)]
mesa/main: drop unused variable

Fixes: c5b3d488f9be ("mesa/main: make ffvertex output nir")

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22812>

18 months agobroadcom/compiler: don't allocate undef to rf0
Iago Toral Quiroga [Wed, 26 Apr 2023 10:57:33 +0000 (12:57 +0200)]
broadcom/compiler: don't allocate undef to rf0

rf0 is affected by restrictions in some scenarios so we rather use
a register that does not cause conflicts for scheduling.

total instructions in shared programs: 12850958 -> 12848024 (-0.02%)
instructions in affected programs: 331974 -> 329040 (-0.88%)
helped: 2559
HURT: 201
Instructions are helped.

total max-temps in shared programs: 2210893 -> 2210803 (<.01%)
max-temps in affected programs: 1486 -> 1396 (-6.06%)
helped: 96
HURT: 7
Max-temps are helped.

total sfu-stalls in shared programs: 21975 -> 21965 (-0.05%)
sfu-stalls in affected programs: 32 -> 22 (-31.25%)
helped: 16
HURT: 6
Sfu-stalls are helped.

total inst-and-stalls in shared programs: 12872933 -> 12869989 (-0.02%)
inst-and-stalls in affected programs: 332036 -> 329092 (-0.89%)
helped: 2560
HURT: 189
Inst-and-stalls are helped.

total nops in shared programs: 305911 -> 303501 (-0.79%)
nops in affected programs: 11215 -> 8805 (-21.49%)
helped: 2131
HURT: 3
Nops are helped.

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

18 months agor600: fix refcnt imbalance related to atomic_buffer_state
Patrick Lerda [Sat, 22 Apr 2023 11:18:58 +0000 (13:18 +0200)]
r600: fix refcnt imbalance related to atomic_buffer_state

Indeed, these references are not freed.

For instance, this issue is triggered on an evergreen card with
"piglit/bin/shader_runner tests/spec/arb_shader_atomic_counter_ops/execution/all_touch_test.shader_test -auto -fbo"
while setting GALLIUM_REFCNT_LOG=refcnt.log.

Fixes: 06993e4ee350 ("r600: add support for hw atomic counters. (v3)")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22798>

18 months agovulkan: rename vk_physical_device_features.py to vk_physical_device_features_gen.py
Constantine Shablya [Fri, 7 Apr 2023 03:05:33 +0000 (06:05 +0300)]
vulkan: rename vk_physical_device_features.py to vk_physical_device_features_gen.py

In-line with other files that generate source code

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22333>

18 months agovulkan: put TEMPLATE_H before TEMPLATE_C
Constantine Shablya [Fri, 7 Apr 2023 01:02:06 +0000 (04:02 +0300)]
vulkan: put TEMPLATE_H before TEMPLATE_C

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22333>

18 months agovulkan: put interesting code before boring code
Constantine Shablya [Fri, 7 Apr 2023 01:00:52 +0000 (04:00 +0300)]
vulkan: put interesting code before boring code

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22333>

18 months agovulkan: inline vk_get_physical_device_features into vk_common_GetPhysicalDeviceFeatures2
Constantine Shablya [Fri, 7 Apr 2023 01:00:13 +0000 (04:00 +0300)]
vulkan: inline vk_get_physical_device_features into vk_common_GetPhysicalDeviceFeatures2

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

18 months agov3dv: use common vkGetPhysicalDeviceFeatures2
Constantine Shablia [Fri, 28 Apr 2023 23:11:06 +0000 (02:11 +0300)]
v3dv: use common vkGetPhysicalDeviceFeatures2

Reviewed-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22333>

18 months agopanvk: use common vkGetPhysicalDeviceFeatures2
Constantine Shablia [Sat, 29 Apr 2023 00:07:23 +0000 (03:07 +0300)]
panvk: use common vkGetPhysicalDeviceFeatures2

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22333>

18 months agoanv: move get_features after get_device_extensions (ugly diff)
Constantine Shablia [Fri, 28 Apr 2023 23:09:16 +0000 (02:09 +0300)]
anv: move get_features after get_device_extensions (ugly diff)

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22333>

18 months agoanv: switch to using the common vkGetPhysicalDeviceFeatures2
Constantine Shablya [Thu, 6 Apr 2023 13:39:41 +0000 (16:39 +0300)]
anv: switch to using the common vkGetPhysicalDeviceFeatures2

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22333>

18 months agovulkan: introduce supported_features parameter to vk_physical_device_init
Constantine Shablya [Fri, 7 Apr 2023 02:51:02 +0000 (05:51 +0300)]
vulkan: introduce supported_features parameter to vk_physical_device_init

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

18 months agovulkan: add common implementation of vkGetPhysicalDeviceFeatures2
Constantine Shablya [Thu, 6 Apr 2023 13:39:23 +0000 (16:39 +0300)]
vulkan: add common implementation of vkGetPhysicalDeviceFeatures2

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

18 months agovulkan: Actually increment the count of objects in GetPipelineCacheData.
Emma Anholt [Tue, 25 Apr 2023 20:20:53 +0000 (13:20 -0700)]
vulkan: Actually increment the count of objects in GetPipelineCacheData.

Otherwise a load of the cache won't load any of the objects in it!

Fixes: 591da9877900 ("vulkan: Add a common VkPipelineCache implementation")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22700>

18 months agovulkan: Handle alignment failure in the pipeline cache.
Emma Anholt [Tue, 25 Apr 2023 20:17:26 +0000 (13:17 -0700)]
vulkan: Handle alignment failure in the pipeline cache.

On malloc failure, or more likely a passed in pDataSize < pipeline cache
data size, we should return incomplete.  Otherwise,
vk_pipeline_cache_object_serialize will assertion fail about the start not
being aligned.

Closes: #8868
Fixes: 591da9877900 ("vulkan: Add a common VkPipelineCache implementation")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22700>

18 months agodzn: Ensure bindless is factored into pipeline/nir hash
Jesse Natalie [Tue, 2 May 2023 23:27:57 +0000 (16:27 -0700)]
dzn: Ensure bindless is factored into pipeline/nir hash

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

18 months agodzn: Ensure subgroup size control is factored into pipeline hash
Jesse Natalie [Tue, 2 May 2023 23:27:30 +0000 (16:27 -0700)]
dzn: Ensure subgroup size control is factored into pipeline hash

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

18 months agodzn: Use the nir hash as an input to the dxil hash
Jesse Natalie [Tue, 2 May 2023 23:20:28 +0000 (16:20 -0700)]
dzn: Use the nir hash as an input to the dxil hash

Instead of re-computing all the same bits we already computed,
just use the nir hash. Helps prevent missing a bit between the two.

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

18 months agodzn: Ensure sample-rate shading is factored into nir hash
Jesse Natalie [Tue, 2 May 2023 23:38:50 +0000 (16:38 -0700)]
dzn: Ensure sample-rate shading is factored into nir hash

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

18 months agodzn: Hook up subgroup size to compute shader compilation
Jesse Natalie [Tue, 2 May 2023 23:18:14 +0000 (16:18 -0700)]
dzn: Hook up subgroup size to compute shader compilation

Previously this was only in the graphics path... where it does nothing,
since D3D only supports wave size control for compute. Whoops.

Fixes: db083070 ("dzn: Implement subgroup size control extension")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22810>

18 months agocrocus: fix refcnt imbalance related to crocus_create_surface()
Patrick Lerda [Tue, 25 Apr 2023 23:47:43 +0000 (01:47 +0200)]
crocus: fix refcnt imbalance related to crocus_create_surface()

Indeed, the objects are not freed when the function returns NULL.

"psurf->texture = tex;" is redundant with
"pipe_resource_reference(&psurf->texture, tex);".

For instance, this issue is triggered with
"piglit/bin/ext_texture_array-compressed teximage pbo -fbo -auto"
while setting GALLIUM_REFCNT_LOG=refcnt.log.

Fixes: f3630548f1da ("crocus: initial gallium driver for Intel gfx 4-7")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22799>