platform/upstream/mesa.git
12 months agor600/sfn: Remove nir_register unit tests
Alyssa Rosenzweig [Fri, 26 May 2023 16:13:07 +0000 (12:13 -0400)]
r600/sfn: Remove nir_register unit tests

These tests will be obsolete soon and are just extra users of an API that will
be removed. Drop them.

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

12 months agoradv: make radv_get_pa_su_sc_mode_cntl() static
Samuel Pitoiset [Mon, 17 Jul 2023 14:59:57 +0000 (16:59 +0200)]
radv: make radv_get_pa_su_sc_mode_cntl() static

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

12 months agoradv: remove support for VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV
Samuel Pitoiset [Thu, 29 Jun 2023 14:59:46 +0000 (16:59 +0200)]
radv: remove support for VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV

This isn't used by vkd3d-proton which is the only user of DGC, no need
to overcomplicate this.

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

12 months agoutil/u_queue: always enable UTIL_QUEUE_INIT_SCALE_THREADS, remove the flag
Marek Olšák [Sun, 16 Jul 2023 07:44:53 +0000 (03:44 -0400)]
util/u_queue: always enable UTIL_QUEUE_INIT_SCALE_THREADS, remove the flag

It means that threads are created on demand except for the first one.
It reduces process startup time.

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

12 months agoutil/u_queue: fix util_queue_finish deadlock by merging lock and finish_lock
Marek Olšák [Sun, 16 Jul 2023 07:24:21 +0000 (03:24 -0400)]
util/u_queue: fix util_queue_finish deadlock by merging lock and finish_lock

and by disabling the on-demand thread creation, which breaks the finish logic.

Fixes: 3713dc6b2a7 - util/u_queue: add UTIL_QUEUE_INIT_SCALE_THREADS flag
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8363

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

12 months agopanfrost: Fix transform feedback on v9
Alyssa Rosenzweig [Mon, 17 Jul 2023 20:54:58 +0000 (16:54 -0400)]
panfrost: Fix transform feedback on v9

We were using a stale FAU buffer which meant we wrote to garbage addresses. I'm
guessing this was fallout from the big sysval rework but not 100% sure.

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

12 months agoanv: ensure CFE_STATE is emitted for ray tracing pipelines
Iván Briano [Tue, 18 Jul 2023 04:37:10 +0000 (21:37 -0700)]
anv: ensure CFE_STATE is emitted for ray tracing pipelines

Fixes sporadic failures in dEQP-VK.robustness.robustness2.*.rgen

Fixes: ecb709c8535 ("anv: only emit CFE_STATE when scratch space increases")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9382

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

12 months agoci/freedreno: add a530 flakes, remove one fail which recently started passing
David Heidelberg [Tue, 18 Jul 2023 00:09:10 +0000 (02:09 +0200)]
ci/freedreno: add a530 flakes, remove one fail which recently started passing

dEQP-GLES31.functional.texture.texture_buffer.render.as_vertex_array_as_index_array_as_fragment_texture.offset_1_alignments
seems to got fixed by accident?

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

12 months agoci/microsoft: when re-enabling Windows Farm, always run the container
David Heidelberg [Mon, 17 Jul 2023 23:08:19 +0000 (01:08 +0200)]
ci/microsoft: when re-enabling Windows Farm, always run the container

Otherwise, Marge queue has to wait for someone manually trigger it.

Fixes: d3b66356 ("ci/microsoft: partly revert rename from container-rules to manual-rules")

Acked-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24048>

12 months agoegl: Rename _eglAddDevice() to _eglFindDevice()
Robert Foss [Fri, 23 Jun 2023 15:50:12 +0000 (17:50 +0200)]
egl: Rename _eglAddDevice() to _eglFindDevice()

_eglAddDevice() is now only used to look up eglDevices,
which means that the function name is a bit misleading.

Since this function is only used for finding the
eglDevice, it should also no longer support adding
a device to the egl devices list.

Signed-off-by: Robert Foss <rfoss@kernel.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23742>

12 months agoegl: Rename _eglAddDevice() to _eglFindDevice()
Robert Foss [Fri, 23 Jun 2023 15:50:12 +0000 (17:50 +0200)]
egl: Rename _eglAddDevice() to _eglFindDevice()

_eglAddDevice() is now only used to look up eglDevices,
which means that the function name is a bit misleading.

Since this function is only used for finding the
eglDevice, it should also no longer support adding
a device to the egl devices list.

Signed-off-by: Robert Foss <rfoss@kernel.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23742>

12 months agoegl/android: Use EGL DeviceList instead drmGetDevices2()
Robert Foss [Tue, 13 Jun 2023 11:50:29 +0000 (13:50 +0200)]
egl/android: Use EGL DeviceList instead drmGetDevices2()

droid_open_device() lists all of the DRM devices available,
but since EGL already already has created such a list use that
instead.

Signed-off-by: Robert Foss <rfoss@kernel.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23742>

12 months agoegl/surfaceless: Use EGL DeviceList instead of drmGetDevices2()
Robert Foss [Tue, 13 Jun 2023 11:57:45 +0000 (13:57 +0200)]
egl/surfaceless: Use EGL DeviceList instead of drmGetDevices2()

surfaceless_probe_device() lists all of the DRM devices available,
but since EGL already already has created such a list use that instead.

Signed-off-by: Robert Foss <rfoss@kernel.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23742>

12 months agoegl: Refresh DeviceList during eglInitialize()
Robert Foss [Tue, 13 Jun 2023 11:56:36 +0000 (13:56 +0200)]
egl: Refresh DeviceList during eglInitialize()

eglInitialize() must be called before the dri2 platforms probe
in order for the EGL DeviceList to be populate with devices.

Signed-off-by: Robert Foss <rfoss@kernel.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23742>

12 months agoegl: Rename _eglRefreshDeviceList() to _eglDeviceRefreshList()
Robert Foss [Mon, 19 Jun 2023 12:15:04 +0000 (14:15 +0200)]
egl: Rename _eglRefreshDeviceList() to _eglDeviceRefreshList()

Rename this function to better reflect it's location
and what structs it relates to.

Signed-off-by: Robert Foss <rfoss@kernel.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23742>

12 months agoegl: Expose access to DeviceList
Robert Foss [Mon, 19 Jun 2023 11:55:22 +0000 (13:55 +0200)]
egl: Expose access to DeviceList

In order to not have the different dri2 platforms all build
lists of available devices, use the device list provided by EGL.

Signed-off-by: Robert Foss <rfoss@kernel.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23742>

12 months agoci: drop leftover kernel configs
Eric Engestrom [Mon, 17 Jul 2023 18:07:43 +0000 (19:07 +0100)]
ci: drop leftover kernel configs

Fixes: 23158e9a3f7c1c3155bf ("ci: build kernel in gfx-ci/linux and just use binaries in Mesa3D CI")
Signed-off-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24195>

12 months agoradv: Rely on workgroup_size initialization
Alyssa Rosenzweig [Fri, 14 Jul 2023 14:13:29 +0000 (10:13 -0400)]
radv: Rely on workgroup_size initialization

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24158>

12 months agov3dv: Rely on nir_builder setting workgroup size
Alyssa Rosenzweig [Fri, 14 Jul 2023 14:07:36 +0000 (10:07 -0400)]
v3dv: Rely on nir_builder setting workgroup size

Now the default.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24158>

12 months agonir: Initialize workgroup_size in builder_init_simple_shader
Alyssa Rosenzweig [Fri, 14 Jul 2023 14:07:04 +0000 (10:07 -0400)]
nir: Initialize workgroup_size in builder_init_simple_shader

It can't be 0 in Vulkan.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24158>

12 months agoir3: Use NIR info to enable per sample shading
Danylo Piliaiev [Mon, 17 Jul 2023 16:28:43 +0000 (18:28 +0200)]
ir3: Use NIR info to enable per sample shading

NIR is tracking this better than us.

New CTS tests seem to add the requirement where in the presence of some
builtin's like gl_SampleID in a shader, even if unused, sample shading
is expected to be enabled.

See https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/3712

Fixes:
 dEQP-VK.draw.*.implicit_sample_shading.sample_id_static_use
 dEQP-VK.draw.*.implicit_sample_shading.sample_position_static_use

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

12 months agoci: add quirk for GitLab assuming changes is always true for scheduled runs
David Heidelberg [Fri, 7 Jul 2023 23:48:31 +0000 (01:48 +0200)]
ci: add quirk for GitLab assuming changes is always true for scheduled runs

Sadly GitLab CI always evaluate `rules:changes` as true, when running
scheduled runs. So we have to add explicit condition to ignore it there.

Every line using `rules:changes` has to have following condition
ignoring "schedule" runes.

Cc: mesa-stable
Reported-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24051>

12 months agoir3: Use nir_lower_tess_coord_z
Alyssa Rosenzweig [Fri, 14 Jul 2023 14:33:22 +0000 (10:33 -0400)]
ir3: Use nir_lower_tess_coord_z

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24159>

12 months agor600: Use nir_lower_tess_coord_xy
Alyssa Rosenzweig [Fri, 14 Jul 2023 14:30:14 +0000 (10:30 -0400)]
r600: Use nir_lower_tess_coord_xy

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24159>

12 months agonir: Add nir_lower_tess_coord_z pass
Alyssa Rosenzweig [Fri, 14 Jul 2023 14:28:37 +0000 (10:28 -0400)]
nir: Add nir_lower_tess_coord_z pass

Lowers tess_coord to tess_coord_xy and math. Based on ir3's version.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24159>

12 months agonir: Promote tess_coord_r600 to tess_coord_xy
Alyssa Rosenzweig [Fri, 14 Jul 2023 14:26:47 +0000 (10:26 -0400)]
nir: Promote tess_coord_r600 to tess_coord_xy

This intrinsic (vec2 tess_coord) is generally useful for non-r600 backends.
Promote it.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24159>

12 months agoci: replace copy of nouveau rules with reference
Eric Engestrom [Tue, 11 Jul 2023 20:25:47 +0000 (21:25 +0100)]
ci: replace copy of nouveau rules with reference

Signed-off-by: Eric Engestrom <eric@igalia.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24190>

12 months agofreedreno,lima,zink: update CI fixes and flakes
Marek Olšák [Mon, 17 Jul 2023 14:41:57 +0000 (10:41 -0400)]
freedreno,lima,zink: update CI fixes and flakes

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

12 months agomesa: fix 38% decrease in display list performance of Viewperf2020/NX8_StudioAA
Marek Olšák [Fri, 14 Jul 2023 19:35:05 +0000 (15:35 -0400)]
mesa: fix 38% decrease in display list performance of Viewperf2020/NX8_StudioAA

It happened because glCallList was restoring varying_vp_inputs, which
caused every glCallList to process the state change again.

This loosely reverts commit 3a294ff01fb9d1d8b4f984a364ed7ef469624c49
"mesa: move the _mesa_set_varying_vp_inputs call to where the state changes".

Fixes: 3a294ff01fb9d1d8b - "mesa: move the _mesa_set_varying_vp_inputs call to where the state changes"

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

12 months agobin/ci: Ensure that all jobs have nodes in DAG
Guilherme Gallo [Mon, 17 Jul 2023 04:30:59 +0000 (01:30 -0300)]
bin/ci: Ensure that all jobs have nodes in DAG

Some automatic jobs, such as 'rustfmt' and 'clang-format', are skipped
during the graph sweep because their parents are already included in the
node set.

This commit ensures all visited jobs are in DAG and fixes iteration
modification using deepcopy.

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

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24176>

12 months agonir/tests: add test for unsigned_upper_bound with loop header phis
Rhys Perry [Tue, 4 Jul 2023 11:41:11 +0000 (12:41 +0100)]
nir/tests: add test for unsigned_upper_bound with loop header phis

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23990>

12 months agonir/unsigned_upper_bound: fix phi(bcsel)
Rhys Perry [Mon, 3 Jul 2023 17:36:28 +0000 (18:36 +0100)]
nir/unsigned_upper_bound: fix phi(bcsel)

This was looking at the wrong sources. src0 is the condition.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Fixes: 72ac3f60261 ("nir: add nir_unsigned_upper_bound and nir_addition_might_overflow")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23990>

12 months agoradeonsi: add AV1 profile to supported profile
Leo Liu [Fri, 14 Jul 2023 15:45:58 +0000 (11:45 -0400)]
radeonsi: add AV1 profile to supported profile

With fully supported profile, we will get info based on querying to
the kernel.

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

12 months agointel/perf: add perf query support for Intel Raptorlake
Rohan Garg [Mon, 17 Jul 2023 11:34:51 +0000 (13:34 +0200)]
intel/perf: add perf query support for Intel Raptorlake

Fixes: 4e0eca7dc3 ("intel/dev: Add device info for RPL")
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24180>

12 months agoglthread: determine global locking once every 64 batches to fix get_time perf
Marek Olšák [Sat, 15 Jul 2023 12:22:37 +0000 (08:22 -0400)]
glthread: determine global locking once every 64 batches to fix get_time perf

This mitigates a large perf degradation when the clock source is HPET instead of TSC.
Just call get_time less frequently.

Fixes: 3ed141e9 - glthread: add a heuristic to stop locking global mutexes with multiple contexts
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8910

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

12 months agoac/nir: always round cube array layers
Rhys Perry [Wed, 12 Jul 2023 20:14:26 +0000 (21:14 +0100)]
ac/nir: always round cube array layers

It seems this is still necessary if conformant_trunc_coord=true.

Fixes various dEQP-VK.texture.shadow.cube_array.* and
dEQP-VK.glsl.texture_functions.texture*samplercubearray* failures with
conformant_trunc_coord.

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

12 months agoradv: don't unset TRUNC_COORD if conformant_trunc_coord=true
Rhys Perry [Wed, 12 Jul 2023 19:51:14 +0000 (20:51 +0100)]
radv: don't unset TRUNC_COORD if conformant_trunc_coord=true

This isn't necessary.

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

12 months agoradv: add conformant_trunc_coord to cache UUID
Rhys Perry [Wed, 12 Jul 2023 19:50:53 +0000 (20:50 +0100)]
radv: add conformant_trunc_coord to cache UUID

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

12 months agoac/llvm: skip ballot zext for 32-bit dest with wave32-as-wave64
Rhys Perry [Thu, 13 Jul 2023 15:37:11 +0000 (16:37 +0100)]
ac/llvm: skip ballot zext for 32-bit dest with wave32-as-wave64

NGG lowering can ballots with a 32-bit destination even if the ballot bit
size is 64.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24140>

12 months agoac/llvm: fix wave32 ac_build_mbcnt_add with 64-bit mask
Rhys Perry [Thu, 13 Jul 2023 13:46:49 +0000 (14:46 +0100)]
ac/llvm: fix wave32 ac_build_mbcnt_add with 64-bit mask

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24140>

12 months agoradv: fix radv_get_ballot_bit_size with CS
Rhys Perry [Thu, 13 Jul 2023 13:37:15 +0000 (14:37 +0100)]
radv: fix radv_get_ballot_bit_size with CS

For wave64-as-wave32, this would return 32.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24140>

12 months agoac/llvm: fix AC_TM_CHECK_IR
Rhys Perry [Thu, 13 Jul 2023 13:25:04 +0000 (14:25 +0100)]
ac/llvm: fix AC_TM_CHECK_IR

This was using the wrong pass.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Fixes: 3f272fd15e9 ("ac/llvm: fix build with LLVM 17")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24140>

12 months agoetnaviv: remove bogus comment about replacing resource storage
Lucas Stach [Fri, 14 Jul 2023 17:01:51 +0000 (19:01 +0200)]
etnaviv: remove bogus comment about replacing resource storage

While we might want to employ this orphaning trick one day to avoid stalls
on busy resources it's certainly not as easy as the comment implies, as
this would involve changing all relocs in cached state objects referencing
the resource.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24164>

12 months agoetnaviv: remove always true assert in etna_transfer_unmap
Lucas Stach [Fri, 14 Jul 2023 16:59:56 +0000 (18:59 +0200)]
etnaviv: remove always true assert in etna_transfer_unmap

The level parameter is already checked in etna_transfer_map, so there
is no way that the unmap could end up violating the assert.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24164>

12 months agoetnaviv: remove superfluous braces
Lucas Stach [Fri, 14 Jul 2023 16:53:57 +0000 (18:53 +0200)]
etnaviv: remove superfluous braces

etnaviv gernerally uses the style where no braces are used if the
statement inside a conditional clause fits on a single line. Remove
some superfluous braces to be more consistent.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24164>

12 months agoetnaviv: move buffer range tracking into the PIPE_MAP_WRITE clause
Lucas Stach [Fri, 14 Jul 2023 16:50:46 +0000 (18:50 +0200)]
etnaviv: move buffer range tracking into the PIPE_MAP_WRITE clause

Move the valid buffer range tracking next to all the other things we
do on write mapping.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24164>

12 months agoetnaviv: remove huge outdated comment
Lucas Stach [Fri, 14 Jul 2023 16:30:48 +0000 (18:30 +0200)]
etnaviv: remove huge outdated comment

The comment makes it seem like we don't track resource status, which might
have been the case long ago, before the driver was even merged in upstream
Mesa, but is definitely no longer true. The kernel driver keeps track of
submitted work on BOs, the Mesa driver properly tracks unsubmitted usages
of any resource.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24164>

12 months agoetnaviv: reword comment about staging resource usage
Lucas Stach [Fri, 14 Jul 2023 16:26:25 +0000 (18:26 +0200)]
etnaviv: reword comment about staging resource usage

The current wording isn't really accurate. It talks about depth surfaces,
while in reality any surface used by the PE can have TS allocated. Also
with compression the TS doesn't only track "holes" aka clear tiles, but
instead carries the compression tags.

Reword to hopefully match reality a bit better.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24164>

12 months agoetnaviv: check for valid TS as condition to create the staging resource
Lucas Stach [Fri, 14 Jul 2023 16:09:59 +0000 (18:09 +0200)]
etnaviv: check for valid TS as condition to create the staging resource

Presence of the TS buffer doesn't necessarily mean that there is valid
TS information that we need to take into account. This is pretty harmless
as the blit into the staging resource will just ignore invalid TS data
and most TS enabled resources are (super-)tiled anyways, which we will
handle with a staging resource nonetheless, but better not keep this bad
example around and replace with the appropriate check.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24164>

12 months agoetnaviv: don't allocate full resource as transfer staging
Lucas Stach [Fri, 14 Jul 2023 15:54:45 +0000 (17:54 +0200)]
etnaviv: don't allocate full resource as transfer staging

The transfer only targets a specific level of a resource, so we don't
need to allocate all potential resource levels for the staging resource,
but instead shrink the allocation to a single level.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24164>

12 months agoetnaviv: split etna_copy_resource_box levels parameter in src/dst
Lucas Stach [Fri, 14 Jul 2023 15:47:07 +0000 (17:47 +0200)]
etnaviv: split etna_copy_resource_box levels parameter in src/dst

Allow to copy between different level in the source and destination
resource.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24164>

12 months agoiris: fix iris for WA 16013000631
Rohan Garg [Sat, 15 Jul 2023 13:59:50 +0000 (15:59 +0200)]
iris: fix iris for WA 16013000631

iris needs to emit a PIPE_CONTROL_INSTRUCTION_INVALIDATE for the
aforementioned WA.

Fixes: 83716b08c ('iris: migrate WA 14013910100 to use the WA framework')
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24171>

12 months agoisl: add a tool to query surface parameters
Lionel Landwerlin [Thu, 13 Jul 2023 09:27:06 +0000 (12:27 +0300)]
isl: add a tool to query surface parameters

$ ./build/src/intel/isl/isl_query -p dg2 -w 128 -h 64 -l 4
Surface parameters:
  dim:                 2d
  dim_layout:          0
  msaa_layout:         0
  tiling:              64
  format:              R8G8B8A8_UNORM
  img_align_el:        128x128x1
  logical_level0_px:   128x64x1x1
  phys_level0_sa:      128x64x1x1
  levels:              4
  samples:             1x
  size_B:              131072
  alignment_B:         65536
  row_pitch_B:         512
  array_pitch_el_rows: 256
  tile_info:
    tiling:             64
    format_bpb:         32
    logical_extent_el:  128x128x1x1
    phys_extent_B:      512x128 = 65536

$./build/src/intel/isl/isl_query -p skl -w 128 -h 64 -l 4 -f R8G8B8_UINT
Surface parameters:
  dim:                 2d
  dim_layout:          0
  msaa_layout:         0
  tiling:              Y0
  format:              R8G8B8_UINT
  img_align_el:        16x4x1
  logical_level0_px:   128x64x1x1
  phys_level0_sa:      128x64x1x1
  levels:              4
  samples:             1x
  size_B:              36864
  alignment_B:         4096
  row_pitch_B:         384
  array_pitch_el_rows: 96
  tile_info:
    tiling:             Y0
    format_bpb:         8
    logical_extent_el:  128x32x1x1
    phys_extent_B:      128x32 = 4096

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24142>

12 months agoci/freedreno: add another a530 flakes
David Heidelberg [Sun, 16 Jul 2023 00:11:07 +0000 (02:11 +0200)]
ci/freedreno: add another a530 flakes

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

12 months agoci/freedreno: fix unexpectedpass flake on a630
David Heidelberg [Sun, 16 Jul 2023 00:09:27 +0000 (02:09 +0200)]
ci/freedreno: fix unexpectedpass flake on a630

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

12 months agoci/lima: EGL testing was disabled when fp16 fail was removed
David Heidelberg [Fri, 14 Jul 2023 16:53:40 +0000 (18:53 +0200)]
ci/lima: EGL testing was disabled when fp16 fail was removed

fd4d0e1cc23f ("st/mesa: Set gl_config.floatMode based on color_format"),
fixed this functionality across multiple drivers, but EGL testing on
Mali was disabled back then, theofore it still fails here.

Acked-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Acked-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24079>

12 months agoci/radeonsi: stoney arb_timer_query got fixed between kernel 6.3.1..13
David Heidelberg [Fri, 14 Jul 2023 00:52:15 +0000 (02:52 +0200)]
ci/radeonsi: stoney arb_timer_query got fixed between kernel 6.3.1..13

Acked-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Acked-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24079>

12 months agoRevert "lima/ci: temporarily disable deqp-egl tests due to timeouts"
David Heidelberg [Fri, 14 Jul 2023 00:51:16 +0000 (02:51 +0200)]
Revert "lima/ci: temporarily disable deqp-egl tests due to timeouts"

This reverts commit be2619766be3f4ee0b22a10f8db179dc1e3c5773.

Acked-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Acked-by: Erico Nunes <nunes.erico@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24079>

12 months agoci/freedreno: add fails introduced by upreving to 6.3.13
David Heidelberg [Tue, 11 Jul 2023 22:19:58 +0000 (00:19 +0200)]
ci/freedreno: add fails introduced by upreving to 6.3.13

Some of these fails/crashes was already present when trying 6.3.4,
two disappeared, one new crash appeared. Identical `.config`.

See: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9247

Acked-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Acked-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24079>

12 months agoci: update kernel to 6.3.13
David Heidelberg [Mon, 10 Jul 2023 23:46:05 +0000 (01:46 +0200)]
ci: update kernel to 6.3.13

Acked-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Acked-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24079>

12 months agoci: build kernel in gfx-ci/linux and just use binaries in Mesa3D CI
David Heidelberg [Sat, 10 Jun 2023 03:16:56 +0000 (05:16 +0200)]
ci: build kernel in gfx-ci/linux and just use binaries in Mesa3D CI

This bring visible speedup while preparing the rootfs and containers.

Acked-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Acked-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24079>

12 months agonir: Devendor load_sample_mask
Alyssa Rosenzweig [Thu, 13 Jul 2023 21:08:18 +0000 (17:08 -0400)]
nir: Devendor load_sample_mask

AGX will use this too for its MSAA lowerings.

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

12 months agonir: Add fence_{pbe,mem}_to_tex(_pixel)_agx intrinsics
Alyssa Rosenzweig [Thu, 8 Jun 2023 13:24:13 +0000 (09:24 -0400)]
nir: Add fence_{pbe,mem}_to_tex(_pixel)_agx intrinsics

Read-after-write hazards require special handling on AGX, since image loads are
implemented with texturing. Add intrinsics to handle these hazards.

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

12 months agonv50/ir: Support vector movs
Faith Ekstrand [Sat, 15 Jul 2023 05:15:12 +0000 (00:15 -0500)]
nv50/ir: Support vector movs

nir_opt_mov and nir_op_vecN are only the same if the mov is only a
single component.  Otherwise the vec loop will try to access src[c]
where c > 0 which breaks for nir_op_mov.  It's uncommon but scalar
back-ends can see vector movs so we need to handle this correctly.

Fixes: 6513c675ad31 ("nv50/ir/nir: implement nir_alu_instr handling")
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: M Henning <drawoc@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24167>

12 months agoglx: Assign unique serial number to GLXBadFBConfig error
Semjon Kravtsenko [Wed, 21 Jun 2023 07:50:44 +0000 (10:50 +0300)]
glx: Assign unique serial number to GLXBadFBConfig error

Fixes: e89e1f5049d ("glx: Fix error handling yet again in CreateContextAttribs")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9171
Tested-by: yan12125
Co-authored-by: XRevan86
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23762>

12 months agoradeonsi: prefix function with si_ to prevent name collision
WinLinux1028 [Tue, 11 Jul 2023 09:16:01 +0000 (18:16 +0900)]
radeonsi: prefix function with si_ to prevent name collision

Fixed a build error caused by multiple gfx11_init_query symbols when building with iris and radeonsi specified in gallium-drivers.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9238
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24045>

12 months agoisl: Disable MCS compression just on ACM platform
Sagar Ghuge [Tue, 2 May 2023 02:55:19 +0000 (19:55 -0700)]
isl: Disable MCS compression just on ACM platform

We're still seeing failures with render target reads of multisampled
images on Alchemist platforms, but Meteorlake doesn't appear to have
that issue. Enable MCS on Meteorlake.

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22802>

12 months agointel/compiler: Look at 2 register worth of data instead of 4
Sagar Ghuge [Tue, 2 May 2023 02:54:07 +0000 (19:54 -0700)]
intel/compiler: Look at 2 register worth of data instead of 4

Sampler always writes 4/8 register worth of data but for ld_mcs only
valid data is in first two register. So with 16-bit payload, we need to
split 2-32bit registers into 4-16-bit payload.

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22802>

12 months agoiris: migrate WA 14016118574 to use the WA framework
Rohan Garg [Fri, 14 Jul 2023 10:45:37 +0000 (12:45 +0200)]
iris: migrate WA 14016118574 to use the WA framework

Fixes: 58829d9f1 ("iris: implement Wa_14016118574")
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24156>

12 months agoiris: migrate WA 14013910100 to use the WA framework
Rohan Garg [Fri, 14 Jul 2023 10:15:33 +0000 (12:15 +0200)]
iris: migrate WA 14013910100 to use the WA framework

Fixes: eeb3f4594d5 ("intel/xehp: Implement XeHP workaround Wa_14013910100.")
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24156>

12 months agoUpdate radeon_vcn_enc.c
Thong Thai [Fri, 14 Jul 2023 15:58:44 +0000 (15:58 +0000)]
Update radeon_vcn_enc.c

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

12 months agoradeonsi: enable vcn encoder rgb input support
Thong Thai [Fri, 14 Jul 2023 01:04:25 +0000 (21:04 -0400)]
radeonsi: enable vcn encoder rgb input support

v2: use luma pitch when chroma not available (Ruijing)

Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24151>

12 months agoRevert "ac/nir/ngg: Follow intrinsic sources when analyzing before culling."
Marek Olšák [Thu, 13 Jul 2023 03:09:16 +0000 (23:09 -0400)]
Revert "ac/nir/ngg: Follow intrinsic sources when analyzing before culling."

This reverts commit 411f69b9c5b884f6802758347e72a10ec5564df1.

It broke tessellation in Unigine Heaven with radeonsi.

Fixes: 411f69b9c5b884 - ac/nir/ngg: Follow intrinsic sources when analyzing before culling.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24160>

12 months agoradeonsi: Use DIV_ROUND_UP instead of ALIGN_POT
David Rosca [Thu, 13 Jul 2023 07:14:00 +0000 (09:14 +0200)]
radeonsi: Use DIV_ROUND_UP instead of ALIGN_POT

DIV_ROUND_UP is the correct replacement for ALIGN_TO.

Fixes: ba83c1e2
Signed-off-by: David Rosca <nowrep@gmail.com>
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24127>

12 months agoetnaviv: optimize transfers when whole resource level is discarded
Lucas Stach [Wed, 23 Nov 2022 17:11:18 +0000 (18:11 +0100)]
etnaviv: optimize transfers when whole resource level is discarded

Now that all our age tracking is moved to etna_resource_level we can unlock
some more optimizations in the transfers by skipping copies or flushes when
the whole level is discarded.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19964>

12 months agoetnaviv: optimize render resource update
Lucas Stach [Fri, 18 Nov 2022 17:23:37 +0000 (18:23 +0100)]
etnaviv: optimize render resource update

Now that we track the age at the resource level we can optimize
the render surface update by only copying the single level we are
going to render to.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19964>

12 months agoetnaviv: keep blit destination tile status valid if possible
Lucas Stach [Fri, 18 Nov 2022 17:08:06 +0000 (18:08 +0100)]
etnaviv: keep blit destination tile status valid if possible

If the blit was just a resource flush on a uncompressed buffer we can
keep the tile status as valid, as in that case only clear tiles are filled
in the target buffer, but it doesn't hurt to look at the TS buffer when
fetching from this resource as the tile status matches the content of the
buffer. For compressed formats we can't do the same, as the compressed
tiles are uncompressed when flushing the resource, so the compression tags
don't match the buffer content anymore.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19964>

12 months agoetnaviv: allow sampler TS even if the resource is flushed
Lucas Stach [Fri, 18 Nov 2022 17:00:58 +0000 (18:00 +0100)]
etnaviv: allow sampler TS even if the resource is flushed

As long as the TS is valid we can use the tile status to optimize the
sample fetch, even if the resource has been flushed for any reason.
Do the check for valid TS first when checking whether to enable sampler
TS to avoid all the other checks when TS isn't usable.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19964>

12 months agoetnaviv: optimize sampler source update
Lucas Stach [Fri, 18 Nov 2022 16:58:02 +0000 (17:58 +0100)]
etnaviv: optimize sampler source update

Now that we track age at the resource level we can optimize
the sampler source update by only copying/flushing the levels
that are actually used by the sampler.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19964>

12 months agoetnaviv: add tile status buffer status into TS metadata
Lucas Stach [Wed, 16 Nov 2022 20:27:11 +0000 (21:27 +0100)]
etnaviv: add tile status buffer status into TS metadata

When the TS is shared all sharing instances must see the same status
information about the resource TS buffer. Add this information to the
shared TS metadata and make it take precedence over the internal
status tracking when the TS is shared.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19964>

12 months agoetnaviv: move TS meta into etna_resource_level
Lucas Stach [Wed, 16 Nov 2022 19:47:13 +0000 (20:47 +0100)]
etnaviv: move TS meta into etna_resource_level

Handle imports/exports always deal with one specific level of
a resource, so the shared TS metadata should also be per level.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19964>

12 months agoetnaviv: add helper to set TS validity
Lucas Stach [Wed, 16 Nov 2022 19:25:35 +0000 (20:25 +0100)]
etnaviv: add helper to set TS validity

Wrap the setting of the resource level TS validity into a
helper function to allow the implementation to change later.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19964>

12 months agoetnaviv: add helper to get TS validity
Lucas Stach [Wed, 16 Nov 2022 18:22:46 +0000 (19:22 +0100)]
etnaviv: add helper to get TS validity

Add a small helper to get the validity of the TS buffer for
a resource level. We can drop the ts_size check in several
places, as we never set ts_valid to true if there is no TS
buffer.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19964>

12 months agoetnaviv: add helper to transfer resource level age to another
Lucas Stach [Fri, 18 Nov 2022 16:08:41 +0000 (17:08 +0100)]
etnaviv: add helper to transfer resource level age to another

Add a small helper to transfer the age (seqno) from one resource level
to another.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19964>

12 months agoetnaviv: add helper to mark resource level as changed
Lucas Stach [Fri, 18 Nov 2022 16:04:46 +0000 (17:04 +0100)]
etnaviv: add helper to mark resource level as changed

Add a small helper to mark a resource level as changed so the
seqno handling is hidden.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19964>

12 months agoetnaviv: add helper to mark resource level as flushed
Lucas Stach [Fri, 18 Nov 2022 15:57:44 +0000 (16:57 +0100)]
etnaviv: add helper to mark resource level as flushed

Add a small helper to mark a resource level as flushed so the
seqno handling is hidden.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19964>

12 months agoetnaviv: optimize resource copies by skipping clean levels
Lucas Stach [Fri, 18 Nov 2022 10:04:24 +0000 (11:04 +0100)]
etnaviv: optimize resource copies by skipping clean levels

If we sync/flush a full resource we can skip any level where the
target is of the same age as the source.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19964>

12 months agoetnaviv: flush destination before executing blit
Lucas Stach [Wed, 7 Dec 2022 14:17:32 +0000 (15:17 +0100)]
etnaviv: flush destination before executing blit

A blit into a render target may destroy valid TS information, as the
destination TS isn't updated. Flush the blit destination when necessary
to make sure that all pending TS is resolved into the destination before
the blit is executed.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19964>

12 months agoetnaviv: move resource seqnos to level
Lucas Stach [Thu, 17 Nov 2022 17:57:42 +0000 (18:57 +0100)]
etnaviv: move resource seqnos to level

Resource maps, blits and surfaces all target a specific level of a
resource, so they can have different ages. Move the seqnos tracking
the age to etna_resource_level.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19964>

12 months agoci/etnaviv: update ci expectation
Lucas Stach [Fri, 14 Jul 2023 12:40:18 +0000 (14:40 +0200)]
ci/etnaviv: update ci expectation

Etnaviv fails in the same way as Lima after the merge of
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23735

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24157>

12 months agoir3: Convert to register intrinsics
Alyssa Rosenzweig [Wed, 12 Jul 2023 18:21:43 +0000 (14:21 -0400)]
ir3: Convert to register intrinsics

Thanks to our SSA-based RA, we only use nir_register for arrays, and we only
access array registers with dedicated moves anyway. So there's no reason to need
any fancy coalescing... we can just switch to register access intrinsics and
translate them to moves exactly like we would've done when getting srcs/dests
before.

This addresses the ir3 portion of #9051.

No shader-db changes with a (significant subset of) Rob's shader-db. (Some
shaders are affected by this change but not in any way that shows up in the
stats.)

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24126>

12 months agoac/llvm: Remove subgroup_id and num_subgroups intrinsics.
Timur Kristóf [Wed, 5 Jul 2023 12:40:09 +0000 (14:40 +0200)]
ac/llvm: Remove subgroup_id and num_subgroups intrinsics.

We expect that these will be lowered in NIR now.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24005>

12 months agoaco: Remove subgroup_id and num_subgroups intrinsics.
Timur Kristóf [Tue, 4 Jul 2023 12:29:55 +0000 (14:29 +0200)]
aco: Remove subgroup_id and num_subgroups intrinsics.

These are lowered in NIR now.

Signed-off-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/24005>

12 months agoradeonsi: Use ac_nir_lower_intrinsics_to_args.
Timur Kristóf [Tue, 4 Jul 2023 12:11:11 +0000 (14:11 +0200)]
radeonsi: Use ac_nir_lower_intrinsics_to_args.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24005>

12 months agoradeonsi: Move si_select_hw_stage to si_shader_info.
Timur Kristóf [Mon, 10 Jul 2023 09:06:02 +0000 (11:06 +0200)]
radeonsi: Move si_select_hw_stage to si_shader_info.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24005>

12 months agoradv: Use ac_nir_lower_intrinsics_to_args.
Timur Kristóf [Mon, 3 Jul 2023 15:07:32 +0000 (17:07 +0200)]
radv: Use ac_nir_lower_intrinsics_to_args.

Signed-off-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/24005>

12 months agoradv: Move radv_select_hw_stage to radv_shader_info.
Timur Kristóf [Mon, 10 Jul 2023 08:36:20 +0000 (10:36 +0200)]
radv: Move radv_select_hw_stage to radv_shader_info.

Signed-off-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/24005>

12 months agoac/nir: Add new pass to lower intrinsics to shader args.
Timur Kristóf [Mon, 3 Jul 2023 15:07:18 +0000 (17:07 +0200)]
ac/nir: Add new pass to lower intrinsics to shader args.

This is beneficial for intrinsics that do an algebraic
instruction such as bitfield extract on shader arguments,
because it allows NIR to be aware of these instructions and
optimize them together with other algebraic instructions in
the shader.

Currently, just handle subgroup_id and num_subgroups intrinsics.
More will be added here in the future.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24005>

12 months agoac/nir: Simplify arg unpacking when shift is zero.
Timur Kristóf [Mon, 3 Jul 2023 15:06:50 +0000 (17:06 +0200)]
ac/nir: Simplify arg unpacking when shift is zero.

This is so we can just use the same function when it's zero.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24005>

12 months agoaco: Fix subgroup_id intrinsic on GFX10.3+.
Timur Kristóf [Tue, 4 Jul 2023 12:28:45 +0000 (14:28 +0200)]
aco: Fix subgroup_id intrinsic on GFX10.3+.

Change this to match how it works in the LLVM backend.

Cc: mesa-stable
Signed-off-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/24005>