platform/upstream/mesa.git
19 months agoci/b2c: start making use of the harbor.fd.o
Martin Roukala (né Peres) [Thu, 29 Dec 2022 07:16:53 +0000 (09:16 +0200)]
ci/b2c: start making use of the harbor.fd.o

A new container registry was added recently in the fd.o infrastructure.
It is located in a datacenter that does not charge for bandwidth usage,
and aims to become the canonical registry in the future. It is however
currently configured to be a partial mirror of registry.fd.o, where
only the most-downloaded container images can be found.

The address of the new registry is specified in mesa/mesa's CI
variables, which means forks will default to registry.fd.o. However,
Valve Infra DUTs do not have access to the internet, and instead use
another cache proxy hosted locally on the CI gateways. This forced
Benjamin to overwrite the registry URL from harbor.freedesktop.org to
registry.freedesktop.org in 0bd9a062e1ab ("CI: Overwrite valve infra's
registry").

After adding support for the new registry in valve infra, then
deploying the update, we are now able to make use of the new container
registry. This commit simply rewrites the URL harbor.freedesktop.org
into `{{ harbor_fdo_registry }}`. This variable is set in the valve
infra to point to the `host:ip` of the service, which means changes to
the way we deploy this service can be done on the valve-infra side
without needing to make changes to every project that makes use of our
machines.

Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7913
Acked-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20450>

19 months agoac/nir: handle 16bit varying streamout for legacy vs and gs copy shader
Qiang Yu [Fri, 2 Dec 2022 03:53:22 +0000 (11:53 +0800)]
ac/nir: handle 16bit varying streamout for legacy vs and gs copy shader

This is for VARYING_SLOT_VARx_16BIT slots varying streamout.

OpenGL ES will store 16bit medium precision varying to these slots.
Vulkan is not allowed to streamout varying less than 32bit.

Acked-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20157>

19 months agoac/nir,radv: use ac_nir_gs_output_info
Qiang Yu [Thu, 1 Dec 2022 08:48:16 +0000 (16:48 +0800)]
ac/nir,radv: use ac_nir_gs_output_info

We are also going to add more fields in it.

Acked-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20157>

19 months agonir/xfb: save high_16bits output info
Qiang Yu [Mon, 21 Nov 2022 07:53:11 +0000 (15:53 +0800)]
nir/xfb: save high_16bits output info

It is combined with slot location to identify a varying
when using VARYING_SLOT_VARx_16BIT.

Acked-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20157>

19 months agozink: Only expose PIPE_CAP_SHADER_ATOMIC_INT64 if we can do shared and ssbos.
Emma Anholt [Tue, 3 Jan 2023 22:33:44 +0000 (14:33 -0800)]
zink: Only expose PIPE_CAP_SHADER_ATOMIC_INT64 if we can do shared and ssbos.

Fixes: 3ac0706aa83b ("zink: export PIPE_CAP_SHADER_ATOMIC_INT64")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20506>

19 months agozink: Only expose PIPE_CAP_IMAGE_ATOMIC_FLOAT_ADD if we can actually add.
Emma Anholt [Tue, 3 Jan 2023 22:17:48 +0000 (14:17 -0800)]
zink: Only expose PIPE_CAP_IMAGE_ATOMIC_FLOAT_ADD if we can actually add.

Drivers may expose the ext without the add capability, if they can
load/store/exchange.

Fixes: c32f046ab669 ("zink: export PIPE_CAP_IMAGE_ATOMIC_FLOAT_ADD")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20506>

19 months agoutil/00-mesa-defaults: add Metal Slug XX workaround
Timothy Arceri [Wed, 4 Jan 2023 03:34:48 +0000 (14:34 +1100)]
util/00-mesa-defaults: add Metal Slug XX workaround

The game uses texture2D() in glsl 4.40 shaders, but texture2D()
was moved to compat in 4.20.

Cc: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20511>

19 months agohasvk: Emit CS stall on INTEL_MEASURE timestamp
Felix DeGrood [Wed, 4 Jan 2023 01:31:37 +0000 (01:31 +0000)]
hasvk: Emit CS stall on INTEL_MEASURE timestamp

For INTEL_MEASURE, ensure all prior instructions completed before
timestamp taken. Continue to support no CS flush case for Perfetto.
CS stall was dropped from pipecontrol when adding u_trace support.

Fixes: cc5843a573b ("anv: implement u_trace support")
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20502>

19 months agoanv: Emit CS stall on INTEL_MEASURE timestamp
Felix DeGrood [Tue, 3 Jan 2023 19:22:30 +0000 (19:22 +0000)]
anv: Emit CS stall on INTEL_MEASURE timestamp

For INTEL_MEASURE, ensure all prior instructions completed before
timestamp taken. Continue to support no CS flush case for Perfetto.
CS stall was dropped from pipecontrol when adding u_trace support.

Fixes: cc5843a573b ("anv: implement u_trace support")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20502>

19 months agoci/zink: Add trace testing on anv TGL.
Emma Anholt [Wed, 14 Dec 2022 19:41:08 +0000 (11:41 -0800)]
ci/zink: Add trace testing on anv TGL.

For now the restricted traces aren't available to the intel devs, so it
won't actually run for them, but I can manage that part for a bit until we
get the policy updated on the minio side (issue filed to do so).

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

19 months agoci/zink: Add a manual full run of CTS+piglit on tgl.
Emma Anholt [Wed, 14 Dec 2022 19:41:08 +0000 (11:41 -0800)]
ci/zink: Add a manual full run of CTS+piglit on tgl.

If we want to ship zink on anv for ChromeOS, we've got to be able to know
that the tree is green when we uprev.

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

19 months agoci/zink: Refactor a bit of test configuration yaml.
Emma Anholt [Wed, 14 Dec 2022 20:12:40 +0000 (12:12 -0800)]
ci/zink: Refactor a bit of test configuration yaml.

I'm adding more zink tests shortly.

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

19 months agoci: Set the path to the VK drivers during HWCI_START_XORG/WESTON.
Emma Anholt [Wed, 14 Dec 2022 23:06:13 +0000 (15:06 -0800)]
ci: Set the path to the VK drivers during HWCI_START_XORG/WESTON.

If the test is running with zink, we want zink to be able to find the
vulkan driver.

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

19 months agoci/iris: Add some recent flakes.
Emma Anholt [Thu, 15 Dec 2022 01:29:19 +0000 (17:29 -0800)]
ci/iris: Add some recent flakes.

APL are clearly part of the existing set, glx-swap-copy on KBL is
plausibly new but it's a flake on other drivers too.

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

19 months agomesa: set NewVertexElements when changing IsDynamic
Marek Olšák [Sat, 24 Dec 2022 05:56:55 +0000 (00:56 -0500)]
mesa: set NewVertexElements when changing IsDynamic

Fixes: 0fbd82bdc45 - mesa: move calling _mesa_update_vao_derived_arrays into st_update_array
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7938

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

19 months agodzn: Handle split front/back compare/write masks for dynamic state
Jesse Natalie [Fri, 16 Dec 2022 22:03:12 +0000 (14:03 -0800)]
dzn: Handle split front/back compare/write masks for dynamic state

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

19 months agodzn: For CmdBindIndexBuffer, look at the graphics pipeline instead of last used
Jesse Natalie [Fri, 16 Dec 2022 21:33:58 +0000 (13:33 -0800)]
dzn: For CmdBindIndexBuffer, look at the graphics pipeline instead of last used

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

19 months agodzn: Don't touch pMultisampleState if rasterizerDiscardEnable
Jesse Natalie [Fri, 16 Dec 2022 18:08:01 +0000 (10:08 -0800)]
dzn: Don't touch pMultisampleState if rasterizerDiscardEnable

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

19 months agodzn: Remove spammy logging during device create
Jesse Natalie [Fri, 16 Dec 2022 18:07:37 +0000 (10:07 -0800)]
dzn: Remove spammy logging during device create

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

19 months agodzn: Flip on enhanced barrier code paths based on D3D capability
Jesse Natalie [Wed, 14 Dec 2022 20:48:39 +0000 (12:48 -0800)]
dzn: Flip on enhanced barrier code paths based on D3D capability

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

19 months agodzn: Add an "enhanced" version of CmdPipelineBarrier2
Jesse Natalie [Wed, 14 Dec 2022 20:48:15 +0000 (12:48 -0800)]
dzn: Add an "enhanced" version of CmdPipelineBarrier2

This allows us to *much* more accurately express the app's barrier
requests. Unfortunately, there's still a few mismatches, so in those
cases we'll end up conservatively over-synchronizing/flushing.

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

19 months agodzn: Add an enhanced barrier path for internal and fixup barriers
Jesse Natalie [Wed, 14 Dec 2022 20:36:22 +0000 (12:36 -0800)]
dzn: Add an enhanced barrier path for internal and fixup barriers

While enhanced barriers is a *much* closer model to Vulkan's, there's
still one big mismatch: Vulkan's "transfer" concept supports clears,
copies, and resolves, while D3D's closest match only supports copies.
So when doing clears and resolves, we need to transition from the copy
layout to the correct layout, and then back.

Internal barriers are done for some meta scenarios as well as render
pass initial layout transitions. These look more or less the same as
non-enhanced, we just want to avoid mixing the two paradigms if possible.

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

19 months agodzn: CmdWaitForEvents needs to submit barriers too
Jesse Natalie [Wed, 14 Dec 2022 20:30:12 +0000 (12:30 -0800)]
dzn: CmdWaitForEvents needs to submit barriers too

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

19 months agodzn: Fix aspects used for blit barriers
Jesse Natalie [Wed, 14 Dec 2022 20:29:48 +0000 (12:29 -0800)]
dzn: Fix aspects used for blit barriers

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

19 months agodzn: Remove unnecessary read -> read transition barriers
Jesse Natalie [Wed, 14 Dec 2022 20:28:51 +0000 (12:28 -0800)]
dzn: Remove unnecessary read -> read transition barriers

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

19 months agodzn: Respect sharing mode
Jesse Natalie [Wed, 14 Dec 2022 20:24:24 +0000 (12:24 -0800)]
dzn: Respect sharing mode

D3D's "simultaneous access" concept pretty closely matches
Vulkan's concurrent sharing mode, except that we don't
support simultaneous access for depth buffers.

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

19 months agodzn: Store valid BARRIER_ACCESS flag masks for a few objects
Jesse Natalie [Wed, 14 Dec 2022 20:22:14 +0000 (12:22 -0800)]
dzn: Store valid BARRIER_ACCESS flag masks for a few objects

A subset of total access flags are valid based on command list
type and resource flags, so store that set during object creation.

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

19 months agodzn: Store command list type in the command buffer object
Jesse Natalie [Wed, 14 Dec 2022 20:18:24 +0000 (12:18 -0800)]
dzn: Store command list type in the command buffer object

We'll want to use this for choosing queue-type-specific
layouts in the new pipeline barrier implementation.

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

19 months agodzn: Create all buffers in COMMON state
Jesse Natalie [Wed, 14 Dec 2022 20:16:43 +0000 (12:16 -0800)]
dzn: Create all buffers in COMMON state

Since they promote/decay, there's no point in using any
other initial state value.

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

19 months agodzn: Delete initial_state which is always COMMON
Jesse Natalie [Fri, 9 Dec 2022 21:42:19 +0000 (13:42 -0800)]
dzn: Delete initial_state which is always COMMON

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

19 months agopvr: Remove PVR_STATIC_CLEAR_.*_BIT and use VkImageAspectFlags.
Karmjit Mahil [Thu, 20 Oct 2022 10:24:14 +0000 (11:24 +0100)]
pvr: Remove PVR_STATIC_CLEAR_.*_BIT and use VkImageAspectFlags.

This commit removes the PVR_STATIC_CLEAR_.*_BIT used to index the
static clear templates in the device. Now we use the Vulkan flags
so no need for any conversion of the flags.

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

19 months agopvr: Implement color/depth/depth+stencil attachment clear.
Karmjit Mahil [Mon, 26 Sep 2022 15:52:53 +0000 (16:52 +0100)]
pvr: Implement color/depth/depth+stencil attachment clear.

The depth/depth+stencil clear was already implemented. This adds
the z replication and color attachment clear branches.

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

19 months agopvr: Add clear attachment programs in device.
Karmjit Mahil [Tue, 4 Oct 2022 15:59:14 +0000 (16:59 +0100)]
pvr: Add clear attachment programs in device.

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

19 months agopvr: Add comments documenting large/normal clear words.
Karmjit Mahil [Wed, 5 Oct 2022 09:35:42 +0000 (10:35 +0100)]
pvr: Add comments documenting large/normal clear words.

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

19 months agopvr: Add empty clear attachment usc programs.
Karmjit Mahil [Tue, 4 Oct 2022 14:44:04 +0000 (15:44 +0100)]
pvr: Add empty clear attachment usc programs.

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

19 months agopvr: Implement depth/stencil/depth+stencil attachment clear.
Karmjit Mahil [Mon, 26 Sep 2022 15:52:44 +0000 (16:52 +0100)]
pvr: Implement depth/stencil/depth+stencil attachment clear.

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

19 months agopvr: Fix typo in 'err_free_verices_buffer'.
Karmjit Mahil [Wed, 23 Nov 2022 15:56:59 +0000 (15:56 +0000)]
pvr: Fix typo in 'err_free_verices_buffer'.

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

19 months agopvr: Add pvr_clear_vertices_upload().
Karmjit Mahil [Fri, 23 Sep 2022 16:24:05 +0000 (17:24 +0100)]
pvr: Add pvr_clear_vertices_upload().

This function allows to easily setup and upload the vertices
required to clear a specific area. The vertices are
arranged in a triangle strip.

This will also be used in following commits implementing
vkCmdClearAttachments().

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

19 months agopvr: Move static clear state into pvr_clear.c .
Karmjit Mahil [Wed, 28 Sep 2022 15:30:33 +0000 (16:30 +0100)]
pvr: Move static clear state into pvr_clear.c .

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

19 months agopvr: Add layer count support to pvr_clear_vdm_state().
Karmjit Mahil [Wed, 21 Sep 2022 15:41:10 +0000 (16:41 +0100)]
pvr: Add layer count support to pvr_clear_vdm_state().

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

19 months agopvr: Move clear VDM state into pvr_clear.h .
Karmjit Mahil [Wed, 21 Sep 2022 15:52:48 +0000 (16:52 +0100)]
pvr: Move clear VDM state into pvr_clear.h .

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

19 months agopvr: Add clear rta vert shader pds program.
Karmjit Mahil [Wed, 21 Sep 2022 13:40:23 +0000 (14:40 +0100)]
pvr: Add clear rta vert shader pds program.

The rta program will be used in following commits adding support
for vkCmdClearAttachments().

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

19 months agopvr: Add pvr_clear.{h,c} .
Karmjit Mahil [Tue, 20 Sep 2022 13:23:57 +0000 (14:23 +0100)]
pvr: Add pvr_clear.{h,c} .

This moves some clear related functionality into a new
pvr_clear.{h,c} just to for better organisation and allow for
easier reusability.

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

19 months agopvr: Add multi layer passthough vert shader upload in device.
Karmjit Mahil [Thu, 15 Sep 2022 15:09:23 +0000 (16:09 +0100)]
pvr: Add multi layer passthough vert shader upload in device.

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

19 months agopvr: Change "ID" to "id" in instance_ID_modifier.
Karmjit Mahil [Thu, 15 Sep 2022 14:43:13 +0000 (15:43 +0100)]
pvr: Change "ID" to "id" in instance_ID_modifier.

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

19 months agoci: Remove MESA_ARM_BUILD_TAG environment variable
Corentin Noël [Wed, 4 Jan 2023 10:34:46 +0000 (11:34 +0100)]
ci: Remove MESA_ARM_BUILD_TAG environment variable

Its value is already the same as MESA_IMAGE_TAG so no need to duplicate it.

Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20488>

19 months agoci: Bump crosvm and virglrenderer versions
Corentin Noël [Tue, 3 Jan 2023 10:51:24 +0000 (11:51 +0100)]
ci: Bump crosvm and virglrenderer versions

Update virglrenderer and crosvm to the latest version on time.

Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20488>

19 months agor600/sfn: make sure we return a non-negative number of registers
Gert Wollny [Wed, 4 Jan 2023 13:31:48 +0000 (14:31 +0100)]
r600/sfn: make sure we return a non-negative number of registers

If a shader doesn't use any register and only ssa values we might
end up with zero minimum registers, and because a unsigned is
returned that goes wrong.

Fixes: 565816dfa15214abbeef9a9d94e44f30507ca4d7
    r600/sfn: Set minimum required registers based on array allocation

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

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

19 months agoradv: rework generating the PS epilog key
Samuel Pitoiset [Fri, 16 Dec 2022 12:26:36 +0000 (13:26 +0100)]
radv: rework generating the PS epilog key

Generating a PS epilog key will also be used when compiling PS epilogs
on-demand. This introduces a new helper that generates it.

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

19 months agoradv: simplify removing unused color exports
Samuel Pitoiset [Fri, 16 Dec 2022 09:01:00 +0000 (10:01 +0100)]
radv: simplify removing unused color exports

If CB_TARGET_MASK (color write mask) is 0 for a given MRT, this implies
that the color format is 0 because the driver compacts MRTs.

No fossils-db changes.

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

19 months agodocs/freedreno: Extract debug tooling docs and improve gpu dbg docs
Danylo Piliaiev [Tue, 3 Jan 2023 15:29:50 +0000 (16:29 +0100)]
docs/freedreno: Extract debug tooling docs and improve gpu dbg docs

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

19 months agoradv/winsys: set has_3d_cube_border_color_mipmap for null winsys
Rhys Perry [Mon, 2 Jan 2023 19:17:16 +0000 (19:17 +0000)]
radv/winsys: set has_3d_cube_border_color_mipmap for null winsys

Without this, NIR->LLVM will set level_zero to false, crashing compilation
of some GFX11 shaders with LLVM (image_gather4_c_o is not supported, while
image_gather4_c_lz_o is).

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

19 months agodocs/freedreno: Extract LRZ docs from tu_lrz
Danylo Piliaiev [Tue, 3 Jan 2023 12:34:24 +0000 (13:34 +0100)]
docs/freedreno: Extract LRZ docs from tu_lrz

Most of the docs describe HW and are not specific to Turnip.

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

19 months agoradv: fix multiple resolves in the same subpass
Samuel Pitoiset [Thu, 24 Nov 2022 14:07:32 +0000 (15:07 +0100)]
radv: fix multiple resolves in the same subpass

If there is multiple resolves, the driver shouldn't always select the
fragment path because it doesn't work for all images.

Fixes dEQP-VK.pipeline.monolithic.multisample.misc.*

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

19 months agoglsl: Remove bit_count lowering
Ian Romanick [Tue, 13 Dec 2022 18:49:41 +0000 (10:49 -0800)]
glsl: Remove bit_count lowering

As far as I can tell, every driver that supports GLSL 1.30 or
GL_EXT_gpu_shader4 (and therefore also enables support for
GL_MESA_shader_integer_functions) also sets the NIR lower_bit_count
flag.

Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20323>

19 months agoglsl: Remove bitfield_reverse lowering
Ian Romanick [Tue, 13 Dec 2022 18:42:49 +0000 (10:42 -0800)]
glsl: Remove bitfield_reverse lowering

As far as I can tell, every driver that supports GLSL 1.30 or
GL_EXT_gpu_shader4 (and therefore also enables support for
GL_MESA_shader_integer_functions) also sets the NIR
lower_bitfield_reverse flag.

Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20323>

19 months agoglsl: Remove bitfield_extract and bitfield_insert lowering
Ian Romanick [Tue, 13 Dec 2022 18:36:18 +0000 (10:36 -0800)]
glsl: Remove bitfield_extract and bitfield_insert lowering

As far as I can tell, every driver that supports GLSL 1.30 or
GL_EXT_gpu_shader4 (and therefore also enables support for
GL_MESA_shader_integer_functions) also sets some subset of the various
NIR lower_bitfield_extract and lower_bitfield_insert flags.

v2: Declaration of 'result' still needs to be added to the IR. Noticed
by marge.

v3: Fix 'git rebase --autosquash' putting the v2 fix in the wrong
place. I've never seen that happen before. :(

Reviewed-by: Emma Anholt <emma@anholt.net> [v1]
Reviewed-by: Matt Turner <mattst88@gmail.com> [v1]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20323>

19 months agonir: Don't allow conflicting bitfield lowering passes
Ian Romanick [Tue, 13 Dec 2022 19:11:13 +0000 (11:11 -0800)]
nir: Don't allow conflicting bitfield lowering passes

Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20323>

19 months agointel/compiler: Enable lower_bitfield_extract_to_shifts and lower_bitfield_insert_to_...
Ian Romanick [Tue, 13 Dec 2022 17:43:39 +0000 (09:43 -0800)]
intel/compiler: Enable lower_bitfield_extract_to_shifts and lower_bitfield_insert_to_shifts for pre-Gfx7

GLSL IR opcodes generated for bitfieldExtract and bitfieldInsert are
lowered by lower_instructions.  4dff3ff005b ("nir/opt_algebraic:
Optimize open coded bfm.") adds an optimization that can rematerialize
nir_op_bfm that was prevented by the GLSL IR lowering.

It appears that every piece of hardware, except older Intel GPUS, that
has real integers (i.e., lower_bitops is not set) also sets
lower_bitfield_extract_to_shifts and lower_bitfield_insert_to_shifts.

Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Fixes: 4dff3ff005b ("nir/opt_algebraic: Optimize open coded bfm.")
Closes: #7874
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20323>

19 months agoutil: Drop the ENUM_PACKED macro
Jason Ekstrand [Wed, 21 Dec 2022 22:59:02 +0000 (16:59 -0600)]
util: Drop the ENUM_PACKED macro

We have both PACKED and ENUM_PACKED macros which expand to the same
thing.  PACKED was based on a meson check for function attributes while
ENUM_PACKED appears to be a legacy gallium thing which was based on
defined(__GCC__).  This changes the one use of ENUM_PACKED to PACKED and
deletes ENUM_PACKED.

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

19 months agoci: Update the skqp testing docs and retire the old runner script.
Emma Anholt [Tue, 29 Nov 2022 22:35:19 +0000 (14:35 -0800)]
ci: Update the skqp testing docs and retire the old runner script.

Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20070>

19 months agoci/intel: Switch skqp testing over to deqp-runner.
Emma Anholt [Tue, 29 Nov 2022 22:26:47 +0000 (14:26 -0800)]
ci/intel: Switch skqp testing over to deqp-runner.

The skqp runner gets us parallel execution, automatic caselist handling,
nice reports, and the same xfail/flake handling you know and love from
deqp and piglit.

And, now that we have flake handling, we can turn the tests back on!

Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20070>

19 months agoci/amd: Switch raven skqp testing over to deqp-runner.
Emma Anholt [Tue, 29 Nov 2022 22:23:56 +0000 (14:23 -0800)]
ci/amd: Switch raven skqp testing over to deqp-runner.

The skqp runner gets us parallel execution, automatic caselist handling,
nice reports, and the same xfail/flake handling you know and love from
deqp and piglit.

Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20070>

19 months agoci/freedreno: Switch skqp testing to using deqp-runner.
Emma Anholt [Tue, 29 Nov 2022 22:19:34 +0000 (14:19 -0800)]
ci/freedreno: Switch skqp testing to using deqp-runner.

The skqp runner gets us parallel execution, automatic caselist handling
(which would have prevented a recent regression due to some skqp tests
having been forgotten in the checked in caselists), nice reports, and the
same xfail/flake handling you know and love from deqp and piglit.

Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20070>

19 months agoglx: Remove the GetProcAddress special case for indirect rendering
Adam Jackson [Mon, 12 Dec 2022 15:59:44 +0000 (10:59 -0500)]
glx: Remove the GetProcAddress special case for indirect rendering

Some GL entrypoints would be aliased in an API sense but have different
GLX protocol. The only one that matters to us is EXT_texture_object,
which is the pre-GL-1.1 API. We're just going to drop support for that
and assume you have 1.1 or better, since 1.0 + EXT_texture_object is a
vanishingly rare combo at this point.

Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20300>

19 months agoglx: Only compute client GL extensions for indirect contexts
Adam Jackson [Thu, 8 Dec 2022 16:44:08 +0000 (11:44 -0500)]
glx: Only compute client GL extensions for indirect contexts

This is sort of a spiky way to do it, but the effect is to send the
appropriate SetClientInfo twice for indirect screens, where the second
one fills in the GL extensions. We can get away with this because the
only place the string is used is when the server computes the reply for
glGetString(GL_EXTENSIONS), which never matters for direct contexts.

Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20300>

19 months agoglx: Require GLX 1.3
Adam Jackson [Mon, 5 Dec 2022 19:59:22 +0000 (14:59 -0500)]
glx: Require GLX 1.3

GLX is a means to the end of direct rendered GL, really. Our indirect
protocol support has been largely untouched forever, anyone who wants it
can find it in amber. We're not going to drop or intentionally break it
(indirect support), but we're also not going to try super hard to
preserve its quirks anymore.

xserver has typically supported GLX 1.4 since 2009 (xserver 1.8, ad5c0d9e)
and unconditionally since 2016 (xserver 1.19, 36bcbf76). Assuming GLX
1.3 internally will let us fix some GLX drawable lifetime issues.

Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20300>

19 months agoglx: Remove pointless GLX_INTEL_swap_event paranoia
Adam Jackson [Tue, 13 Dec 2022 17:26:58 +0000 (12:26 -0500)]
glx: Remove pointless GLX_INTEL_swap_event paranoia

It's not our job to filter this out, it's the server's job to not send
events that haven't been selected for. We'll still throw the event away
if we don't have any client-side state for it though.

Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20300>

19 months agoglx: Drop GLX_MESA_{pixmap_colormap,release_buffers} stubs
Adam Jackson [Mon, 12 Dec 2022 18:50:15 +0000 (13:50 -0500)]
glx: Drop GLX_MESA_{pixmap_colormap,release_buffers} stubs

Whatever compatibility purpose these served has long since passed.

Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20300>

19 months agoglx: Replace FreeB 2.0 text with SPDX-License-Identifier: SGI-B-2.0
Adam Jackson [Wed, 14 Dec 2022 18:27:16 +0000 (13:27 -0500)]
glx: Replace FreeB 2.0 text with SPDX-License-Identifier: SGI-B-2.0

Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20300>

19 months agoglx: Remove dead declarations from <GL/glx.h>
Adam Jackson [Mon, 12 Dec 2022 15:40:30 +0000 (10:40 -0500)]
glx: Remove dead declarations from <GL/glx.h>

MESA_swap_control is defined in glxext.h now. MESA_swap_frame_usage was
removed in Mesa 7.9 in 2010. The other two were never specified or
implemented.

Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20300>

19 months agoinclude: Sync <GL/glxext.h> with Khronos
Adam Jackson [Mon, 12 Dec 2022 15:35:28 +0000 (10:35 -0500)]
include: Sync <GL/glxext.h> with Khronos

Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20300>

19 months agor300: don't convert to constant swizzles when translating from TGSI
Pavel Ondračka [Mon, 2 Jan 2023 16:23:44 +0000 (17:23 +0100)]
r300: don't convert to constant swizzles when translating from TGSI

We currently convert it twice for unknown reasons, first when
translating from TGSI and later in constant folding. Not only is this
unnecessary, the first translation doesn't check for non-native
swizzles, so removing it actually saves few instructions and gains
a single Unigine shader for R300 at the expense of few more constant
loads and temps.

Also fixes few dEQPs because we could previously generate code like
TEX temp[1], none.01__, 2D[0];
and the native swizzle rewrite pass was not ready for it.

RV370 shader-db:

total instructions in shared programs: 84441 -> 84436 (<.01%)
instructions in affected programs: 63 -> 58 (-7.94%)
helped: 4
HURT: 0

total temps in shared programs: 12398 -> 12400 (0.02%)
temps in affected programs: 10 -> 12 (20.00%)
helped: 1
HURT: 3

total consts in shared programs: 79081 -> 79090 (0.01%)
consts in affected programs: 12 -> 21 (75.00%)
helped: 0
HURT: 7

GAINED: shaders/tropics/465.shader_test FS

No shader-db change with RV530.

Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: Filip Gawin <filip@gawin.net>
Tested-by: Filip Gawin <filip@gawin.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20484>

19 months agor300: allow copy propagate of RC_FILE_NONE reads to TEX instructions
Pavel Ondračka [Mon, 2 Jan 2023 16:17:17 +0000 (17:17 +0100)]
r300: allow copy propagate of RC_FILE_NONE reads to TEX instructions

Texturing instructions can't read from constant sources, however this
can work when the constant was transformed to constant swizzles and
hence RC_FILE_NONE.

Prevents a regression in single Unigine Tropics shader that uses
constant (0.5,0.5) as a TEX coordinate in a next patch. We now
convert to constant swizzles twice, first when translating from TGSI
and than in constant folding. If we disable the first conversion
rc_transform_tex will emit a mov from constant to temporary. With this
patch, copy propagate will clean it up later.

Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: Filip Gawin <filip@gawin.net>
Tested-by: Filip Gawin <filip@gawin.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20484>

19 months agor300: don't copy propagate constant swizzles to KIL on R300
Pavel Ondračka [Mon, 2 Jan 2023 20:02:05 +0000 (21:02 +0100)]
r300: don't copy propagate constant swizzles to KIL on R300

Transforming
0: MOV temp[1], -none.1111;
1: KIL temp[1];
 to
0: KIL -none.1111;

Doesn't work on R300 while it works just fine with R500.

Prevents a regression when we enable the copy propagate of RC_FILE_NONE
to texture instructions in the next commit.

Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: Filip Gawin <filip@gawin.net>
Tested-by: Filip Gawin <filip@gawin.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20484>

19 months agoaco: Use v_mov_b16 on GFX11.
Georg Lehmann [Sat, 17 Dec 2022 10:55:29 +0000 (11:55 +0100)]
aco: Use v_mov_b16 on GFX11.

Foz-DB GFX1100:
Totals from 4684 (3.47% of 134913) affected shaders:
CodeSize: 41086444 -> 41043476 (-0.10%)
Instrs: 8176019 -> 8175995 (-0.00%)
Latency: 83792071 -> 83792023 (-0.00%)
InvThroughput: 10311371 -> 10311369 (-0.00%)

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

19 months agoCI/Windows: Use waffle instead of freeglut for piglit
Jesse Natalie [Thu, 29 Dec 2022 18:32:22 +0000 (10:32 -0800)]
CI/Windows: Use waffle instead of freeglut for piglit

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20466>

19 months agoCI/Windows: Update piglit for Waffle fix
Jesse Natalie [Thu, 29 Dec 2022 20:59:03 +0000 (12:59 -0800)]
CI/Windows: Update piglit for Waffle fix

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20466>

19 months agodocs/freedreno: Add bindless/bindful descriptor docs
Rob Clark [Fri, 30 Dec 2022 21:01:40 +0000 (13:01 -0800)]
docs/freedreno: Add bindless/bindful descriptor docs

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

19 months agofreedreno/registers: Cleanup bindless-base regs
Rob Clark [Thu, 29 Dec 2022 21:29:04 +0000 (13:29 -0800)]
freedreno/registers: Cleanup bindless-base regs

Make it clear that the low two bits of the 64b address is it's own
bitfield.

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

19 months agofreedreno/registers: Fix bo fields with low != 0
Rob Clark [Sun, 1 Jan 2023 20:40:41 +0000 (12:40 -0800)]
freedreno/registers: Fix bo fields with low != 0

We need to add the missing left-shift.  And a right-shift is negative!

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

19 months agofreedreno/decode: Improved reg64 decoding
Rob Clark [Thu, 29 Dec 2022 19:39:05 +0000 (11:39 -0800)]
freedreno/decode: Improved reg64 decoding

This also (other than for an a5xx hack) gets rid of relying on
type0_reg_vals which isn't updated in all paths.

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

19 months agofreedreno/decode: Add rnn_reginfo_free() helper
Rob Clark [Thu, 29 Dec 2022 19:07:17 +0000 (11:07 -0800)]
freedreno/decode: Add rnn_reginfo_free() helper

Simplify things a bit.. and fix a few places that just leaked the
rnndecaddrinfo.

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

19 months agofreedreno/registers: Fix reg64 support
Rob Clark [Thu, 29 Dec 2022 17:42:13 +0000 (09:42 -0800)]
freedreno/registers: Fix reg64 support

The maximum "high" position depends on 32b vs 64b registers.

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

19 months agoci: Update mingw and vs2019 libva build dependency to libva/releases/tag/2.17.0
Sil Vilerino [Tue, 3 Jan 2023 17:11:49 +0000 (12:11 -0500)]
ci: Update mingw and vs2019 libva build dependency to libva/releases/tag/2.17.0

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

19 months agoradv: Use the correct pipeline layout for LBVH IR generation
Konstantin Seurer [Mon, 2 Jan 2023 16:57:17 +0000 (17:57 +0100)]
radv: Use the correct pipeline layout for LBVH IR generation

Fixes: 5ba950e ("radv: Switch to new LBVH implementation.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20481>

19 months agonv30: Fix an offset for vbos being applied to a buffer twice
Adam Stylinski [Sat, 31 Dec 2022 21:14:38 +0000 (16:14 -0500)]
nv30: Fix an offset for vbos being applied to a buffer twice

Similar to 1387d1d4, this offset was being applied twice (once in
translate_generic, and once when the buffer is mapped).

This fixes 7972, which was initially thought to be an endianness
specific issue.

CC: mesa-stable
Tested-by: Filip Gawin <filip@gawin.net>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20468>

19 months agoci: update venus-lavapipe test expectations
Yiwei Zhang [Tue, 3 Jan 2023 08:22:23 +0000 (00:22 -0800)]
ci: update venus-lavapipe test expectations

Remove fixed push descriptor tests from expected failures.

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20471>

19 months agovenus: properly ignore the sampler for immutable sampler
Yiwei Zhang [Sun, 1 Jan 2023 01:21:53 +0000 (17:21 -0800)]
venus: properly ignore the sampler for immutable sampler

This was found while debugging venus-lavapipe ci failure. It's a real
bug though no tests have caught this yet, but fixing this would regress
venus-lavapipe non-templated push tests if without the dependent lvp
fix. The sampler in the descriptor write can be garbled if the binding
has immutable samplers.

cc: mesa-stable

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20471>

19 months agolvp: properly ignore sampler write for immutable sampler
Yiwei Zhang [Sun, 1 Jan 2023 01:07:19 +0000 (17:07 -0800)]
lvp: properly ignore sampler write for immutable sampler

The issue is hidden due to a overly relaxed cts:
dEQP-VK.binding_model.shader_access.primary_cmd_buf.with_push*
that doesn't scrub the sampler from descriptor writes for immutable
samplers. The issue is exposed via venus-lavapipe ci because venus must
ignore the potentially garbled sampler. This change aligns the
VK_DESCRIPTOR_TYPE_SAMPLER path with the
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER path by removing a false check
against the provided sampler from push since the sampler can be null. An
alternative is to also check against !binding->immutable_samplers there.

Test: venus-lavapipe with venus push descriptor support

cc: mesa-stable

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20471>

19 months agospirv2dxil: Support linking multiple shaders
Jesse Natalie [Tue, 27 Dec 2022 18:47:50 +0000 (10:47 -0800)]
spirv2dxil: Support linking multiple shaders

This probably could/should be split up into multiple commits, but
it's simpler to make this a monolithic change.

This change inlines a bunch of logic from spirv_to_dxil into the
spirv2dxil tool so that linking can be done on the nir shaders.
Probably the linking functionality should be exposed in the lib/dll
form too, which means that a helper for freeing intermediate nir
would be needed too. That's TODO for now.

The tool now requires arguments to be in-order, and once a filename
is encountered, will use the previous arguments to compile the shader.
If multiple graphics shaders are passed, they're linked as if they
were forming a pipeline together.

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

19 months agospirv2dxil: Rename and move prep helper
Jesse Natalie [Tue, 27 Dec 2022 18:47:16 +0000 (10:47 -0800)]
spirv2dxil: Rename and move prep helper

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

19 months agoCI/Windows: Use deqp-runner for D3D12 piglit
Jesse Natalie [Wed, 28 Dec 2022 23:47:54 +0000 (15:47 -0800)]
CI/Windows: Use deqp-runner for D3D12 piglit

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

19 months agovulkan/runtime: Preserve pNext when upgrading to synchronization2 structs
Chad Versace [Tue, 8 Nov 2022 17:43:50 +0000 (09:43 -0800)]
vulkan/runtime: Preserve pNext when upgrading to synchronization2 structs

The functions that upgraded VkFooMemoryBarrier to VkFooMemoryBarrier2
dropped the pNext pointers. It loses VkSampleLocationsInfoEXT, and may
lose additional structs too if VkFooMemoryBarrier receives further
extensions in the future.

Signed-off-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20477>

19 months agoradv: determine the gfx scratch size at pipeline bind time
Samuel Pitoiset [Mon, 12 Dec 2022 17:46:50 +0000 (18:46 +0100)]
radv: determine the gfx scratch size at pipeline bind time

This doesn't need to be in the draw path.

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

19 months agoradv: dirty all dynamic states when beginning a new cmdbuf
Samuel Pitoiset [Fri, 16 Dec 2022 13:25:17 +0000 (14:25 +0100)]
radv: dirty all dynamic states when beginning a new cmdbuf

Sounds safer to not rely on other cmdbuf states.

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

19 months agoradv: dirty states when beginning a cmdbuf instead of when a pipeline is bound
Samuel Pitoiset [Mon, 12 Dec 2022 17:43:31 +0000 (18:43 +0100)]
radv: dirty states when beginning a cmdbuf instead of when a pipeline is bound

To reduce CPU overhead of radv_emit_graphics_pipeline().

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

19 months agoradv: move emitting the strmout buffer in CmdDrawIndirectByteCountEXT()
Samuel Pitoiset [Mon, 12 Dec 2022 15:56:42 +0000 (16:56 +0100)]
radv: move emitting the strmout buffer in CmdDrawIndirectByteCountEXT()

This doesn't need to be in the generic draw path because only one
draw command uses it.

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

19 months agoradv: flush DFSM on CB_TARGET_MASK changes when it's emitted
Samuel Pitoiset [Mon, 12 Dec 2022 15:37:21 +0000 (16:37 +0100)]
radv: flush DFSM on CB_TARGET_MASK changes when it's emitted

To avoid performing the same check twice and to emit it at the right
place.

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

19 months agofrontends/va: Update state var frame_num disregarding cap check
Sil Vilerino [Tue, 3 Jan 2023 15:16:29 +0000 (10:16 -0500)]
frontends/va: Update state var frame_num disregarding cap check

The frame_num variable must be updated for encode entrypoint disregarding
the outcome of the PIPE_VIDEO_CAP_REQUIRES_FLUSH_ON_END_FRAME cap check

fixes: 229c6f79a660e5c7999ffc94e1fb514692df3b6a ("frontends/va: Implement vaSyncBuffer")

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