platform/upstream/mesa.git
2 years agokopper: Define the driver interface
Adam Jackson [Tue, 15 Mar 2022 19:32:30 +0000 (15:32 -0400)]
kopper: Define the driver interface

The loader extension provides upcalls to get surface state (native
resource and size) into the driver. The driver extension is called by a
kopper-aware loader in preference to __DRI_SWRAST's createNewDrawable.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>

2 years agomeson: Define a HAVE_XXXX macro for every gallium driver we build
Adam Jackson [Thu, 24 Mar 2022 19:05:32 +0000 (15:05 -0400)]
meson: Define a HAVE_XXXX macro for every gallium driver we build

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>

2 years agost/manager: update framebuffer size if texture has been resized
Mike Blumenkrantz [Wed, 29 Sep 2021 17:15:01 +0000 (13:15 -0400)]
st/manager: update framebuffer size if texture has been resized

zink/kopper can and does expect this when resizing swapchains,
so don't ignore it

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>

2 years agoclc/tests: use dxil_validator
Erik Faye-Lund [Tue, 5 Apr 2022 10:35:05 +0000 (12:35 +0200)]
clc/tests: use dxil_validator

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15751>

2 years agodzn: use dxil_validator
Erik Faye-Lund [Tue, 5 Apr 2022 10:28:53 +0000 (12:28 +0200)]
dzn: use dxil_validator

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15751>

2 years agomicrosoft/spirv_to_dxil: use dxil_validator
Erik Faye-Lund [Tue, 5 Apr 2022 09:29:19 +0000 (11:29 +0200)]
microsoft/spirv_to_dxil: use dxil_validator

This has one negative side-effect; we're no longer able to print
validation errors without dxcompiler.dll. I doubt that's a real problem,
but if it is, we should add this ability to dxil_validator instead of
having a second implementation here.

The reasons I didn't try adding this in the first place is:

1. This code seems a bit janky; it doesn't consult the "known"-variable
   to figure out if the encoding is OK, and it's lacking a fallback path
   in that case.
2. It seems unlikely that the compiler varies the encoding of the output
   in the first place; one of the two code-paths in here is probably
   untested.
3. Since dxil_validator leaves reporting to the call-site, we'd need to
   either add and output-encoding to the API (yuck), or re-encode the
   string to UTF-8 using WinAPI.

Right now, it seems questionable if fixing all of the above is worth it.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15751>

2 years agod3d12: use dxil_validator
Erik Faye-Lund [Tue, 5 Apr 2022 09:11:54 +0000 (11:11 +0200)]
d3d12: use dxil_validator

Now that we have a shiny, new dxil validator interface, let's start
using it in the D3D12 gallium driver.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15751>

2 years agomicrosoft/compiler: add common dxil-validator API
Erik Faye-Lund [Tue, 5 Apr 2022 08:39:01 +0000 (10:39 +0200)]
microsoft/compiler: add common dxil-validator API

This API is only available on Windows, which is the only OS where DXIL
validation is a requirement, and where DXIL.dll (and dxcompiler.dll) are
available.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15751>

2 years agoiris: Allow userptr on 1D and 2D images
Jason Ekstrand [Wed, 6 Apr 2022 19:22:43 +0000 (14:22 -0500)]
iris: Allow userptr on 1D and 2D images

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15779>

2 years agoiris: Allow non-page-aligned userptr
Jason Ekstrand [Wed, 6 Apr 2022 19:22:23 +0000 (14:22 -0500)]
iris: Allow non-page-aligned userptr

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15779>

2 years agoiris: Take offsets into account when mapping resources
Jason Ekstrand [Wed, 6 Apr 2022 20:07:10 +0000 (15:07 -0500)]
iris: Take offsets into account when mapping resources

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15779>

2 years agozink: simplify shader i/o assignment
Mike Blumenkrantz [Tue, 5 Apr 2022 14:07:54 +0000 (10:07 -0400)]
zink: simplify shader i/o assignment

by utilizing a separate slot map for patch variables, the entire i/o
assignment mechanism can be simplified to accurately manage i/o for all
types of variables and avoid location conflicts

affects:
KHR-Single-GL46.enhanced_layouts*

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

2 years agozink: use local variable in consumer shader i/o assign to match producer usage
Mike Blumenkrantz [Wed, 6 Apr 2022 14:21:32 +0000 (10:21 -0400)]
zink: use local variable in consumer shader i/o assign to match producer usage

no functional changes

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

2 years agozink: use local variable more consistently in producer shader i/o assign
Mike Blumenkrantz [Wed, 6 Apr 2022 14:21:32 +0000 (10:21 -0400)]
zink: use local variable more consistently in producer shader i/o assign

no functional changes

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

2 years agozink: prune shader i/o more aggressively
Mike Blumenkrantz [Wed, 6 Apr 2022 12:32:49 +0000 (08:32 -0400)]
zink: prune shader i/o more aggressively

fixes some radv validation spam on:
KHR-Single-GL46.enhanced_layouts*

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

2 years agozink: run shader optimize loop during initial create
Mike Blumenkrantz [Wed, 6 Apr 2022 15:57:50 +0000 (11:57 -0400)]
zink: run shader optimize loop during initial create

this is important for removing dead variables

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

2 years agozink: rework missing feature warnings
Mike Blumenkrantz [Wed, 6 Apr 2022 18:24:03 +0000 (14:24 -0400)]
zink: rework missing feature warnings

the previous methodology triggered warnings any time a rasterizer state
was created with unsupported features without determining whether those
features would actually be used

a more optimal process is to check for missing features at pipeline creation,
as all the necessary info is now available, and spurious warnings can be avoided

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

2 years agozink: fix warning text in missing feature macro
Mike Blumenkrantz [Wed, 6 Apr 2022 18:31:26 +0000 (14:31 -0400)]
zink: fix warning text in missing feature macro

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

2 years agozink: add a param to warn_missing_feature() macro
Mike Blumenkrantz [Wed, 6 Apr 2022 18:30:49 +0000 (14:30 -0400)]
zink: add a param to warn_missing_feature() macro

this lets the macro be used more programmatically since the variable
is defined externally

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

2 years agozink: switch warn_missing_feature to mesa_logw
Mike Blumenkrantz [Tue, 8 Mar 2022 15:49:02 +0000 (10:49 -0500)]
zink: switch warn_missing_feature to mesa_logw

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

2 years agoci: Uprev deqp-runner and piglit.
Emma Anholt [Wed, 16 Mar 2022 21:49:21 +0000 (14:49 -0700)]
ci: Uprev deqp-runner and piglit.

deqp-runner uprevved to reduce memory usage on HW runners, let us
experiment with shader cache on tmpfs, and hopefully provide a tool for
virgl to be able to plausibly run piglit under crosvm instead of vtest.

piglit uprevved to avoid a flake in softpipe in glx-multithread-texture,
and improve performance of the test, too.  This also brings in the
fbo-blending-format-quirks fix to properly initialize the buffers, fixing
some fails/flakes.

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

2 years agoci/turnip: Drop xfails for create_list_modifiers.
Emma Anholt [Tue, 5 Apr 2022 20:03:47 +0000 (13:03 -0700)]
ci/turnip: Drop xfails for create_list_modifiers.

These were fixed in 5ce06f8474fa ("turnip: Use correct type for OUTARRAY
in FormatProperties2"), but they aren't included in the pre-merge CI run.

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

2 years agoiris: Handle range tracking for global bindings
Jason Ekstrand [Wed, 6 Apr 2022 18:17:38 +0000 (13:17 -0500)]
iris: Handle range tracking for global bindings

The moment something is bound globally, the whole thing is valid.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15777>

2 years agoiris: Account for BO offsets in iris_set_global_binding()
Jason Ekstrand [Wed, 6 Apr 2022 18:14:14 +0000 (13:14 -0500)]
iris: Account for BO offsets in iris_set_global_binding()

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15777>

2 years agoci/freedreno: Add fractional test of forced unaligned gmem store
Danylo Piliaiev [Wed, 6 Apr 2022 15:12:39 +0000 (18:12 +0300)]
ci/freedreno: Add fractional test of forced unaligned gmem store

Unaligned gmem store is a mostly untested path since most
of the times faster path is chosen. We have to force unaligned
store to really test it.

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

2 years agoblorp: disable depth bounds
Lionel Landwerlin [Wed, 6 Apr 2022 08:50:13 +0000 (11:50 +0300)]
blorp: disable depth bounds

Otherwise the driver setting interacts with it.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 939ddccb7a54 ("anv: Add support for depth bounds testing.")
Fixes: 1df871f8ff75 ("iris: Add support for depth bounds testing.")
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15763>

2 years agoanv: remove unused 3DSTATE_DEPTH_BOUNDS fields
Lionel Landwerlin [Wed, 6 Apr 2022 08:49:51 +0000 (11:49 +0300)]
anv: remove unused 3DSTATE_DEPTH_BOUNDS fields

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15763>

2 years agolavapipe: Go back to manually signaling in lvp_AcquireNextImage2()
Jason Ekstrand [Wed, 6 Apr 2022 15:50:10 +0000 (10:50 -0500)]
lavapipe: Go back to manually signaling in lvp_AcquireNextImage2()

When porting lavapipe to the common sync framework, I stole the dummy
sync signal_for_memory idea from RADV but didn't actually do it
correctly.  Unless you set wsi_device::signal_semaphore_with_memory and
wsi_device::signal_fence_with_memory, it doesn't actually signal
anything.  If you do set those, it works but also results in dummy
syncs being created for present fences which we see as signals.  We
could choose to just skip those like RADV does but that's too magic.
Instead, have our own AcquireNextImage2() again which sets dummy syncs.

Fixes: 3b547a9b5816 ("lavapipe: Switch to the common sync framework")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15774>

2 years agoturnip: Fix subpassLoad from CUBE input attachments
Danylo Piliaiev [Fri, 1 Apr 2022 17:00:30 +0000 (20:00 +0300)]
turnip: Fix subpassLoad from CUBE input attachments

Cube descriptors require a different sampling instruction in shader,
however we don't know whether image is a cube or not until the start
of a renderpass. We have to patch the descriptor to make it compatible
with how it is sampled in shader.

For the reference subpassLoad is currently translated into isaml.a

Blob v615 also doesn't handle this case correctly.

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

2 years agod3d12: fix return-code without dxcompiler.dll
Erik Faye-Lund [Tue, 5 Apr 2022 06:40:42 +0000 (08:40 +0200)]
d3d12: fix return-code without dxcompiler.dll

When we don't have a good dxcompiler.dll that we can load IDxcLibrary
from to help with diagnostics, we currently return true for validation
even if the validation actually failed.

Let's fix that, and also add a debug-message explaining what went wrong
for those who are debugging and wondering what's up.

Fixes: 2ea15cd661c ("d3d12: introduce d3d12 gallium driver")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15744>

2 years agoci: Lock Intel GPU frequency for performance tests
Cristian Ciocaltea [Wed, 30 Mar 2022 06:57:19 +0000 (09:57 +0300)]
ci: Lock Intel GPU frequency for performance tests

In order to ensure consistent results when running performance tests,
lock the frequency for Intel GPUs to ~70% of the maximum allowed by
hardware.

This seems to offer a good balance between execution speed and results
consistency.

An increase of the frequency will also increase the rate of throttling
events, with a negative impact on consistency. Such events are logged,
as in the following example:

  GPU throttling detected: act=200 min=850 cur=850 RPn=100

This shows the actual GPU frequency (200 MHz) dropped below the minimum
requested (850 MHz).

For more details about the various frequency information sources, please
see the script header comments in ".gitlab-ci/common/intel-gpu-freq.sh".

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Acked-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15662>

2 years agoci: Provide intel-gpu-freq.sh in LAVA and bare-metal rootfs
Cristian Ciocaltea [Wed, 30 Mar 2022 06:50:39 +0000 (09:50 +0300)]
ci: Provide intel-gpu-freq.sh in LAVA and bare-metal rootfs

The script will be used for tuning Intel GPU frequency to maximize
performance tests execution, while also trying to reduce throttling,
which has a negative impact on results consistency.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Acked-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15662>

2 years agoci: Add Intel GPU frequency utility
Cristian Ciocaltea [Tue, 29 Mar 2022 12:55:38 +0000 (15:55 +0300)]
ci: Add Intel GPU frequency utility

Add script to manage Intel GPU frequencies.

It can be used for debugging performance problems or to lock a stable
frequency while executing benchmark tests.

Typical use cases:

- Get all available GPU frequency information
$ ./intel-gpu-freq.sh -g all

* Hardware capabilities
   RP0: 1350 MHz
   RPn:  100 MHz
   RP1:  400 MHz

* Enforcements
   max: 1350 MHz
   min:  100 MHz
 boost: 1350 MHz

* Actual
   act:  100 MHz
   cur:  400 MHz

- Lock frequency to 80% of the maximum allowed by hardware and enable
  throttling detection
$ ./intel-gpu-freq.sh -s 80% -d

GPU throttling detected: act=1050 min=1350 cur=1350 RPn=100
GPU throttling detected: act=1100 min=1350 cur=1350 RPn=100

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Acked-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15662>

2 years agoanv: disable preemption on 3DPRIMITIVE on gfx12
Lionel Landwerlin [Tue, 5 Apr 2022 12:35:57 +0000 (15:35 +0300)]
anv: disable preemption on 3DPRIMITIVE on gfx12

To workaround a push constant corruption issue.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5963
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5662
Cc: mesa-stable
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15753>

2 years agoanv: fix EXT_depth_clip_control
Vadym Shovkoplias [Thu, 24 Mar 2022 07:34:25 +0000 (09:34 +0200)]
anv: fix EXT_depth_clip_control

This fixes arb_clip_control-clip-control and depth_clamp piglit
tests on zink.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6186
Signed-off-by: Vadym Shovkoplias <vadym.shovkoplias@globallogic.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15561>

2 years agoturnip: Add "unaligned_store" debug option to better test gmem stores
Danylo Piliaiev [Thu, 24 Mar 2022 13:37:56 +0000 (15:37 +0200)]
turnip: Add "unaligned_store" debug option to better test gmem stores

Unaligned store is incredibly rare in CTS, we have to force it to
actually test it.

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

2 years agoturnip: Ignore aspectMask for D32S8 framebuffer attachment
Danylo Piliaiev [Wed, 23 Mar 2022 14:35:09 +0000 (16:35 +0200)]
turnip: Ignore aspectMask for D32S8 framebuffer attachment

Vulkan spec says:

 "When an image view of a depth/stencil image is used as a depth/stencil
  framebuffer attachment, the aspectMask is ignored and both depth and
  stencil image subresources are used."

Since we use two planes for D32S8 format we have to add a special
case for depth in addition to already existing case for stencil.

Fixes hang in CTS:
 dEQP-VK.renderpass.depth_stencil_write_conditions.stencil_kill_write_d32sf_s8ui

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

2 years agoturnip: Correctly store separate stencil in gmem store
Danylo Piliaiev [Wed, 23 Mar 2022 12:09:36 +0000 (14:09 +0200)]
turnip: Correctly store separate stencil in gmem store

- When resolving d32s8 to s8 we stored stencil with a wrong format.
- For unaligned multi-sample store we used wrong gmem offset for stencil.

If unaligined store is forced this change fixes a hang in:
 dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d32_sfloat_s8_uint_separate_layouts.compatibility_depth_zero_stencil_zero_testing_stencil

Fixes: b157a5d0d68ee8a1b4cb862a56b97bd881841413
("tu: Implement non-aligned multisample GMEM STORE_OP_STORE")

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

2 years agoradv: enable VK_KHR_pipeline_library
Samuel Pitoiset [Mon, 4 Apr 2022 16:05:10 +0000 (18:05 +0200)]
radv: enable VK_KHR_pipeline_library

This has been initially implemented for raytracing but
VK_EXT_graphics_pipeline_library requires it.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15737>

2 years agozink: use GENERAL layout for mixed zs fb attachments
Mike Blumenkrantz [Tue, 5 Apr 2022 19:03:25 +0000 (15:03 -0400)]
zink: use GENERAL layout for mixed zs fb attachments

this interaction requires read-only sampler access from
depth component with writes to the stencil component, which can only
be done in the GENERAL layout

affects:
GTF-GL46.gtf30.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_color_and_stencil_blit

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

2 years agozink: update samplerview layouts for zs attachments during renderpass prep
Mike Blumenkrantz [Tue, 5 Apr 2022 19:02:29 +0000 (15:02 -0400)]
zink: update samplerview layouts for zs attachments during renderpass prep

this interaction might require layout changes

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

2 years agozink: use store op NONE when necessary for depth usage
Mike Blumenkrantz [Tue, 5 Apr 2022 19:00:16 +0000 (15:00 -0400)]
zink: use store op NONE when necessary for depth usage

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

2 years agozink: delete some code in get_layout_for_binding()
Mike Blumenkrantz [Tue, 5 Apr 2022 18:57:01 +0000 (14:57 -0400)]
zink: delete some code in get_layout_for_binding()

should be no functional changes

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

2 years agozink: add a ctx param to zink_descriptor_util_image_layout_eval
Mike Blumenkrantz [Tue, 5 Apr 2022 18:56:24 +0000 (14:56 -0400)]
zink: add a ctx param to zink_descriptor_util_image_layout_eval

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

2 years agozink: add a renderpass flag for mixed zs layout
Mike Blumenkrantz [Tue, 5 Apr 2022 18:55:05 +0000 (14:55 -0400)]
zink: add a renderpass flag for mixed zs layout

this indicates that the layout requires reading from the depth aspect
and writing to the stencil aspect

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

2 years agozink: further simplify zs case for zink_descriptor_util_image_layout_eval
Mike Blumenkrantz [Tue, 5 Apr 2022 18:13:44 +0000 (14:13 -0400)]
zink: further simplify zs case for zink_descriptor_util_image_layout_eval

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

2 years agozink: remove commented code
Mike Blumenkrantz [Tue, 5 Apr 2022 18:12:03 +0000 (14:12 -0400)]
zink: remove commented code

probably never actually going to do this since it serves no purpose

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

2 years agozink: refactor zink_descriptor_util_image_layout_eval
Mike Blumenkrantz [Tue, 5 Apr 2022 18:11:40 +0000 (14:11 -0400)]
zink: refactor zink_descriptor_util_image_layout_eval

slightly more readable

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

2 years agozink: use EXT_image_2d_view_of_3d
Mike Blumenkrantz [Tue, 5 Apr 2022 20:03:08 +0000 (16:03 -0400)]
zink: use EXT_image_2d_view_of_3d

fixes #4562

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

2 years agozink: unset resource layout+access when doing storage setup
Mike Blumenkrantz [Tue, 5 Apr 2022 16:09:02 +0000 (12:09 -0400)]
zink: unset resource layout+access when doing storage setup

the previous access info is transferred to the staging resource for the copy,
and the new image has no access info

cc: mesa-stable

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

2 years agozink: prune shader i/o
Mike Blumenkrantz [Tue, 5 Apr 2022 14:40:27 +0000 (10:40 -0400)]
zink: prune shader i/o

to avoid validation spam when variables are declared but never used,
eliminate persisting i/o variables which are never used

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

2 years agozink: fix max geometry input component advertising
Mike Blumenkrantz [Mon, 4 Apr 2022 21:00:26 +0000 (17:00 -0400)]
zink: fix max geometry input component advertising

forgot to divide by 4 somehow

cc: mesa-stable

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

2 years agozink: convert all 64bit vertex attribs to 32bit
Mike Blumenkrantz [Mon, 4 Apr 2022 16:41:10 +0000 (12:41 -0400)]
zink: convert all 64bit vertex attribs to 32bit

this applies not only to dvec3/dvec4, but to any type of 64bit input
since that's what gallium gives us

fixes #6211

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

2 years agozink: apply fb attachment layout to dummy attachments
Mike Blumenkrantz [Mon, 4 Apr 2022 15:50:25 +0000 (11:50 -0400)]
zink: apply fb attachment layout to dummy attachments

this doesn't actually matter but it still triggers validation spam

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

2 years agozink: clamp min viewport width to 1
Mike Blumenkrantz [Mon, 4 Apr 2022 15:03:38 +0000 (11:03 -0400)]
zink: clamp min viewport width to 1

fixes validation spam

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

2 years agozink: handle 1bit xor as OpLogicalNotEqual
Mike Blumenkrantz [Mon, 4 Apr 2022 14:09:09 +0000 (10:09 -0400)]
zink: handle 1bit xor as OpLogicalNotEqual

fixes more validation spam

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

2 years agozink: set Geometry capability for fs if geometry inputs are read
Mike Blumenkrantz [Fri, 1 Apr 2022 17:37:52 +0000 (13:37 -0400)]
zink: set Geometry capability for fs if geometry inputs are read

super legal.

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

2 years agozink: always set stencil dynamic states before draw
Mike Blumenkrantz [Fri, 1 Apr 2022 17:26:28 +0000 (13:26 -0400)]
zink: always set stencil dynamic states before draw

these are dynamic states set on the pipeline, so they must always
be set on a cmdbuf before draw

fixes some validation spam

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

2 years agozink: merge stencil test case for draw-time dynamic state
Mike Blumenkrantz [Fri, 1 Apr 2022 17:25:49 +0000 (13:25 -0400)]
zink: merge stencil test case for draw-time dynamic state

these cases were identical but using different conditionals

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

2 years agozink: only uncommit sparse pages that have been committed
Mike Blumenkrantz [Fri, 1 Apr 2022 12:01:32 +0000 (08:01 -0400)]
zink: only uncommit sparse pages that have been committed

avoid spamming drivers unnecessary with submits since this is expensive

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

2 years agozink: fix barrier generation for ssbo descriptors
Mike Blumenkrantz [Thu, 31 Mar 2022 15:29:36 +0000 (11:29 -0400)]
zink: fix barrier generation for ssbo descriptors

ssbo binds are always at least readable, so without deeper shader
inspection, never assume that write binds mean no read access

this is different than image descriptors which can explicitly get
write-only access set

cc: mesa-stable

fixes #6231

THANKS TO @daniel-schuermann FOR SOLVING THIS WITH HIS INCREDIBLE TALENT AND WIT

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

2 years agoRevert "venus: Increase the base sleep of vn_relax"
Renato Pereyra [Wed, 6 Apr 2022 01:02:46 +0000 (18:02 -0700)]
Revert "venus: Increase the base sleep of vn_relax"

This reverts commit 737937f45e4231dd596780a856270693566de658.

Testing has revealed sizable performance drops arising out of this change.

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

2 years agopanvk: Enable VK_EXT_debug_report and VK_EXT_debug_utils
Jason Ekstrand [Thu, 24 Mar 2022 16:33:46 +0000 (11:33 -0500)]
panvk: Enable VK_EXT_debug_report and VK_EXT_debug_utils

They're both implemented in common code as long as you use
vk_command_buffer.

Acked-by: Emma Anholt <emma@anholt.net>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15560>

2 years agoanv: Enable VK_EXT_debug_utils
Jason Ekstrand [Thu, 24 Mar 2022 16:33:19 +0000 (11:33 -0500)]
anv: Enable VK_EXT_debug_utils

It's implemented in common code as long as you use vk_command_buffer.

Acked-by: Emma Anholt <emma@anholt.net>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15560>

2 years agolavapipe: Enable VK_EXT_debug_utils
Jason Ekstrand [Thu, 24 Mar 2022 16:32:46 +0000 (11:32 -0500)]
lavapipe: Enable VK_EXT_debug_utils

It's implemented in common code as long as you use vk_command_buffer.

Acked-by: Emma Anholt <emma@anholt.net>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15560>

2 years agoturnip: Enable VK_EXT_debug_utils
Jason Ekstrand [Thu, 24 Mar 2022 16:32:32 +0000 (11:32 -0500)]
turnip: Enable VK_EXT_debug_utils

It's implemented in common code as long as you use vk_command_buffer.

Acked-by: Emma Anholt <emma@anholt.net>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15560>

2 years agov3dv: Enable VK_EXT_debug_utils
Jason Ekstrand [Thu, 24 Mar 2022 16:32:01 +0000 (11:32 -0500)]
v3dv: Enable VK_EXT_debug_utils

It's implemented in common code as long as you use vk_command_buffer.

Acked-by: Emma Anholt <emma@anholt.net>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15560>

2 years agolavapipe: Switch to the common sync framework
Jason Ekstrand [Tue, 29 Mar 2022 19:07:18 +0000 (14:07 -0500)]
lavapipe: Switch to the common sync framework

The common Vulkan sync framework will do most of the queueing for us.
It will even sort out timeline semaphore dependencies and ensure
everything executes in-order.  All we have to do is make sure our
vk_sync type implements VK_SYNC_FEATURE_WAIT_PENDING.  This lets us get
rid of a big pile of code.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15651>

2 years agovulkan: Use timespec_add_nsec in vk_sync_timeline
Jason Ekstrand [Tue, 29 Mar 2022 18:14:27 +0000 (13:14 -0500)]
vulkan: Use timespec_add_nsec in vk_sync_timeline

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15651>

2 years agoutil/timespec: Return overflow from timespec_add_[mn]sec()
Jason Ekstrand [Thu, 31 Mar 2022 15:44:56 +0000 (10:44 -0500)]
util/timespec: Return overflow from timespec_add_[mn]sec()

To avoid altering any currently existing callers, we continue on with
the calculation regardless of overflow.  This also matches the behavior
of GCC's __builtin_add_overflow().

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15651>

2 years agogallivm/nir: Add a short circuit uniform-offset mode for load_ssbo/load_shared.
Emma Anholt [Thu, 10 Feb 2022 23:05:19 +0000 (15:05 -0800)]
gallivm/nir: Add a short circuit uniform-offset mode for load_ssbo/load_shared.

dEQP-VK.binding_model.buffer_device_address.set3.depth3.basessbo.convertuvec2.nostore.multi.scalar.vert
runtime -24.4002% +/- 1.94375% (n=7).  The win (I think) is in LLVM not
having to chew through handling the extra loops on every constant-offset
SSBO load, not in actual rendering time.

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

2 years agogallivm/nir: Add a short circuit uniform-offset mode for load_global.
Emma Anholt [Thu, 10 Feb 2022 22:29:13 +0000 (14:29 -0800)]
gallivm/nir: Add a short circuit uniform-offset mode for load_global.

If we know the offset is constant, we don't have ask LLVM to loop over the
elements pulling the same value out over and over.

This doesn't seem to have produced a win in the testcase I was looking at,
but it was an easier entrypoint to figuring out how to do scalar memory
access than load_memory, and will probably affect some workload.

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

2 years agogallivm/nir: Refactor out some repeated code to generate 0 values.
Emma Anholt [Thu, 10 Feb 2022 22:47:42 +0000 (14:47 -0800)]
gallivm/nir: Refactor out some repeated code to generate 0 values.

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

2 years agogallivm/nir: Refactor out some repeated logic for SSBO/shared access.
Emma Anholt [Thu, 10 Feb 2022 22:15:01 +0000 (14:15 -0800)]
gallivm/nir: Refactor out some repeated logic for SSBO/shared access.

I needed to be able to get these pointers/limits from another location,
and missing some of the repeated steps was giving me bugs.

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

2 years agogallivm/nir: Pull some repeated exec_mask computation out of loops.
Emma Anholt [Thu, 10 Feb 2022 19:27:31 +0000 (11:27 -0800)]
gallivm/nir: Pull some repeated exec_mask computation out of loops.

If the exec mask hasn't changed, don't hassle LLVM to set it up

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

2 years agogallivm/nir: Don't do uniform-and-broadcast access on inactive invocations.
Emma Anholt [Fri, 11 Feb 2022 17:12:10 +0000 (09:12 -0800)]
gallivm/nir: Don't do uniform-and-broadcast access on inactive invocations.

In a fragment shader or inside of control flow, invocation 0 might be
inactive, and so our use-first-invocation-and-broadcast optimizations
would be invalid, and the loop logic of an emit_read_invocation would
defeat the point of these optimized paths.

For load_kernel_input, I didn't guard the uniform path with the check
because some CL tests that are currently passing are doing the
load_kernel_input under (presumably) uniform control flow.  Instead, I
dropped in a once warning for the next person to be debugging CL.

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

2 years agoutil/log: Add support for logging once.
Emma Anholt [Fri, 18 Feb 2022 18:49:24 +0000 (10:49 -0800)]
util/log: Add support for logging once.

These are not data-race safe (like many other once patterns in Mesa), so
they might not log exactly once, but it should be good enough for not
spamming the console.

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

2 years agoci/lava: Simplify passthrough of the request to upload results/ to minio.
Emma Anholt [Thu, 10 Mar 2022 22:21:53 +0000 (14:21 -0800)]
ci/lava: Simplify passthrough of the request to upload results/ to minio.

We already have a way to pass env vars around, just use that instead of
packing/unpacking it on the kernel command line.

Cleans up HW runner job log output some more.

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

2 years agoci/deqp: Move the set +e just before the deqp-runner invocation.
Emma Anholt [Thu, 10 Mar 2022 20:56:17 +0000 (12:56 -0800)]
ci/deqp: Move the set +e just before the deqp-runner invocation.

You don't want to proceed to running deqp-runner if you failed at the
vtest or runner options environment setup.

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

2 years agoci/deqp: Add gitlab-ci sections to deqp-runner.sh.
Emma Anholt [Thu, 10 Mar 2022 20:53:22 +0000 (12:53 -0800)]
ci/deqp: Add gitlab-ci sections to deqp-runner.sh.

This should help highlight the actual test results, as opposed to the setup
and teardown.

Also tuned the "set -x"es a little bit so we get less surrounding noise in
the echo process.

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

2 years agospirv: Silence "Decoration not allowed on struct members: SpvDecorationRestrict"
Emma Anholt [Thu, 10 Mar 2022 20:39:24 +0000 (12:39 -0800)]
spirv: Silence "Decoration not allowed on struct members: SpvDecorationRestrict"

VK-GL-CTS causes tons of these due to a bug in glslang, to the point where
it's hard to find actual issues in test logs.  Disable the warning for
now, with a link to the issue we're waiting on being resolved.

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

2 years agoutil/log: Don't print an extra \n if the format string had one.
Emma Anholt [Thu, 10 Mar 2022 20:30:16 +0000 (12:30 -0800)]
util/log: Don't print an extra \n if the format string had one.

You're not supposed to include a '\n' in mesa_log*() messages because
android logging will log what you provide on its own line anyway, so each
mesa_log() should be the body of a log line.  But also, getting everyone
to consistently not do that is hopeless because we're all so trained by
printf().  So, just detect an existing \n and don't add a new one.

Cleans up deqp-vk debug output a bunch from turnip.

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

2 years agodocs: update features for VK_EXT_image_2d_view_of_3d
Mike Blumenkrantz [Tue, 5 Apr 2022 21:08:02 +0000 (17:08 -0400)]
docs: update features for VK_EXT_image_2d_view_of_3d

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

2 years agoanv: expose VK_EXT_image_2d_view_of_3d
Mike Blumenkrantz [Tue, 5 Apr 2022 12:40:34 +0000 (08:40 -0400)]
anv: expose VK_EXT_image_2d_view_of_3d

sampling only available on gen9+

Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15754>

2 years agolavapipe: expose VK_EXT_image_2d_view_of_3d
Mike Blumenkrantz [Tue, 5 Apr 2022 12:39:59 +0000 (08:39 -0400)]
lavapipe: expose VK_EXT_image_2d_view_of_3d

Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15754>

2 years agovulkan: check 3D image type for VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT
Mike Blumenkrantz [Tue, 5 Apr 2022 12:39:34 +0000 (08:39 -0400)]
vulkan: check 3D image type for VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT

Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15754>

2 years agotu: Expose VK_KHR_maintenance4
Connor Abbott [Fri, 18 Mar 2022 14:51:40 +0000 (15:51 +0100)]
tu: Expose VK_KHR_maintenance4

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

2 years agotu: Remove tu_pipeline::layout
Connor Abbott [Fri, 18 Mar 2022 13:46:43 +0000 (14:46 +0100)]
tu: Remove tu_pipeline::layout

This makes it more obvious that the layout is never used after creating
the pipeline, which is required by VK_KHR_maintenance4.

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

2 years agotu: Fill out maxBufferSize
Connor Abbott [Fri, 18 Mar 2022 13:36:11 +0000 (14:36 +0100)]
tu: Fill out maxBufferSize

It seems this is really a workaround for silly issues in
GetBufferMemoryRequirements when you ask for a really large buffer. Just
expose the maximum possible size ATM.

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

2 years agotu: Implement GetDevice*MemoryRequirements()
Connor Abbott [Fri, 18 Mar 2022 13:13:47 +0000 (14:13 +0100)]
tu: Implement GetDevice*MemoryRequirements()

Based mostly on anv, which is a bit more optimized than radv - we at
allocate the image on the stack.

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

2 years agoci: do not specify c_std and cpp_std for windows-build
Erik Faye-Lund [Fri, 1 Apr 2022 07:13:36 +0000 (09:13 +0200)]
ci: do not specify c_std and cpp_std for windows-build

When parts of the tree needs later c and c++ versions, they should ask
for it in the build-system itself, not expect the user to ask for it on
the command-line instead. So let's not paper over things by specifying
them here.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15706>

2 years agodozen: require c++20 for designated initializers
Erik Faye-Lund [Fri, 1 Apr 2022 07:07:40 +0000 (09:07 +0200)]
dozen: require c++20 for designated initializers

We do require C++20 still, because designated initializers is part of
that standard. This is almost a revert, but conditionally selecting
between c++latest or c++20 when available, as that's what we really want.

Fixes: 55ca1c8db37 ("vulkan/microsoft: Remove `override_options: ['cpp_std=c++latest']` option for visual studio")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15706>

2 years agonir/tests: do not use designated initializers in c++ code
Erik Faye-Lund [Fri, 1 Apr 2022 08:34:11 +0000 (10:34 +0200)]
nir/tests: do not use designated initializers in c++ code

Designated initializers require C++20, which is a bit easier said than
done to support well across meson versions. Let's avoid using them
for now instead.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15706>

2 years agoaco: do not use designated initializers
Erik Faye-Lund [Mon, 4 Apr 2022 08:54:07 +0000 (10:54 +0200)]
aco: do not use designated initializers

Designated initializers are a C++20 feature, but we don't use C++20. In
fact, enabling C++20 for ACO triggers new compiler errors due to some
equality semantics details.

So let's instead stop using designated initializers here.

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15706>

2 years agofrontends/va: fix decode issues introduced by efc change
Thong Thai [Fri, 25 Mar 2022 00:21:19 +0000 (20:21 -0400)]
frontends/va: fix decode issues introduced by efc change

Fixes: 96025265689 ("frontends/va: add encoder format conversion (EFC) support")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6153
Signed-off-by: Thong Thai <thong.thai@amd.com>
Tested-by: Andrew Falcon <bluestang2006@gmail.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15717>

2 years agoradv: Remove radv_util.c
Konstantin Seurer [Sun, 3 Apr 2022 11:25:44 +0000 (13:25 +0200)]
radv: Remove radv_util.c

Signed-off-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15725>

2 years agovulkan: spec update to 1.3.211
Mike Blumenkrantz [Tue, 5 Apr 2022 12:36:26 +0000 (08:36 -0400)]
vulkan: spec update to 1.3.211

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

2 years agopanfrost: Don't crash on panfrost_bo_create() with size==0 invocation
Roman Stratiienko [Mon, 4 Apr 2022 17:52:59 +0000 (20:52 +0300)]
panfrost: Don't crash on panfrost_bo_create() with size==0 invocation

1. Clamp bucket_index from both ends to avoid returning negative index.
2. Return NULL in case BO allocation/fetching failure to prevent invalid
   bo mapping.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6247
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15748>

2 years agoradv: only declare dynamic states that are used by internal operations
Samuel Pitoiset [Fri, 1 Apr 2022 09:44:26 +0000 (11:44 +0200)]
radv: only declare dynamic states that are used by internal operations

Initialize some default static PSO states instead.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15729>

2 years agoradv: use radv_dynamic_state for saving/restoring meta operations
Samuel Pitoiset [Mon, 4 Apr 2022 06:11:40 +0000 (08:11 +0200)]
radv: use radv_dynamic_state for saving/restoring meta operations

Instead of duplicating every fields.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15729>