platform/upstream/mesa.git
21 months agoegl: Rewrite eglSetBlobCacheFuncsANDROID to use the standard macros
Adam Jackson [Tue, 20 Sep 2022 18:42:23 +0000 (14:42 -0400)]
egl: Rewrite eglSetBlobCacheFuncsANDROID to use the standard macros

As the deleted comment hints, you just need the macro to expand to

    return /* void */;

for things to work.

Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18713>

21 months agoegl: Factor out the eglTerminate write-lock pattern
Adam Jackson [Tue, 20 Sep 2022 18:14:51 +0000 (14:14 -0400)]
egl: Factor out the eglTerminate write-lock pattern

Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18713>

21 months agoegl: Untangle some spaghetti around _eglLookupDisplay
Adam Jackson [Tue, 20 Sep 2022 17:51:00 +0000 (13:51 -0400)]
egl: Untangle some spaghetti around _eglLookupDisplay

Only eglapi needs any of this.

Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18713>

21 months agoegl: Promote _eglLock/UnlockDisplay to internal API
Adam Jackson [Tue, 20 Sep 2022 17:38:04 +0000 (13:38 -0400)]
egl: Promote _eglLock/UnlockDisplay to internal API

This reads a bit more cleanly than egl_lock/egl_unlock I think.

Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18713>

21 months agoegl: Fix a bunch of maybe-uninitialized warnings
Adam Jackson [Fri, 16 Sep 2022 17:06:18 +0000 (13:06 -0400)]
egl: Fix a bunch of maybe-uninitialized warnings

Fedora's gcc 12 is apparently not smart enough to deduce that these are
always initialized, so set some clear default values.

Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18713>

21 months agoUpdate 22.2.0.rst
Yonggang Luo [Wed, 21 Sep 2022 18:26:44 +0000 (18:26 +0000)]
Update 22.2.0.rst

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

21 months agodocs: Add calendar entries for 22.2 release.
Dylan Baker [Wed, 21 Sep 2022 16:24:29 +0000 (09:24 -0700)]
docs: Add calendar entries for 22.2 release.

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

21 months agodocs: update calendar and link releases notes for 22.2.0
Dylan Baker [Wed, 21 Sep 2022 16:23:31 +0000 (09:23 -0700)]
docs: update calendar and link releases notes for 22.2.0

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

21 months agodocs: Add sha256 sum for 22.2.0
Dylan Baker [Wed, 21 Sep 2022 16:17:10 +0000 (09:17 -0700)]
docs: Add sha256 sum for 22.2.0

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

21 months agodocs: add release notes for 22.2.0
Dylan Baker [Wed, 21 Sep 2022 16:16:34 +0000 (09:16 -0700)]
docs: add release notes for 22.2.0

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

21 months agovenus: ensure to clear VkPipelineCreationFeedback::flags if needed
Yiwei Zhang [Thu, 22 Sep 2022 05:43:56 +0000 (05:43 +0000)]
venus: ensure to clear VkPipelineCreationFeedback::flags if needed

Fixes: d0cb99e96a2 ("venus: Enable VK_EXT_pipeline_creation_feedback")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18741>

21 months agoturnip: Fix busy-waiting on syncobjs with OS_TIMEOUT_INFINITE.
Emma Anholt [Wed, 21 Sep 2022 23:42:34 +0000 (16:42 -0700)]
turnip: Fix busy-waiting on syncobjs with OS_TIMEOUT_INFINITE.

I noticed that glmark2's glFinish()es in its offscreen rendering tests
under zink were spinning.  When we passed -1 as the timeout for
drmSyncobjWait(), the kernel would immediately return ETIME.

Fixes: 0a82a26a1854 ("turnip: Porting to common implementation for timeline semaphore")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18739>

21 months agofrontends/va: fix build error for vaSyncBuffer with older VA
Leo Liu [Thu, 22 Sep 2022 16:53:25 +0000 (12:53 -0400)]
frontends/va: fix build error for vaSyncBuffer with older VA

return VA_STATUS_ERROR_TIMEDOUT;
      |              ^~~~~~~~~~~~~~~~~~~~~~~~
      |              VA_STATUS_ERROR_UNKNOWN
../src/gallium/frontends/va/buffer.c:434:14: note: each undeclared identifier is reported only once for each function it appears in
../src/gallium/frontends/va/buffer.c:436:22: error: ‘VA_TIMEOUT_INFINITE’ undeclared (first use in this function); did you mean ‘PIPE_TIMEOUT_INFINITE’?
  436 |    if (timeout_ns != VA_TIMEOUT_INFINITE)
      |                      ^~~~~~~~~~~~~~~~~~~
      |                      PIPE_TIMEOUT_INFINITE

Fixes: 229c6f79a ("frontends/va: Implement vaSyncBuffer")

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18760>

21 months agofreedreno: Handle xfb invalidation
Rob Clark [Tue, 20 Sep 2022 21:15:43 +0000 (14:15 -0700)]
freedreno: Handle xfb invalidation

So using the same buffer for CPU writes and GPU writes might be kinda
unusual.  But I noticed we were missing handling for the case while
debugging something unrelated.

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

21 months agolavapipe/meson: rename module_dir to icd_lib_path and swap two lines for consistence
Yonggang Luo [Thu, 22 Sep 2022 08:41:55 +0000 (16:41 +0800)]
lavapipe/meson: rename module_dir to icd_lib_path and swap two lines for consistence

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18747>

21 months agodzn: rename module_dir to icd_lib_path for consistence
Yonggang Luo [Thu, 22 Sep 2022 08:42:32 +0000 (16:42 +0800)]
dzn: rename module_dir to icd_lib_path for consistence

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18747>

21 months agoradv: Getting radeon_icd to be generated properly on win32
Yonggang Luo [Thu, 22 Sep 2022 03:58:57 +0000 (11:58 +0800)]
radv: Getting radeon_icd to be generated properly on win32

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18747>

21 months agomesa/st: fix a set_sampler_views call parameter order
Tapani Pälli [Thu, 22 Sep 2022 08:17:21 +0000 (11:17 +0300)]
mesa/st: fix a set_sampler_views call parameter order

Fixes: e7b95619596 ("gallium: implement compute pbo download")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18745>

21 months agopvr: Implement vkCmdNextSubpass API.
Rajnesh Kanwal [Thu, 1 Sep 2022 12:13:12 +0000 (13:13 +0100)]
pvr: Implement vkCmdNextSubpass API.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707>

21 months agopvr: Pass load-op struct instead of idx to support subpass load-ops.
Rajnesh Kanwal [Tue, 30 Aug 2022 18:58:56 +0000 (19:58 +0100)]
pvr: Pass load-op struct instead of idx to support subpass load-ops.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707>

21 months agopvr: Add support to create subpass load ops.
Rajnesh Kanwal [Tue, 30 Aug 2022 14:50:15 +0000 (15:50 +0100)]
pvr: Add support to create subpass load ops.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707>

21 months agopvr: Add attachment resolve support.
Rajnesh Kanwal [Fri, 2 Sep 2022 14:15:42 +0000 (15:15 +0100)]
pvr: Add attachment resolve support.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707>

21 months agopvr: Add const to structs that are not supposed to be modified.
Rajnesh Kanwal [Fri, 2 Sep 2022 14:12:06 +0000 (15:12 +0100)]
pvr: Add const to structs that are not supposed to be modified.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707>

21 months agopvr: Rename userpass_spawn to isp_userpass.
Rajnesh Kanwal [Tue, 23 Aug 2022 10:35:25 +0000 (11:35 +0100)]
pvr: Rename userpass_spawn to isp_userpass.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707>

21 months agopvr: Add missing output register write in pvr_CreateRenderPass2.
Rajnesh Kanwal [Wed, 3 Aug 2022 16:53:32 +0000 (17:53 +0100)]
pvr: Add missing output register write in pvr_CreateRenderPass2.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707>

21 months agopvr: Use ~0 for masks instead of ~0U.
Rajnesh Kanwal [Thu, 4 Aug 2022 13:05:44 +0000 (14:05 +0100)]
pvr: Use ~0 for masks instead of ~0U.

This makes code future proof in case someone changes the type
and also avoids half masks (0x00000000FFFFFFFF) in case of
64bit variables.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reported-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707>

21 months agopvr: Add support for generating render pass hw setup data.
Rajnesh Kanwal [Tue, 5 Jul 2022 11:26:37 +0000 (12:26 +0100)]
pvr: Add support for generating render pass hw setup data.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707>

21 months agopvr: Replace pvr_renderpass_surface_initop with VkAttachmentLoadOp.
Rajnesh Kanwal [Tue, 2 Aug 2022 12:52:03 +0000 (13:52 +0100)]
pvr: Replace pvr_renderpass_surface_initop with VkAttachmentLoadOp.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707>

21 months agopvr: General reformatting and renaming some fields.
Rajnesh Kanwal [Tue, 2 Aug 2022 12:27:35 +0000 (13:27 +0100)]
pvr: General reformatting and renaming some fields.

Mainly renaming driver_id and similar fields to index to
better represent what they contain.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18707>

21 months agodocs: update calendar and link releases notes for 22.1.7
Eric Engestrom [Thu, 22 Sep 2022 12:33:29 +0000 (14:33 +0200)]
docs: update calendar and link releases notes for 22.1.7

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

21 months agodocs: add release notes for 22.1.7
Eric Engestrom [Thu, 22 Sep 2022 12:58:07 +0000 (14:58 +0200)]
docs: add release notes for 22.1.7

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

21 months agodocs: update calendar and link releases notes for 22.1.6
Eric Engestrom [Thu, 22 Sep 2022 12:33:27 +0000 (14:33 +0200)]
docs: update calendar and link releases notes for 22.1.6

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

21 months agodocs: add release notes for 22.1.6
Eric Engestrom [Thu, 22 Sep 2022 12:55:57 +0000 (14:55 +0200)]
docs: add release notes for 22.1.6

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

21 months agoaco/optimizer: change inverse_comparison in-place
Daniel Schürmann [Wed, 24 Aug 2022 17:13:52 +0000 (19:13 +0200)]
aco/optimizer: change inverse_comparison in-place

This avoids creating a second comparison which is more expensive
than just using the existing s_not.

Totals from 1089 (0.81% of 134913) affected shaders: (GFX10.3)
VGPRs: 50472 -> 50184 (-0.57%)
CodeSize: 4724692 -> 4760824 (+0.76%); split: -0.03%, +0.79%
MaxWaves: 23964 -> 24012 (+0.20%)
Instrs: 859588 -> 859687 (+0.01%); split: -0.11%, +0.12%
Latency: 10674653 -> 10650353 (-0.23%); split: -0.41%, +0.18%
InvThroughput: 1752987 -> 1750238 (-0.16%); split: -0.20%, +0.04%
VClause: 20921 -> 20872 (-0.23%); split: -0.68%, +0.45%
SClause: 31417 -> 31550 (+0.42%)
Copies: 69428 -> 68738 (-0.99%); split: -1.52%, +0.53%
PreSGPRs: 48033 -> 49649 (+3.36%)
PreVGPRs: 44490 -> 43699 (-1.78%)

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18253>

21 months agoaco: Change inverse-comparison optimization to work with s_not
Timur Kristóf [Sat, 20 Aug 2022 20:55:45 +0000 (22:55 +0200)]
aco: Change inverse-comparison optimization to work with s_not

Some time ago we stopped using s_andn2 with exec for boolean NOT.
The reasoning behind that change was that those booleans will be
always ANDed with exec when necessary.

This inhibited the inverse-comparison optimization in most cases
which is fixed by this patch.

Fossil DB stats on Navi 21:

Totals from 12251 (9.08% of 134913) affected shaders:
VGPRs: 801744 -> 802016 (+0.03%); split: -0.00%, +0.04%
SpillSGPRs: 8863 -> 8893 (+0.34%)
CodeSize: 100593244 -> 100370684 (-0.22%); split: -0.22%, +0.00%
MaxWaves: 204994 -> 204948 (-0.02%); split: +0.00%, -0.02%
Instrs: 18717001 -> 18668965 (-0.26%); split: -0.26%, +0.00%
Latency: 263255046 -> 262874896 (-0.14%); split: -0.16%, +0.02%
InvThroughput: 52760249 -> 52721736 (-0.07%); split: -0.08%, +0.01%
VClause: 329631 -> 329680 (+0.01%); split: -0.03%, +0.04%
SClause: 681563 -> 681435 (-0.02%); split: -0.02%, +0.00%
Copies: 1331612 -> 1372446 (+3.07%); split: -0.03%, +3.10%
Branches: 548325 -> 548301 (-0.00%)
PreSGPRs: 911317 -> 909700 (-0.18%)
PreVGPRs: 766279 -> 767070 (+0.10%)

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

21 months agoaco/optimizer: optimize s_and(exec, s_and(x, y)) more aggressively
Daniel Schürmann [Wed, 24 Aug 2022 13:12:40 +0000 (15:12 +0200)]
aco/optimizer: optimize s_and(exec, s_and(x, y)) more aggressively

It is enough if either of the two operands is respecting the
current exec mask.

Totals from 1680 (1.25% of 134913) affected shaders: (GFX10.3)
CodeSize: 3929436 -> 3922372 (-0.18%); split: -0.18%, +0.00%
Instrs: 730305 -> 728536 (-0.24%); split: -0.24%, +0.00%
Latency: 6839314 -> 6835154 (-0.06%); split: -0.07%, +0.01%
InvThroughput: 1371351 -> 1371267 (-0.01%); split: -0.01%, +0.00%
SClause: 32819 -> 32802 (-0.05%); split: -0.09%, +0.04%
Copies: 33264 -> 33271 (+0.02%); split: -0.01%, +0.03%

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18253>

21 months agoaco/optimizer: do can_eliminate_and_exec() optimization later
Daniel Schürmann [Wed, 24 Aug 2022 10:25:23 +0000 (12:25 +0200)]
aco/optimizer: do can_eliminate_and_exec() optimization later

This will allow to optimize s_not(v_cmp()) safely.

Totals from 1024 (0.76% of 134913) affected shaders: (GFX10.3)
CodeSize: 5695424 -> 5701860 (+0.11%); split: -0.00%, +0.11%
Scratch: 242688 -> 241664 (-0.42%)
Instrs: 1040656 -> 1041635 (+0.09%); split: -0.00%, +0.09%
Latency: 16842282 -> 16922790 (+0.48%); split: -0.06%, +0.54%
InvThroughput: 4772728 -> 4810868 (+0.80%); split: -0.10%, +0.90%
VClause: 20013 -> 20000 (-0.06%); split: -0.12%, +0.05%
Copies: 115057 -> 114384 (-0.58%); split: -1.22%, +0.63%
Branches: 34531 -> 34532 (+0.00%); split: -0.00%, +0.01%
PreSGPRs: 46263 -> 46267 (+0.01%)

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18253>

21 months agozink: assert on unnormalized texcoords
Erik Faye-Lund [Fri, 22 Jul 2022 09:35:10 +0000 (11:35 +0200)]
zink: assert on unnormalized texcoords

We do not support PIPE_CAP_TEXRECT, so let's assert in case something
tries to use it behind our back.

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

21 months agomesa/st: always use normalized coords for samplers
Erik Faye-Lund [Tue, 20 Sep 2022 08:12:50 +0000 (10:12 +0200)]
mesa/st: always use normalized coords for samplers

Normalized samplers is the norm, and non-normalized samplers might cause
some drivers and hardware to have to bend over backwards a bit.

We're using TXF here anyway, so it doesn't really matter what we set
this state to. So let's always use normalized samplers instead of
always using non-normalized samplers. That makes things easier for
everyone.

Fixes: e7b95619596 ("gallium: implement compute pbo download")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17708>

21 months agomesa/st: always use normalized coords for samplers
Erik Faye-Lund [Tue, 20 Sep 2022 08:12:50 +0000 (10:12 +0200)]
mesa/st: always use normalized coords for samplers

Normalized samplers is the norm, and non-normalized samplers might cause
some drivers and hardware to have to bend over backwards a bit.

We're using TXF here anyway, so it doesn't really matter what we set
this state to. So let's always use normalized samplers instead of
always using non-normalized samplers. That makes things easier for
everyone.

Fixes: 41e093fc98c ("st/pbo: add a fast pbo download code-path")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17708>

21 months agomesa/st: always use normalized coords for samplers
Erik Faye-Lund [Tue, 20 Sep 2022 08:12:50 +0000 (10:12 +0200)]
mesa/st: always use normalized coords for samplers

Normalized samplers is the norm, and non-normalized samplers might cause
some drivers and hardware to have to bend over backwards a bit.

We're using TXF here anyway, so it doesn't really matter what we set
this state to. So let's always use normalized samplers instead of
always using non-normalized samplers. That makes things easier for
everyone.

Fixes: ed0e9862c56 ("st/mesa: implement PBO downloads for ReadPixels")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17708>

21 months agobroadcom/compiler: increase V3D_MAX_BUFFE_RANGE to 2^30 bytes
Iago Toral Quiroga [Thu, 22 Sep 2022 09:19:07 +0000 (11:19 +0200)]
broadcom/compiler: increase V3D_MAX_BUFFE_RANGE to 2^30 bytes

This is the minimum required by KHR_maintenance4 and there is no
reason we can't support this.

The only restriction we have is that the texture state base
address (which comes into play with texel buffers) must be aligned
to 4-bits, but this doesn't restrict the size of the buffer, only
its base address, and we already have requirements for buffer
alignment that ensure this.

Fixes: dEQP-VK.api.info.vulkan1p3_limits_validation.khr_maintenance4
Fixes: 2c388c1d ('v3dv: set maxBufferSize property')
Acked-by: Eric Engestrom <eric@igalia.com>
Tested-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18748>

21 months agoiris: Support up to 128 textures
Jason Ekstrand [Fri, 15 Apr 2022 22:01:17 +0000 (17:01 -0500)]
iris: Support up to 128 textures

This is required for OpenCL.  I kind-of hate this patch.  I really don't
like GROUP_TEXTURE_LOW64 and GROUP_TEXTURE_HIGH64 but it was either that
or I had to make all the used bitsets 128 which would have mean making
them BITSET and that would have been a lot more churn.

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

21 months agoiris: Support up to 64 images
Jason Ekstrand [Fri, 15 Apr 2022 22:10:45 +0000 (17:10 -0500)]
iris: Support up to 64 images

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

21 months agoiris: Split max #defines for textures/samplers/images
Jason Ekstrand [Fri, 15 Apr 2022 21:29:52 +0000 (16:29 -0500)]
iris: Split max #defines for textures/samplers/images

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

21 months agoiris: Stop looking at textures_used for samplers
Jason Ekstrand [Fri, 15 Apr 2022 21:23:50 +0000 (16:23 -0500)]
iris: Stop looking at textures_used for samplers

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

21 months agoTry to fix FTBFS on kfreebsd architecture
Laurent Bigonville [Thu, 17 Feb 2022 13:49:27 +0000 (14:49 +0100)]
Try to fix FTBFS on kfreebsd architecture

Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4081

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

21 months agointel/utrace: create the callback events for xfb trace points
Iván Briano [Wed, 21 Sep 2022 23:22:12 +0000 (16:22 -0700)]
intel/utrace: create the callback events for xfb trace points

Fixes: 79c2f9e7cbf ("anv: trace xfb queries")

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

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

21 months agoanv: Set meshShaderQueries for mesh shader ext features
Iván Briano [Wed, 21 Sep 2022 21:54:49 +0000 (14:54 -0700)]
anv: Set meshShaderQueries for mesh shader ext features

v2 (Jordan): More descriptive commit message and fixes tag

Fixes: 9701b9098f2 ("anv: enable EXT_mesh_shader")

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18735>

21 months agod3d12: Initialize d3d12_video_encoder_references_manager_hevc::m_current_frame_idx.
Vinson Lee [Sun, 18 Sep 2022 17:45:22 +0000 (10:45 -0700)]
d3d12: Initialize d3d12_video_encoder_references_manager_hevc::m_current_frame_idx.

Fix defect reported by Coverity Scan.

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

Fixes: da11684e9db ("d3d12: Add HEVC Decode/Encode")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18654>

21 months agoradv/r600/clover: Getting libelf to be optional
Yonggang Luo [Tue, 20 Sep 2022 15:10:22 +0000 (23:10 +0800)]
radv/r600/clover: Getting libelf to be optional

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18503>

21 months agoutil: Remove the macro DEBUG_GET_ONCE_FILE_OPTION
Yonggang Luo [Thu, 1 Sep 2022 14:23:05 +0000 (22:23 +0800)]
util: Remove the macro DEBUG_GET_ONCE_FILE_OPTION

DEBUG_GET_ONCE_FILE_OPTION is not a truly once function, it's return a new
FILE* object when calling to it when the conditions are satisfied. And it's
functional can be replaced with DEBUG_GET_ONCE_OPTION properly.

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18323>

21 months agoutil: getting get_tracefile in u_trace.c to be thread safe
Yonggang Luo [Thu, 1 Sep 2022 14:22:31 +0000 (22:22 +0800)]
util: getting get_tracefile in u_trace.c to be thread safe

Remove the usage of DEBUG_GET_ONCE_FILE_OPTION because it's not a truly
once function, it's return a new FILE* object when calling to it when
the conditions are satisfied.

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

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18323>

21 months agoutil: Add util_call_once for optimize call to util_call_once_with_context out for...
Yonggang Luo [Wed, 31 Aug 2022 07:15:00 +0000 (15:15 +0800)]
util: Add util_call_once for optimize call to util_call_once_with_context out for hot path

For hot path, there is only need to a load instruction to load if initialized are true now,
So the extra cost is minimal.

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18323>

21 months agozink: add stencil border color clamping
Mike Blumenkrantz [Wed, 14 Sep 2022 14:04:59 +0000 (10:04 -0400)]
zink: add stencil border color clamping

fixes (tu):
dEQP-GLES31.functional.texture.border_clamp.range_clamp.nearest_uint_stencil
dEQP-GLES31.functional.texture.border_clamp.range_clamp.nearest_float_depth_uint_stencil_sample_stencil
dEQP-GLES31.functional.texture.border_clamp.range_clamp.nearest_unorm_depth_uint_stencil_sample_stencil

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

21 months agozink: add srgb border color clamping
Mike Blumenkrantz [Wed, 14 Sep 2022 13:05:08 +0000 (09:05 -0400)]
zink: add srgb border color clamping

fixes (tu):
dEQP-GLES31.functional.texture.border_clamp.range_clamp.linear_srgb_color
dEQP-GLES31.functional.texture.border_clamp.range_clamp.nearest_srgb_color

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

21 months agozink: add border color clamping when customBorderColorWithoutFormat isn't supported
Mike Blumenkrantz [Wed, 14 Sep 2022 12:32:04 +0000 (08:32 -0400)]
zink: add border color clamping when customBorderColorWithoutFormat isn't supported

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

21 months agozink: move color channel clamping to zink_format.c
Mike Blumenkrantz [Wed, 14 Sep 2022 12:31:43 +0000 (08:31 -0400)]
zink: move color channel clamping to zink_format.c

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

21 months agozink: clamp z/s formats to aspected format for border colors
Mike Blumenkrantz [Wed, 14 Sep 2022 13:18:50 +0000 (09:18 -0400)]
zink: clamp z/s formats to aspected format for border colors

a z/s sampler with int border color is stencil and vice versa

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

21 months agoiris: Handle resource offsets in buffer copies
Jason Ekstrand [Thu, 7 Apr 2022 22:51:04 +0000 (17:51 -0500)]
iris: Handle resource offsets in buffer copies

Fixes: c5b22441f1c ("iris: Fix buffer -> buffer copy_region")
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15811>

21 months agoiris: Fix more BO alignments
Jason Ekstrand [Thu, 7 Apr 2022 23:14:34 +0000 (18:14 -0500)]
iris: Fix more BO alignments

Fixes: 32c5d6d1dca2 ("iris: Add an alignment parameter to iris_bo_alloc()")
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15811>

21 months agoiris: Use a larger alignment for buffer allocations
Jason Ekstrand [Thu, 7 Apr 2022 22:56:25 +0000 (17:56 -0500)]
iris: Use a larger alignment for buffer allocations

This is likely required for OpenGL buffer texture allocations.  It'll
also make buffer copies faster if things are generally nicely aligned.
It's definitely required for OpenCL.

Fixes: 32c5d6d1dca2 ("iris: Add an alignment parameter to iris_bo_alloc()")
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15811>

21 months agoagx: Account for mask when writing registers
Alyssa Rosenzweig [Sun, 11 Sep 2022 16:03:15 +0000 (12:03 -0400)]
agx: Account for mask when writing registers

To use fewer registers.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18687>

21 months agoagx: Pass mask into ld/st_tile instructions
Alyssa Rosenzweig [Sun, 11 Sep 2022 16:02:32 +0000 (12:02 -0400)]
agx: Pass mask into ld/st_tile instructions

Properly handle render target formats with <4 components.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18687>

21 months agoagx: Ensure that the optimizer sees legitimate SSA
Alyssa Rosenzweig [Sat, 10 Sep 2022 21:31:07 +0000 (17:31 -0400)]
agx: Ensure that the optimizer sees legitimate SSA

Expecting it to keep around unused definitions around is wishful. Add an
"anchoring" unit_test instruction to consume the results so they don't
have to be precoloured registers.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18687>

21 months agoagx: Test fsat+f2f16 together
Alyssa Rosenzweig [Sat, 10 Sep 2022 02:11:55 +0000 (22:11 -0400)]
agx: Test fsat+f2f16 together

Something I hit when mucking with this pass.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18687>

21 months agoagx: Validate immediates
Alyssa Rosenzweig [Sat, 10 Sep 2022 19:58:25 +0000 (15:58 -0400)]
agx: Validate immediates

In particular the new sizing rules.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18687>

21 months agoagx: Use 16-bit immediates
Alyssa Rosenzweig [Sat, 10 Sep 2022 19:57:43 +0000 (15:57 -0400)]
agx: Use 16-bit immediates

This is slightly more accurate in the IR, and means we instruction
select the current 16-bit size floating point instructions when all
non-immediate operands are 16-bit.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18687>

21 months agoagx: Emit fewer combines for intrinsics
Alyssa Rosenzweig [Sat, 10 Sep 2022 20:24:26 +0000 (16:24 -0400)]
agx: Emit fewer combines for intrinsics

A bunch of the emitted combines were unnecessary, or unnecessarily
large. Fix the accounting now that combines are variable size.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18687>

21 months agoagx: Fix bfi_mask packing
Alyssa Rosenzweig [Sat, 10 Sep 2022 01:26:39 +0000 (21:26 -0400)]
agx: Fix bfi_mask packing

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18687>

21 months agointel/dev: Adjust prefetch_size values for MTL engines
José Roberto de Souza [Mon, 12 Sep 2022 17:10:07 +0000 (10:10 -0700)]
intel/dev: Adjust prefetch_size values for MTL engines

MTL has different CS prefetch sizes for each CS type.
So here replacing the cs_prefetch_size in intel_device_info struct
by a function that takes as argument the i915 engine class.

Fixes:
- func.cmd-buffer.small-secondaries.q0
- dEQP-VK.multiview.secondary_cmd_buffer.*
- Several other VK CTS tests that uses secondary_cmd_buffer

v2:
- renamed to intel_device_info_get_engine_prefetch() (Jordan)

v3:
- renamed to intel_device_info_calc_engine_prefetch()
- store each engine class prefetch in intel_device_info

BSpec: 45718
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18597>

21 months agomesa/st: check egl image and texture target match before binding
Simon Zeni [Wed, 21 Sep 2022 17:47:45 +0000 (13:47 -0400)]
mesa/st: check egl image and texture target match before binding

Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18673>

21 months agomesa: simplify st_egl_image binding process for texture storage
Simon Zeni [Mon, 19 Sep 2022 15:21:32 +0000 (11:21 -0400)]
mesa: simplify st_egl_image binding process for texture storage

The dmabuf imported edge case is now properly handled.

Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18673>

21 months agogallium: track if st_egl_image was created by a dmabuf
Simon Zeni [Mon, 19 Sep 2022 11:16:49 +0000 (07:16 -0400)]
gallium: track if st_egl_image was created by a dmabuf

This is required by GL_EXT_EGL_image_storage to verify if the image is valid

Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18673>

21 months agomesa: fix EXT_EGL_image_storage target validation
Simon Zeni [Fri, 16 Sep 2022 18:23:50 +0000 (14:23 -0400)]
mesa: fix EXT_EGL_image_storage target validation

EXT_EGL_image_storage requires OpenGL 4.2, OpenGL ES 3.0, or
ARB_texture_storage, and EXT_direct_state_access or equivalent for
`EGLImageTargetTextureStorageEXT`.

`target` can be one of GL_TEXTURE_2D, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D,
GL_TEXTURE_CUBE_MAP, GL_TEXTURE_CUBE_MAP_ARRAY. On non-ES GL it can also be
GL_TEXTURE_1D or GL_TEXTURE_1D_ARRAY. If OES_EGL_image_external is supported,
it can also be GL_TEXTURE_EXTERNAL_OES.

Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18673>

21 months agozink: don't always set VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT with gpl
Mike Blumenkrantz [Wed, 21 Sep 2022 13:21:42 +0000 (09:21 -0400)]
zink: don't always set VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT with gpl

this is illegal

Fixes: 86e4fcd9a92 ("zink: add a graphics pipeline library implementation")

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

21 months agozink: don't call CmdBindVertexBuffers2EXT with no attributes
Mike Blumenkrantz [Wed, 21 Sep 2022 13:20:27 +0000 (09:20 -0400)]
zink: don't call CmdBindVertexBuffers2EXT with no attributes

cc: mesa-stable

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

21 months agod3d12: Make get_feedback return correctly on error when writing *size=0
Sil Vilerino [Wed, 21 Sep 2022 20:48:01 +0000 (16:48 -0400)]
d3d12: Make get_feedback return correctly on error when writing *size=0

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Extract into common variable for metadata slot calculation
Sil Vilerino [Wed, 21 Sep 2022 20:36:37 +0000 (16:36 -0400)]
d3d12: Extract into common variable for metadata slot calculation

Removes duplicated code using X modulo D3D12_VIDEO_ENC_METADATA_BUFFERS_COUNT

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Enhance get_feedback not enough buffers message
Sil Vilerino [Wed, 21 Sep 2022 20:29:55 +0000 (16:29 -0400)]
d3d12: Enhance get_feedback not enough buffers message

Indicate to increase if the env var D3D12_VIDEO_ENC_METADATA_BUFFERS_COUNT
if not enough buffers in the get_feedback function

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Fix redundant/inconsistent initializations for d3d12_video_encoder
Sil Vilerino [Wed, 21 Sep 2022 20:14:42 +0000 (16:14 -0400)]
d3d12: Fix redundant/inconsistent initializations for d3d12_video_encoder

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Add output buffer to inflight resourceset
Sil Vilerino [Tue, 20 Sep 2022 18:48:53 +0000 (14:48 -0400)]
d3d12: Add output buffer to inflight resourceset

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Make d3d12 encode operations async and do not block waiting
Sil Vilerino [Tue, 20 Sep 2022 17:41:20 +0000 (13:41 -0400)]
d3d12: Make d3d12 encode operations async and do not block waiting

Separate d3d12_video_encode flush on end_frame (ie. vaEndPicture) from fence sync in get_feedback (ie. vaSyncSurface/Buffer)

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Have d3d12_video_encoder keep separate references for enc, heap and dpb alloca...
Sil Vilerino [Tue, 20 Sep 2022 16:58:21 +0000 (12:58 -0400)]
d3d12: Have d3d12_video_encoder keep separate references for enc, heap and dpb allocations for in flight resources

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: d3d12_video_encoder add reset() to prevent leaks on re-allocation
Sil Vilerino [Tue, 20 Sep 2022 16:45:02 +0000 (12:45 -0400)]
d3d12: d3d12_video_encoder add reset() to prevent leaks on re-allocation

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Encoder to use independent command allocators per in flight resource set
Sil Vilerino [Tue, 20 Sep 2022 16:28:19 +0000 (12:28 -0400)]
d3d12: Encoder to use independent command allocators per in flight resource set

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Move encode configuration and capabilities into separate structs
Sil Vilerino [Tue, 20 Sep 2022 16:05:39 +0000 (12:05 -0400)]
d3d12: Move encode configuration and capabilities into separate structs

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Change d3d12_video_encoder to not automatically flush
Sil Vilerino [Tue, 20 Sep 2022 15:21:48 +0000 (11:21 -0400)]
d3d12: Change d3d12_video_encoder to not automatically flush

With PIPE_VIDEO_CAP_REQUIRES_FLUSH_ON_END_FRAME reported as 1, the frontend will call flush()

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Keep track of feedbacks from previous encode executions
Sil Vilerino [Mon, 19 Sep 2022 22:25:57 +0000 (18:25 -0400)]
d3d12: Keep track of feedbacks from previous encode executions

Keep track of previous executed encodes with their metadata as vaSyncSurface
which queries this can be called with latency of several frames.
Fixes gstreamer encoding tearing issues

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Export some util functions from d3d12_fence for d3d12 video
Sil Vilerino [Tue, 20 Sep 2022 14:28:38 +0000 (10:28 -0400)]
d3d12: Export some util functions from d3d12_fence for d3d12 video

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Change type of m_FenceValue to uint64_t in d3d12_video_encoder
Sil Vilerino [Tue, 20 Sep 2022 14:25:05 +0000 (10:25 -0400)]
d3d12: Change type of m_FenceValue to uint64_t in d3d12_video_encoder

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Add support for PIPE_VIDEO_CAP_ENC_SUPPORTS_ASYNC_OPERATION
Sil Vilerino [Tue, 20 Sep 2022 14:18:36 +0000 (10:18 -0400)]
d3d12: Add support for PIPE_VIDEO_CAP_ENC_SUPPORTS_ASYNC_OPERATION

Add support for PIPE_VIDEO_CAP_ENC_SUPPORTS_ASYNC_OPERATION based on D3D12_VIDEO_ENC_ASYNC env variable defaulted to true

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Report PIPE_VIDEO_CAP_REQUIRES_FLUSH_ON_END_FRAME
Sil Vilerino [Tue, 20 Sep 2022 14:16:16 +0000 (10:16 -0400)]
d3d12: Report PIPE_VIDEO_CAP_REQUIRES_FLUSH_ON_END_FRAME

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Add initialization values for d3d12_video_encoder
Sil Vilerino [Thu, 15 Sep 2022 21:07:22 +0000 (17:07 -0400)]
d3d12: Add initialization values for d3d12_video_encoder

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Video process - Remove unnecessary batches flush
Sil Vilerino [Fri, 16 Sep 2022 22:51:53 +0000 (18:51 -0400)]
d3d12: Video process - Remove unnecessary batches flush

Make resident and sync in flush() method instead of before to avoid extra batch flushes

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agod3d12: Update HEVC Encode GOP on I frames too
Sil Vilerino [Thu, 15 Sep 2022 21:07:59 +0000 (17:07 -0400)]
d3d12: Update HEVC Encode GOP on I frames too

Update GOP also on I HEVC frames in d3d12_video_encoder_update_hevc_gop_configuration

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agofrontends/va: Implement vaSyncBuffer
Sil Vilerino [Sat, 17 Sep 2022 13:46:11 +0000 (09:46 -0400)]
frontends/va: Implement vaSyncBuffer

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18715>

21 months agoaco: Unswizzle v_pk_fma_f16 literals to produce more v_pk_fmac_f16.
Georg Lehmann [Mon, 19 Sep 2022 15:49:53 +0000 (17:49 +0200)]
aco: Unswizzle v_pk_fma_f16 literals to produce more v_pk_fmac_f16.

No Foz-DB difference, but it reduces code size in some angle shaders.

Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18676>

21 months agoiris: check i915 features after hw gen
Jonathan Gray [Tue, 13 Sep 2022 05:57:28 +0000 (15:57 +1000)]
iris: check i915 features after hw gen

when running recent Mesa on i855 (gen 2) without amber drivers:
  error: Kernel is too old for Iris. Consider upgrading to kernel v4.16.

  libGL error: glx: failed to create dri3 screen
  libGL error: failed to load driver: iris
  error: Kernel is too old for Iris. Consider upgrading to kernel v4.16.

  libGL error: glx: failed to create dri2 screen
  libGL error: failed to load driver: iris

move the i915 feature check to after the hardware generation check
which results in:
  MESA: warning: Driver does not support the 0x3582 PCI ID.
  libGL error: glx: failed to create dri3 screen
  libGL error: failed to load driver: iris
  MESA: warning: Driver does not support the 0x3582 PCI ID.
  libGL error: glx: failed to create dri2 screen
  libGL error: failed to load driver: iris

Cc: mesa-stable
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18563>

21 months agogallivm: fix nir AOS swizzling issues
Brian Paul [Tue, 17 May 2022 03:29:12 +0000 (21:29 -0600)]
gallivm: fix nir AOS swizzling issues

The nir code for AOS (aka linear) mode had a number of issues.

In some cases, the RGB->BGR swizzling wasn't happening, leading to
incorrect colors.  In other cases, bad swizzling caused the first
pixel's color to be written to four adjacent pixels.

Writemasks must also be swizzled.  For example, if an instruction's
writemask indicates the X component but the AOS component order is
BGRA we need to change the writemask to Z.

Another issue was with constant buffer values not getting consistently
convert to BGRA order.  Fixing this involves removing the
lp_nir_aos_conv_const() function and immediately converting immediate
values from 4 x f32 in [0,1] to 16 x u8 when we translate nir's
load_const so that we know the value is in the right linear/AOS layout
right away.

Finally, the llvmpipe_nir_fn_is_linear_compat() function was not
checking that nir_instr_type_load_const values are in [0,1] for AOS
execution.  The info.unclamped_immediates field is not needed for
the NIR path (but still used for the old TGSI path).

This fixes quite a few tests in our VMware suite.

Signed-off-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18213>