Emma Anholt [Tue, 3 Oct 2023 17:04:04 +0000 (10:04 -0700)]
nir: Flatten ifs with discards in nir_opt_peephole_select for HW without CF.
i915g and r300-r400 don't have if statements, and discards are all
nir_intrinsic_discard_if. We can flatten those discards here, saving a
separate GLSL pass to try to do so.
i915g:
GAINED: shaders/closed/xcom-enemy-unknown/413.shader_test FS
rv370:
GAINED: shaders/closed/xcom-enemy-unknown/12.shader_test FS
GAINED: shaders/closed/xcom-enemy-unknown/122.shader_test FS
GAINED: shaders/closed/xcom-enemy-unknown/132.shader_test FS
GAINED: shaders/closed/xcom-enemy-unknown/145.shader_test FS
GAINED: shaders/closed/xcom-enemy-unknown/146.shader_test FS
GAINED: shaders/closed/xcom-enemy-unknown/19.shader_test FS
GAINED: shaders/closed/xcom-enemy-unknown/413.shader_test FS
GAINED: shaders/closed/xcom-enemy-unknown/415.shader_test FS
Closes: #9918
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24763>
Emma Anholt [Thu, 17 Aug 2023 18:50:50 +0000 (11:50 -0700)]
i915: Make I915_DEBUG=fs log shaders that fail to link due to CF.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24763>
Mike Blumenkrantz [Mon, 2 Oct 2023 12:14:27 +0000 (08:14 -0400)]
lavapipe: VK_EXT_nested_command_buffer
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25615>
Mike Blumenkrantz [Mon, 16 Oct 2023 19:45:41 +0000 (15:45 -0400)]
zink: add automatic swapchain readback using heuristics
in cases where apps (stupidly) do swapbuffers->blitframebuffer, there's
no functional way to (legitimately) perform readback on the just-presented
vk image, which leads to the existing acquire+present loop dance
this adds a counter threshold which, when exceeded, begins copying the
scanout image for swapchains to provide local readback on images without
the massive perf penalty of roundtrips
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25754>
Mike Blumenkrantz [Mon, 16 Oct 2023 17:23:24 +0000 (13:23 -0400)]
zink: fix readback_present locking
queue needs to always be locked and presentation fence should be waited on
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25754>
Mike Blumenkrantz [Wed, 11 Oct 2023 16:16:52 +0000 (12:16 -0400)]
zink: use screen destructor for creation fails
this should be more robust
fixes https://github.com/pal1000/mesa-dist-win/issues/155
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25663>
Mike Blumenkrantz [Wed, 11 Oct 2023 16:16:14 +0000 (12:16 -0400)]
zink: reorder glsl_type_singleton_init_or_ref call
this enables the screen destructor to be used on failure cases
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25663>
Mike Blumenkrantz [Wed, 11 Oct 2023 16:15:35 +0000 (12:15 -0400)]
zink: don't destroy uninitialized disk cache thread
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25663>
Mike Blumenkrantz [Wed, 11 Oct 2023 16:11:45 +0000 (12:11 -0400)]
zink: don't destroy any simple_mtx_t objects during screen destroy
these don't allocate anything on init, but they assert if destroy is
called without an init, which is annoying for error handling
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25663>
Mike Blumenkrantz [Wed, 11 Oct 2023 16:10:56 +0000 (12:10 -0400)]
zink: add some checks to determine whether queue is init on screen destroy
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25663>
Robert Mader [Sat, 7 Oct 2023 17:45:03 +0000 (19:45 +0200)]
iris: Support parameter queries for main planes
In order to return correct offsets, strides and possibly other
parameters. This is relevant for formats like NV12 and P010 where
the second plane, when produced by the Intel VAAPI decoder, uses the
same FD like the first one, but with an offset.
Right now there are only two modifiers with well defined indices
of auxiliary planes for semi-planar formats according to the local
copy of drm_fourcc.h, `I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS` and
`I915_FORMAT_MOD_4_TILED_MTL_MC_CCS`, sharing the same layout.
Assume that future `MC_CCS` modifiers will get defined accordingly
for now.
Cc: mesa-stable
Tested-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9952
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25603>
Leandro Ribeiro [Mon, 4 Sep 2023 16:34:27 +0000 (13:34 -0300)]
egl: error out if we can't find an EGLDevice in _eglFindDevice()
Follow up of "egl/drm: get compatible render-only device fd for kms-only
device". Now we can properly error out when we don't find the EGLDevice
in _eglFindDevice().
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24825>
Leandro Ribeiro [Mon, 4 Sep 2023 16:53:12 +0000 (13:53 -0300)]
egl/drm: get compatible render-only device fd for kms-only device
Things have been working by accident for split display/render SoCs when
using the GBM platform.
The device fd given to the GBM platform may be associated with a
KMS-only device, so _eglFindDevice() should find nothing (because the
global EGLDevice list only has render-capable devices). The only thing
making it work is that we don't error out when we go through the
EGLDevice list and can't find the device we are looking for. We simply
return the last EGLDevice from the list.
This patch fixes that. Now we look for a compatible render-only device
for the KMS-only in the GBM platform.
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24825>
Leandro Ribeiro [Fri, 22 Sep 2023 01:01:32 +0000 (22:01 -0300)]
loader: add loader_is_device_render_capable()
Add helper function to check if a device is render-capable.
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24825>
Leandro Ribeiro [Mon, 16 Oct 2023 15:42:11 +0000 (12:42 -0300)]
kmsro: try to use only compatible render-capable devices
Since commit "pipe-loader: add
pipe_loader_get_compatible_render_capable_device_fd()", we have a
function to query a render-only driver that is available and is
compatible with the KMS-only device.
So start to use it, instead of selecting whatever render-only driver is
available to use.
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24825>
Leandro Ribeiro [Thu, 17 Aug 2023 20:01:32 +0000 (17:01 -0300)]
dri: add queryCompatibleRenderOnlyDeviceFd() to __DRI_MESA extension
With this change we are able to query the render node fd of a
render-only device compatible with a given KMS-only device (at the
egl/dri2 level).
It uses pipe_loader_get_compatible_render_capable_device_fd(), which was
added in commit "pipe-loader: add
pipe_loader_get_compatible_render_capable_device_fd()".
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24825>
Leandro Ribeiro [Thu, 17 Aug 2023 21:20:50 +0000 (18:20 -0300)]
pipe-loader: add pipe_loader_get_compatible_render_capable_device_fd()
pipe_loader_get_compatible_render_capable_device_fd() receives the fd of
a KMS-only platform device, find a compatible render-only device that is
available and returns the fd of its DRM render node.
This function will be helpful to fix a long standing issue that is
preventing us to add support for EGL_EXT_device_drm_render_node for
split display/render SoCs. And it will also help KMSRO to select a
render-only driver that we are sure that is compatible, because
currently KMSRO uses whatever render-only driver is available.
In sort, in the EGL GBM platform case, the GBM device may be created
with a KMS-only device. The information of what render driver will be
selected by KMSRO is not available before creating the EGLDevice global
list. Without this information we don't have a render node to use in the
EGL_EXT_device_drm_render_node query. We've tried to fix this before,
but failed. See [1-2].
For the moment, this function only works for platform KMS-only devices.
For other types of KMS-only devices, we'll need to add more heuristics.
[1] Detailed explanation of the issue:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/5591
[2] Previous attempt to fix:
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12796
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24825>
Leandro Ribeiro [Wed, 27 Sep 2023 20:35:27 +0000 (17:35 -0300)]
loader: add driver list as parameter in loader_open_render_node_platform_device()
In a later commit in this series, we'll need to open the first supported
render-only platform device that we can find.
In order to avoid calling loader_open_render_node_platform_device()
multiple times (what is quite expensive), change this function to take a
driver list (instead of a single driver name) as parameter.
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24825>
Leandro Ribeiro [Thu, 21 Sep 2023 19:34:25 +0000 (16:34 -0300)]
loader: rename loader_open_render_node() to loader_open_render_node_platform_device()
This function ignore devices that are not on the platform bus. So rename
it to better reflect that.
Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24825>
Yiwei Zhang [Tue, 17 Oct 2023 00:18:46 +0000 (17:18 -0700)]
venus: properly expose KHR_external_fence/sempahore_fd
Summary:
1. hide those extensions for vtest since there's no export support
2. do block waiting upon export without implicit fencing support
Fixes: 68a478870d2 ("venus: expose KHR_external_fence/sempahore_fd extensions")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25633>
Faith Ekstrand [Tue, 17 Oct 2023 13:24:50 +0000 (08:24 -0500)]
nvk: Implement VK_EXT_depth_bias_control
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9628
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25765>
Faith Ekstrand [Tue, 17 Oct 2023 14:31:32 +0000 (09:31 -0500)]
nvk: Re-sort device features
Vulkan versions, then KHR, then EXT, then vendor.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25765>
Faith Ekstrand [Tue, 17 Oct 2023 13:28:45 +0000 (08:28 -0500)]
nvk: Add a nvk_cmd_buffer_dirty_render_pass() helper
This makes the dirtying work properly in the case where dynamic
rendering is being used.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25765>
Felix DeGrood [Wed, 13 Sep 2023 20:56:59 +0000 (20:56 +0000)]
anv: set ComputeMode.PixelAsyncComputeThreadLimit = 4
Heuristic-based optimization throttling CCS work (async compute).
Without throttling, background compute work consumes all threads,
deminishing performance gains by running dispatch in parallel with
3D work.
Optimization is heuristics based, meaning a workload might slow
down when using async compute.
Best value: PixelAsyncComputeThreadLimit = 4. On DG2, this
equates to a max CCS thread occupancy of 37.5%.
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25508>
Marek Olšák [Thu, 21 Sep 2023 02:28:31 +0000 (22:28 -0400)]
nir/algebraic: use only signed_zero_preserve_* for addition by 0 patterns, etc.
Some GLSL versions will set inf_preserve but not the other flags.
Additions by 0 only affect signed zeros.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25392>
Marek Olšák [Wed, 20 Sep 2023 18:44:28 +0000 (14:44 -0400)]
nir: split FLOAT_CONTROLS_SIGNED_ZERO_INF_NAN_PRESERVE_FP* flags
GLSL doesn't preserve NaNs, but it optionally preserves Infs.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25392>
Rohan Garg [Thu, 12 Oct 2023 18:21:41 +0000 (20:21 +0200)]
anv: fix debug string for PC flush
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Fixes: fc5cb54 ('anv: Add debug messages for DEBUG_PIPE_CONTROL')
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25690>
Lucas Stach [Wed, 20 Sep 2023 19:49:53 +0000 (21:49 +0200)]
etnaviv: zero shared TS metadata block
Make sure to zero the shared TS metadata memory. Without this invalid
TS data may be mistaken as being valid, causing GPU hangs.
CC: mesa-stable
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/25751>
Lucas Stach [Mon, 16 Oct 2023 13:31:12 +0000 (15:31 +0200)]
etnaviv: use correct blit box sizes when copying resource
The padded width/height is stored in samples, while the blit box
dimensions need to be specified in pixels. Use the unpadded
width/height of the resource levels to generate the blit box
dimensions used to copy a resource. The blit code already extends
those sizes to the padded sizes when necessary and possible.
Fixes crashes in some piglit tests with MSAA active.
CC: mesa-stable
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/25751>
Vinson Lee [Sun, 15 Oct 2023 04:39:54 +0000 (21:39 -0700)]
broadcom/qpu: Remove duplicate variable opcode
Fix defect reported by Coverity Scan.
Evaluation order violation (EVALUATION_ORDER)
write_write_typo: In opcode = opcode = desc->opcode_first, opcode is
written twice with the same value.
Fixes: 3b20208f03f ("broadcom/qpu: add pack/unpack support for v71")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25735>
Lionel Landwerlin [Sat, 14 Oct 2023 16:35:35 +0000 (19:35 +0300)]
intel/ds: provide names for different events of a timeline's row
Previously all items on a timeline row would have the same name. This
change uses the tracepoint names to put into the timeline instead.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Tested-by: Felix DeGrood <felix.j.degrood@intel.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25730>
Lionel Landwerlin [Sat, 14 Oct 2023 19:14:43 +0000 (22:14 +0300)]
u_trace: generate tracepoint name array in perfetto header
The driver glue doesn't have access to that information in a
centralized place. If you want to generate perfetto iid, you need
access to all names.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Tested-by: Felix DeGrood <felix.j.degrood@intel.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25730>
Lionel Landwerlin [Sat, 14 Oct 2023 16:33:46 +0000 (19:33 +0300)]
u_trace: generate tracepoint index parameter in perfetto callbacks
Useful to figure out what's the tracepoint name you're implementing.
We'll use this in the intel perfetto integration glue to index into an
array of perfetto iid.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Tested-by: Felix DeGrood <felix.j.degrood@intel.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25730>
Hyunjun Ko [Tue, 17 Oct 2023 09:58:33 +0000 (11:58 +0200)]
anv: don't flush_llc on gen9
Fixes: 3d993e63bb59 ("anv: Enable barrier handling on video engines ")
Closes: mesa/mesa#9988
Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25762>
Gert Wollny [Mon, 16 Oct 2023 18:20:43 +0000 (20:20 +0200)]
virgl: Fix logic for reporting PIPE_MIRROR_CLAMP
Fixes: 9efe50c83 (virgl: report MIRROR_CLAMP features better)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25755>
Dave Airlie [Wed, 4 Oct 2023 06:35:29 +0000 (16:35 +1000)]
intel-clc: avoid using spirv-linker.
There is not real need to use the spirv-linker here at all,
we can just read all the CL C files into one buffer, then compile
that buffer in a single pass.
This worksaround an issue seen with llvm17 and opaque pointers
and the spirv linker.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25759>
Marek Olšák [Sat, 30 Sep 2023 00:55:39 +0000 (20:55 -0400)]
radeonsi/ci: update gfx1100 results
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25484>
Marek Olšák [Sat, 30 Sep 2023 00:30:23 +0000 (20:30 -0400)]
winsys/amdgpu: don't send CP_GFX_SHADOW chunk if shadow address is not set
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25484>
Marek Olšák [Fri, 29 Sep 2023 22:09:11 +0000 (18:09 -0400)]
radeonsi: disable register shadowing without SR-IOV to fix bad performance
Fixes: f71607c8d3c - radeonsi/gfx11: enable register shadowing by default
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25484>
Marek Olšák [Sat, 30 Sep 2023 00:35:14 +0000 (20:35 -0400)]
ac/gpu_info: don't allow register shadowing with SR-IOV due to bad performance
This is only for gfx11.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25484>
Adam Jackson [Fri, 24 Mar 2023 15:10:54 +0000 (11:10 -0400)]
docs: Mention 'meson devenv' in the pre-install test instructions
Also immunize ourselves against section renumbering.
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25686>
Iván Briano [Mon, 16 Oct 2023 19:16:58 +0000 (12:16 -0700)]
anv: advertise VK_KHR_global_priority_queue
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25758>
Friedrich Vock [Thu, 13 Jul 2023 14:10:12 +0000 (16:10 +0200)]
radv/rt: Reject hits within 10ULP of previous hits in emulated RT
This is an alternative workaround that fixes double hits on shared edges
failing some watertightness CTS tests.
Fixes: e034ba1c44 ("radv/rt: Miss rays that hit the triangle's v edge")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24093>
Lionel Landwerlin [Mon, 16 Oct 2023 12:20:45 +0000 (15:20 +0300)]
anv: workaround Gfx11 with optimized state emission
No real explanation so far.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 50f6903bd9 ("anv: add new low level emission & dirty state tracking")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9781
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25750>
Marek Olšák [Thu, 5 Oct 2023 10:50:29 +0000 (06:50 -0400)]
winsys/amdgpu: pad gfx and compute IBs with only 1 NOP
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25578>
Marek Olšák [Thu, 5 Oct 2023 12:46:56 +0000 (08:46 -0400)]
winsys/amdgpu: correctly pad noop IBs for RADEON_NOOP=1
We need to use ib_pad_dw_mask, not ib_alignment.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25578>
Marek Olšák [Thu, 5 Oct 2023 10:43:43 +0000 (06:43 -0400)]
winsys/amdgpu: properly pad the IB in amdgpu_submit_gfx_nop
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25578>
Marek Olšák [Thu, 5 Oct 2023 10:37:22 +0000 (06:37 -0400)]
ac/gpu_info: set gfx and compute IB padding to only 8 dwords
This is what the kernel reports and what PAL seems to be doing.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25578>
Marek Olšák [Thu, 5 Oct 2023 10:07:32 +0000 (06:07 -0400)]
ac/gpu_info: conservatively decrease IB alignment and padding to 256B
This should be large enough for all engines.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25578>
Marek Olšák [Thu, 5 Oct 2023 10:06:15 +0000 (06:06 -0400)]
ac/gpu_info: drop the hack unifying all IB alignments
We overalign it anyway, so there is no change in behavior.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25578>
Marek Olšák [Thu, 5 Oct 2023 09:37:44 +0000 (05:37 -0400)]
ac/gpu_info: move ib_pad_dw_mask into ip[]
No change in behavior.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25578>
Marek Olšák [Thu, 5 Oct 2023 09:31:18 +0000 (05:31 -0400)]
ac/gpu_info: split ib_alignment as ip[type].ib_alignment
No change in behavior. The previous overalignment is preserved.
It sets ib_pad_dw_mask sooner.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25578>
Thong Thai [Fri, 13 Oct 2023 14:29:21 +0000 (10:29 -0400)]
frontends/va/config: report max width and height for encoding/decoding
Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25716>
Gert Wollny [Sun, 15 Oct 2023 20:28:50 +0000 (22:28 +0200)]
r600/sfn: When simplifying src vec4 pinnings, also check all uses
If a value would be used e.g. as Rn.x___ and also as Rn.xy__, in two
different instructions , then the first use was removing the group
property if Rn.x, which then broke the use in the second case, because
RA didn't see anymore, that Rn.x and Rn.y must be allocated with the
same register ID "n".
Fixes: c23604324b (r600/sfn: copy-propagate single source texture values)
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9998
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25741>
Gert Wollny [Sun, 15 Oct 2023 19:56:04 +0000 (21:56 +0200)]
r600/sfn: Don't override a chgr pinning during copy propagation
Fixes: c0b6c59e0 (r600/sfn: Copy propagate into TEX source)
Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9998
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25741>
Faith Ekstrand [Sat, 14 Oct 2023 14:47:50 +0000 (09:47 -0500)]
vulkan/wsi: Allow for larger linear images
For images of size 32768 × 32768 (which NVK allows), the linear image
ends up being 4GB which overflows the uint32_t size as well as some of
our alignment calculations.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25729>
Faith Ekstrand [Mon, 16 Oct 2023 10:57:21 +0000 (05:57 -0500)]
nvk: Clean up the disk cache on physical device create fail path
Fixes: a4f8fd9dd53d ("nvk: Hook up the disk cache")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25749>
Faith Ekstrand [Sat, 14 Oct 2023 13:41:02 +0000 (08:41 -0500)]
nvk: Handle unbinding images and buffers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25747>
Faith Ekstrand [Sat, 14 Oct 2023 05:18:45 +0000 (00:18 -0500)]
nvk: Add an nvk_shader_finish() helper
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25747>
Faith Ekstrand [Sat, 14 Oct 2023 05:12:58 +0000 (00:12 -0500)]
nvk: Free the disk cache
Fixes: a4f8fd9dd53d ("nvk: Hook up the disk cache")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25747>
Faith Ekstrand [Sat, 14 Oct 2023 05:12:44 +0000 (00:12 -0500)]
nvk: Use nouveau_ws_bo_unmap() instead of munmap()
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25747>
Hannes Mann [Thu, 12 Oct 2023 17:30:08 +0000 (19:30 +0200)]
vulkan/wsi/wayland: Fix detection of tearing control protocol
Fixes: 5ceba97c2e18 ("vulkan/wsi/wayland: add support for IMMEDIATE")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25689>
Erik Faye-Lund [Fri, 13 Oct 2023 13:41:59 +0000 (15:41 +0200)]
bin/gen_release_notes: escape at-symbols
If we don't do this, we end up with email-alike strings to be turned
into mailto links. This is not what we want.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25712>
Erik Faye-Lund [Mon, 9 Oct 2023 12:24:35 +0000 (14:24 +0200)]
docs/relnotes: escape some at-symbols
These are not e-mail addresses, and shouldn't have mailto links...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25712>
Erik Faye-Lund [Mon, 9 Oct 2023 14:16:44 +0000 (16:16 +0200)]
docs/ci: escape at-symbols
These aren't email addresses, so let's not format them as if they were.
Fixes: 93149507265 ("ci: Add docs for Linux Kernel uprevs")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25712>
Erik Faye-Lund [Mon, 9 Oct 2023 12:23:32 +0000 (14:23 +0200)]
docs/relnotes: remove cruft from end of lines
We don't include the full commit message here, so let's drop all of this
cruft. Not sure how this happened in the first place.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25712>
Eric Engestrom [Fri, 13 Oct 2023 16:29:54 +0000 (17:29 +0100)]
util/xmlconfig: inline datadir
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21808>
Eric Engestrom [Fri, 13 Oct 2023 16:29:54 +0000 (17:29 +0100)]
util/xmlconfig: drop driInjectDataDir() now that DRIRC_CONFIGDIR is always supported
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21808>
Erik Faye-Lund [Thu, 9 Mar 2023 07:52:33 +0000 (08:52 +0100)]
meson: add src/util to the drirc search path
With this, we pick up new in-tree defaults for driconfig variables
when using meson devenv. This is useful for testing new config
variables.
Reviewed-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21808>
Erik Faye-Lund [Thu, 9 Mar 2023 07:52:05 +0000 (08:52 +0100)]
util/xmlconfig: add an env-var for overriding drirc search dir
This adds an environment variable that can be used to override the
global drirc serach directory. This can be useful for debugging, and
meson devenv, as used in the following commit.
Reviewed-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21808>
Karol Herbst [Sun, 15 Oct 2023 13:37:36 +0000 (15:37 +0200)]
rusticl/format: disable all sRGB formats
Fixes: 714e11fe046 ("rusticl/format: enable all trivial to support optional image formats")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25739>
Karol Herbst [Sun, 15 Oct 2023 13:32:59 +0000 (15:32 +0200)]
rusticl/memory: use PIPE_BUFFER for IMAGE1D_BUFFER images
Fixes samplerless 1Dbuffer tests with Zink.
Fixes: 20c90fed5a0 ("rusticl: added")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25739>
Karol Herbst [Sun, 15 Oct 2023 14:00:30 +0000 (16:00 +0200)]
rusticl/device: restrict 1Dbuffer images for RGB and RGBx
Fixes: 20c90fed5a0 ("rusticl: added")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25739>
Karol Herbst [Sun, 15 Oct 2023 14:11:57 +0000 (16:11 +0200)]
nir/lower_mem_access_bit_sizes: fix invalid shift bit_size
Shifts always need 32 bit for their second source.
Fixes: c70d94a8897 ("nir_lower_mem_access_bit_sizes: Support unaligned stores via a pair of atomics")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25740>
Danylo Piliaiev [Fri, 13 Oct 2023 15:25:34 +0000 (17:25 +0200)]
freedreno: Fix field size of A6XX_TEX_CONST[3].ARRAY_PITCH
We silently dropped higher bits of layer size, which was not
caught by CTS because it requires image to be big.
Fixes rendering in shadowmappingcascade Vulkan demo.
Cc: mesa-stable
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25717>
Karol Herbst [Sun, 15 Oct 2023 11:29:24 +0000 (13:29 +0200)]
zink: properly emit PhysicalStorageBufferAddresses cap
The PhysicalStorageBuffer64 addressing model requires this cap. Fixes
vulkan validation error.
Fixes: ddc5c304899 ("zink: handle global and scratch vars")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25736>
Karol Herbst [Sun, 15 Oct 2023 11:09:48 +0000 (13:09 +0200)]
zink: implement load_global_constant
This is just like load_global, just that the memory pointed to won't
change.
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25736>
Lucas Stach [Sat, 14 Oct 2023 15:50:33 +0000 (17:50 +0200)]
mesa: enable NV_texture_barrier in GLES2+ (again)
This re-enables NV_texture_barrier in GL ES2+ contexts. This had
previously been tried, but caused CI issues and thus had been
reverted.
c7da969f8fe1 ("mesa: Enable NV_texture_barrier in GLES2+") was
buggy, as it added the es2 annotation to the category instead of
the function in the XML, which lead to the extension being
advertised, but calling glTextureBarrierNV in a GLES context
only yielded a GL_INVALID_OPERATION instead of the desired
barrier operation.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25728>
LingMan [Sat, 14 Oct 2023 14:58:43 +0000 (16:58 +0200)]
rusticl/core: don't take a lock while dropping `Context`
We have exclusive access in Drop, so we can use `get_mut` instead of having to `lock`.
Since that borrows `self` mutably but `call` also needs to borrow `self`, we `take` the Vec with
callbacks out of `self` so the mutable borrow can end before running `call`.
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Sat, 14 Oct 2023 01:15:26 +0000 (03:15 +0200)]
rusticl: drop an `#[allow(dead_code)]` marker
These aliases are all in use.
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Sat, 14 Oct 2023 01:08:29 +0000 (03:08 +0200)]
rusticl: mark the fields of callback structs private
These details are supposed to be inaccessbile and were only made pub during the initial
implementation phase.
Add an `#[allow(dead_code)]` marker since the CreateContextCB isn't hooked up yet which would cause
a warning about unused fields otherwise.
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
Karol Herbst [Sun, 9 Jul 2023 12:30:33 +0000 (14:30 +0200)]
rusticl/api: remove cl_closure macro
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Thu, 12 Oct 2023 19:38:32 +0000 (21:38 +0200)]
rusticl/api: drop a few include paths
`c_void` is already imported at the top of the file.
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Fri, 13 Oct 2023 22:29:08 +0000 (00:29 +0200)]
rusticl: add a safe abstraction to execute a ProgramCB
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Fri, 13 Oct 2023 22:03:52 +0000 (00:03 +0200)]
rusticl: add a safe abstraction to execute a CreateContextCB
Since running CreateContextCBs isn't implemented yet, it's unused for now.
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Thu, 12 Oct 2023 19:31:31 +0000 (21:31 +0200)]
rusticl: add a safe abstraction to execute an SVMFreeCb
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Thu, 12 Oct 2023 18:15:47 +0000 (20:15 +0200)]
rusticl: add a safe abstraction to execute a MemCB
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Thu, 12 Oct 2023 17:49:59 +0000 (19:49 +0200)]
rusticl: add a safe abstraction to execute an EventCB
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Wed, 11 Oct 2023 23:10:51 +0000 (01:10 +0200)]
rusticl: add a safe abstraction to execute a DeleteContextCB
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Mon, 9 Oct 2023 17:38:26 +0000 (19:38 +0200)]
rusticl: Make EventSig take ownership of its environment
Needed because some events may consume their inputs. E.g. it will shortly be needed for the SVMFreeCb.
SVMMemFill will also soon require mutable access.
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Wed, 11 Oct 2023 22:09:10 +0000 (00:09 +0200)]
rusticl: use SVMFreeCb
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Fri, 13 Oct 2023 21:20:43 +0000 (23:20 +0200)]
rusticl: use ProgramCB
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Wed, 11 Oct 2023 21:55:31 +0000 (23:55 +0200)]
rusticl: use MemCB
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Wed, 11 Oct 2023 21:11:52 +0000 (23:11 +0200)]
rusticl: use EventCB
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Wed, 11 Oct 2023 19:35:23 +0000 (21:35 +0200)]
rusticl: use DeleteContextCB
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Fri, 13 Oct 2023 20:54:57 +0000 (22:54 +0200)]
rusticl: use CreateContextCB
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Wed, 11 Oct 2023 19:26:05 +0000 (21:26 +0200)]
rusticl: add structs to hold the C callbacks
Keeps function pointers and their provided user data together. Since these callbacks are guaranteed
to be thread-safe by the OpenCL spec, they are marked Send and Sync.
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
LingMan [Wed, 11 Oct 2023 15:25:04 +0000 (17:25 +0200)]
rusticl: Rename XyzCB aliases to FuncXyzCB
This happens so the XyzCB names can be used for structs containing both the function pointer and
the provided user data. Since these aliases represent raw unsafe function pointers the `Func`
prefix was chosen over `Fn`, which is generally used for safe functions.
Unfortunately it is not possible to concatinate identifiers to create new ones without a proc macro.
Thus, specify the new alias manually instead of generating them from the existing XyzCB names.
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25669>
Yiwei Zhang [Sat, 14 Oct 2023 22:41:59 +0000 (15:41 -0700)]
zink: sync queue access for vkQueueWaitIdle
Ensure VkQueue external sync between flush_queue and TC.
Cc: mesa-stable
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25733>
Karol Herbst [Sat, 14 Oct 2023 22:10:06 +0000 (00:10 +0200)]
zink: implement PIPE_COMPUTE_CAP_MAX_COMPUTE_UNITS
We have to return at least 1.
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25731>