Mike Blumenkrantz [Fri, 5 Aug 2022 16:04:29 +0000 (12:04 -0400)]
zink: rework descriptor pool overflow
previously this would just destroy and recreate pools, but it's much
smarter to instead store the pools and just reuse them when needed
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18065>
Mike Blumenkrantz [Thu, 4 Aug 2022 17:27:38 +0000 (13:27 -0400)]
zink: use a single allocation for zink_descriptor_layout_key
this is slightly more smart
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18065>
Mike Blumenkrantz [Thu, 4 Aug 2022 17:16:16 +0000 (13:16 -0400)]
zink: use a dynarray instead of hash table for tracking pools
this may use a little more memory, but having direct access to the pool
without needing a lookup in a (potentially big) hash table is definitely
worth it
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18065>
Mike Blumenkrantz [Thu, 4 Aug 2022 16:43:01 +0000 (12:43 -0400)]
zink: add an id member for zink_descriptor_pool_key
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18065>
Mike Blumenkrantz [Thu, 4 Aug 2022 11:55:01 +0000 (07:55 -0400)]
zink: require VK_KHR_descriptor_update_template
it's been long enough, and there's no technical reason why drivers
shouldn't have this implemented
ZINK_DESCRIPTORS environment variable is preserved for future use
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18065>
Rhys Perry [Mon, 15 Aug 2022 16:21:05 +0000 (17:21 +0100)]
aco: test for one and_savexec opcode in try_optimize_branching_sequence
A situation where it doesn't match is probably not possible, so this
probably doesn't fix anything.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18077>
Rhys Perry [Mon, 15 Aug 2022 16:19:07 +0000 (17:19 +0100)]
aco: improve vcc check for instructions between exec_val and exec_copy
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18077>
Rhys Perry [Mon, 15 Aug 2022 16:10:28 +0000 (17:10 +0100)]
aco: remove val_and_copy_adjacent
If this is true, then the only instruction the loops visit is
p_logical_end and the loops are no-ops.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18077>
Rhys Perry [Mon, 15 Aug 2022 16:14:11 +0000 (17:14 +0100)]
aco: test branch opcode if removing it in try_optimize_branching_sequence
We shouldn't remove a p_cbranch_nz branch in this situation.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Fixes:
b731be2e96c ("aco: Remove branch instruction when exec is constant non-zero.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18077>
Rhys Perry [Mon, 15 Aug 2022 16:06:23 +0000 (17:06 +0100)]
aco: fix re-write of uses of exec_val's lo/hi half
The isConstant() check isn't useful. If it's a constant, then the
physReg() check will fail.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Fixes:
baab6f18c91 ("aco: Optimize branching sequence during SSA elimination.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18077>
Rhys Perry [Mon, 15 Aug 2022 16:01:52 +0000 (17:01 +0100)]
aco: fix assembly of vopc_sdwa writing exec
We would assemble an instruction writing vcc instead.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Fixes:
5ffc73896f3 ("aco/assembler: Fix v_cmpx with SDWA.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18077>
Rhys Perry [Mon, 15 Aug 2022 16:01:06 +0000 (17:01 +0100)]
aco: rename is_cmp to is_fp_cmp
The old name is no longer accurate.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18077>
Rhys Perry [Mon, 15 Aug 2022 16:46:50 +0000 (17:46 +0100)]
aco: fix consecutive exec writes when finding exec_copy instruction
This can happen with transitions to exact:
s2: %0:exec = p_parallelcopy %622:s[0-1]
s2: %625:s[0-1], s1: %624:scc, s2: %0:exec = s_and_saveexec_b64 %141:vcc, %0:exec
s2: %626:s[12-13] = p_cbranch_z %0:exec BB2, BB1
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Fixes:
410eff4d2f3 ("aco: Fix optimizing branching sequence with s_and_saveexec.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18077>
Eric Engestrom [Mon, 15 Aug 2022 09:22:57 +0000 (10:22 +0100)]
ci: rename GitHub CI workflow from `ci` to `macos` to be a bit more explicit about what it covers
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Yurii Kolesnykov <root@yurikoles.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18057>
Rajnesh Kanwal [Fri, 12 Aug 2022 15:46:42 +0000 (16:46 +0100)]
pvr: Implement vkResetDescriptorPool API.
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18060>
Rhys Perry [Tue, 16 Aug 2022 10:41:15 +0000 (11:41 +0100)]
docs/radv: advertise VK_KHR_global_priority
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/18078>
Joshua Ashton [Sat, 6 Aug 2022 02:15:13 +0000 (02:15 +0000)]
radv: Remove workarounds for D3D9 feedback loops
RADV supports VK_EXT_attachment_feedback_loop_layout now,
and DXVK is using since
63d582a6e7ab63e18503d1238101705a818f5ad0 which
will be in DXVK 2.0, so no need for these anymore.
Older versions of DXVK will still be affected by the issue however.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17920>
PixelyIon [Thu, 11 Aug 2022 14:12:27 +0000 (19:42 +0530)]
tu: Make KGSL wait IOCTLs interrupt-safe
`tu_WaitForFences` and `tu_GetFenceStatus` ended up using `ioctl` instead of
`safe_ioctl` and as a result were responsible for handling `EAGAIN`/`EINTR`
but they weren't handled correctly in wait calls which led to dropping the
wait if the thread received a signal without automatic syscall restarting on
release builds and an assertion due to `errorno` being `EINTR` on debug
builds.
This fixes early wait returns which would lead to UB or cause crashes due to
hitting debug assertions in Skyline Emulator.
Signed-off-by: Mark Collins <mark@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18031>
Samuel Pitoiset [Mon, 15 Aug 2022 14:16:18 +0000 (16:16 +0200)]
radv: advertise VK_KHR_global_priority
Similar to VK_KHR_buffer_device_address which has also been promoted
from EXT.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18061>
Samuel Pitoiset [Wed, 10 Aug 2022 13:53:40 +0000 (15:53 +0200)]
radv: remove radv_graphics_pipeline_info completely
RADV now uses vk_graphics_pipeline_state from Vulkan common code which
is more convenient for eg. graphics pipeline libraries.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Wed, 10 Aug 2022 13:48:19 +0000 (15:48 +0200)]
radv: convert radv_vertex_input_info to vk_vertex_input_state
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Wed, 10 Aug 2022 08:04:46 +0000 (10:04 +0200)]
radv: convert radv_rendering_info to vk_render_pass_state
This also converts VkAttachmentSampleCountInfoAMD which is part of
vk_render_pass_state.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Wed, 10 Aug 2022 07:44:34 +0000 (09:44 +0200)]
radv: convert radv_color_blend_info to vk_color_blend_state
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 15:50:09 +0000 (17:50 +0200)]
radv: convert radv_multisample_info to vk_multisample_state
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 14:27:19 +0000 (16:27 +0200)]
radv: convert radv_input_assembly_info to vk_input_assembly_state
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 14:15:34 +0000 (16:15 +0200)]
radv: convert radv_fragment_shading_rate_info to vk_fragment_shading_rate_state
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 14:08:25 +0000 (16:08 +0200)]
radv: convert radv_depth_stencil_info to vk_depth_stencil_state
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 13:23:53 +0000 (15:23 +0200)]
radv: convert radv_rasterization_info to vk_rasterization_state
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 13:06:44 +0000 (15:06 +0200)]
radv: convert radv_discard_rectangle_info to vk_discard_rectangles_state
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 12:59:19 +0000 (14:59 +0200)]
radv: convert radv_viewport_info to vk_viewpoert_state
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 12:55:22 +0000 (14:55 +0200)]
radv: convert radv_tessellation_info to vk_tessellation_state
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 12:55:28 +0000 (14:55 +0200)]
radv: call vk_graphics_pipeline_state_fill() when initializing gfx pipelines
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 16:35:52 +0000 (18:35 +0200)]
radv: slightly change the color write enable mask
For switching to the common graphics pipeline state.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Wed, 10 Aug 2022 08:41:30 +0000 (10:41 +0200)]
radv: do not translate primitive topology during gfx info initialization
For switching to the common graphics pipeline state.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 16:14:47 +0000 (18:14 +0200)]
radv: do not translate blend op/factor during gfx info initialization
For switching to the common graphics pipeline state.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 16:00:02 +0000 (18:00 +0200)]
radv: do not translate logic op during gfx info initialization
For switching to the common graphics pipeline state.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 13:41:31 +0000 (15:41 +0200)]
radv: do not translate polygon mode during gfx info initialization
For switching to the common graphics pipeline state.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 13:16:04 +0000 (15:16 +0200)]
radv: simplify the depth clip enable/disable logic
For switching to the common graphics pipeline state.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 13:12:47 +0000 (15:12 +0200)]
radv: store the provoking vertex mode in the graphics pipeline info
For switching to the common graphics pipeline state.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 15:05:09 +0000 (17:05 +0200)]
vulkan: add attachment sample count info AMD support
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 14:34:10 +0000 (16:34 +0200)]
vulkan: fix initializing the primitive topology when it's dynamic
The PSO still contain the topology class and some Vulkan drivers like
RADV need to know this.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Samuel Pitoiset [Tue, 9 Aug 2022 13:01:28 +0000 (15:01 +0200)]
vulkan: initialize discardRectangleCount even if the state is dynamic
Only the array of rectangles should be dynamic.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18015>
Kenneth Graunke [Sat, 13 Aug 2022 08:11:58 +0000 (01:11 -0700)]
intel/compiler: Use named NIR intrinsic const index accessors
In the early days of NIR, you had to prod at inst->const_index[]
directly, but a long while back, we added handy accessor functions
that let you use the actual name of the thing you want instead of
memorizing the exact order of parameters.
Also rewrite a comment I had a hard time parsing.
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18067>
Iago Toral Quiroga [Wed, 27 Jul 2022 12:32:24 +0000 (14:32 +0200)]
v3dv: vkCmdClearAttachments no longer generates its own RCL
We improved this a long time ago and now it emits a clear rect inside
the current subpass job instead of emitting its own job with its own
RCL, so we no longer need to handle this as an exception to the rule.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17854>
Iago Toral Quiroga [Wed, 27 Jul 2022 09:42:01 +0000 (11:42 +0200)]
v3dv: add a heuristic for double-buffer mode
For this we add a scoring system that evaluates various aspects of
the draw calls in a job.
If the cost of the geometry side of the pipeline is too high, then
we may pay too high a price in double-buffer mode because with smaller
tile size may will probably have more vertex shader invocations in the
render and binning stages.
On the other hand, if rendering cost is not high enough, we may not
have enough rendering work to hide the latency of tile stores in
double-buffer mode.
Also, because we need to make a decision after we know all the draw
calls in a job, but the double-buffer enable bit comes in the
TILE_BINNING_MODE_CFG that needs to be emitted first in the binning
command list before the draw calls are recorded, if we decide to
enable it we need to rewrite that packet and we need to size the
tile state properly to account for the extra tiles. For this
purpose we delay tile state setup for render pass jobs until we are
finishing a job.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17854>
Iago Toral Quiroga [Wed, 27 Jul 2022 08:42:38 +0000 (10:42 +0200)]
v3dv: tell job_compute_frame_tiling whether we want to use double-buffer mode
We want to have control over the double-buffer setting here so we can control
explicitly from the driver when we want to enable this mode.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17854>
Iago Toral Quiroga [Wed, 27 Jul 2022 08:21:44 +0000 (10:21 +0200)]
v3dv: postpone tile state allocation for render pass jobs
These are jobs for which we may want to enable double-buffering,
which affects tile state allocation. Since the idea is that we
want to decide about double buffering late, we also want to
postpone allocation of the tile state until we are about to
emit the RCL for the job.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17854>
Iago Toral Quiroga [Wed, 27 Jul 2022 08:06:50 +0000 (10:06 +0200)]
v3dv: add a v3dv_job_allocate_tile_state helper
If we enable double-buffer we are reducing the tile size, and thus,
we'll need more tiles and a larger tile state allocation, so we'll
need to call to this helper.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17854>
Iago Toral Quiroga [Wed, 27 Jul 2022 07:53:45 +0000 (09:53 +0200)]
v3dv: fix tile state allocation
If we had decided that we only need one layer worth of tile state
we should actually only allocate one layer.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17854>
Iago Toral Quiroga [Fri, 22 Jul 2022 07:45:10 +0000 (09:45 +0200)]
v3dv: track if a job is compatible with double-buffer mode
MSAA is not compatible with double-buffer mode. Also, jobs that emit
tile loads or that don't have any stores can't take advantage
of double-buffer mode.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17854>
Iago Toral Quiroga [Fri, 22 Jul 2022 07:41:47 +0000 (09:41 +0200)]
v3dv: move check_needs_load/store helpers to unversioned code
These helpers don't depend on the V3D version and we are going
to need them outside v3dvx_cmd_buffer.c soon.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17854>
Iago Toral Quiroga [Fri, 22 Jul 2022 06:13:28 +0000 (08:13 +0200)]
broadcom/compiler: track number of TMU operations in prog data
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17854>
Eric Engestrom [Thu, 28 Jul 2022 19:56:13 +0000 (20:56 +0100)]
docs/features: drop unsupported VK_KHR_display & VK_KHR_get_display_properties2 for lavapipe
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17796>
Eric Engestrom [Thu, 28 Jul 2022 18:41:12 +0000 (19:41 +0100)]
docs/features: start tracking extensions supported by powervr
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17796>
Eric Engestrom [Thu, 28 Jul 2022 18:37:38 +0000 (19:37 +0100)]
docs/features: start tracking extensions supported by panvk
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17796>
Eric Engestrom [Thu, 28 Jul 2022 18:32:40 +0000 (19:32 +0100)]
docs/features: start tracking extensions supported by dozen
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6330
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17796>
Eric Engestrom [Thu, 28 Jul 2022 18:23:06 +0000 (19:23 +0100)]
docs/features: add missing extensions supported by venus
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17796>
Eric Engestrom [Thu, 28 Jul 2022 18:17:37 +0000 (19:17 +0100)]
docs/features: add missing extensions supported by turnip
Reviewed-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17796>
Eric Engestrom [Thu, 28 Jul 2022 18:10:48 +0000 (19:10 +0100)]
docs/features: add missing extensions supported by radv
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17796>
Eric Engestrom [Thu, 28 Jul 2022 18:05:00 +0000 (19:05 +0100)]
docs/features: add missing extensions supported by lavapipe
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17796>
Eric Engestrom [Thu, 28 Jul 2022 17:04:02 +0000 (18:04 +0100)]
docs/features: add missing extensions supported by anv
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17796>
Chia-I Wu [Fri, 12 Aug 2022 21:22:34 +0000 (14:22 -0700)]
turnip: handle fence wrapping in autotune
fence values can be 0 after wrapping. We should not treat 0 specially.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18040>
Chia-I Wu [Fri, 12 Aug 2022 20:53:37 +0000 (13:53 -0700)]
turnip: remove unused member in tu_submission_data
buffers_count is set but unused.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18040>
Chia-I Wu [Fri, 12 Aug 2022 20:02:30 +0000 (13:02 -0700)]
turnip: fix a use-after-free in autotune
When removing old histories, check against gpu fence. Otherwise,
pending_results could have dangling pointers to the removed histories.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7055
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18040>
Mike Blumenkrantz [Tue, 9 Aug 2022 12:51:18 +0000 (08:51 -0400)]
zink: use a maybe more accurate wild guess for pcp-less gpl
this is only reachable with an env var, so being wrong is still okay,
but maybe be right slightly more often
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17955>
Mike Blumenkrantz [Tue, 9 Aug 2022 12:42:51 +0000 (08:42 -0400)]
zink: (correctly) require extendedDynamicState2PatchControlPoints for GPL
this is otherwise broken
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17955>
Mike Blumenkrantz [Thu, 11 Aug 2022 12:52:00 +0000 (08:52 -0400)]
zink: require EXT_non_seamless_cube_map for GPL support
it's impossible to precompile without this
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17955>
Yonggang Luo [Fri, 12 Aug 2022 16:41:33 +0000 (00:41 +0800)]
c11: Remove mtx_try from mtx enums as it's not a part of c11 standard
And we support for four types of mtx init enum values that define by C11 standard:
0 mtx_plain - a simple, non-recursive mutex is created.
2 mtx_timed - a non-recursive mutex, that supports timeout, is created.
1 mtx_plain | mtx_recursive - a recursive mutex is created.
3 mtx_timed | mtx_recursive - a recursive mutex, that supports timeout, is created.
musl library also use these enum combination
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18036>
Georg Lehmann [Sun, 14 Aug 2022 17:25:09 +0000 (19:25 +0200)]
aco: Use v_cmpx pre GFX10.
Foz-DB Vega10:
Totals from 29508 (21.85% of 135041) affected shaders:
CodeSize:
184345656 ->
184345820 (+0.00%)
Instrs:
35906154 ->
35906195 (+0.00%)
Latency:
581696114 ->
581530021 (-0.03%); split: -0.03%, +0.00%
InvThroughput:
245625572 ->
245561351 (-0.03%); split: -0.03%, +0.00%
Copies: 3134925 -> 3278672 (+4.59%)
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18049>
Georg Lehmann [Mon, 15 Aug 2022 10:10:38 +0000 (12:10 +0200)]
aco/assembler: Fix v_cmpx pre GFX10.
The second destination is implicit exec.
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18049>
Georg Lehmann [Sun, 14 Aug 2022 11:56:30 +0000 (13:56 +0200)]
aco: Fix optimizing branching sequence with s_and_saveexec.
This optimization was broken for two reasons:
- s_and_saveexec has two operands, the copy value and exec
- s_and_saveexec has an exec read, so exec_write_used will always be true
before we find branch_exec_val_idx
Foz-DB Navi21:
Totals from 31453 (23.31% of 134913) affected shaders:
CodeSize:
204831260 ->
204831156 (-0.00%)
Instrs:
38157117 ->
38157091 (-0.00%)
Latency:
533708882 ->
531211721 (-0.47%); split: -0.47%, +0.00%
InvThroughput:
107088408 ->
106719188 (-0.34%); split: -0.35%, +0.00%
Copies: 2326179 -> 2502490 (+7.58%)
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18049>
Georg Lehmann [Mon, 15 Aug 2022 09:51:55 +0000 (11:51 +0200)]
aco/assembler: Fix v_cmpx with SDWA.
We need to use the implicit destination.
Fixes:
baab6f18c91 ("aco: Optimize branching sequence during SSA elimination.")
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18049>
Georg Lehmann [Mon, 15 Aug 2022 11:26:23 +0000 (13:26 +0200)]
aco: Check that we don't override exec_val operands during branching sequence optimization.
Fixes:
baab6f18c91 ("aco: Optimize branching sequence during SSA elimination.")
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18049>
Timur Kristóf [Mon, 15 Aug 2022 08:03:58 +0000 (10:03 +0200)]
aco: Check for instructions that inhibit the branching sequence optimization.
Fixes:
baab6f18c91 ("aco: Optimize branching sequence during SSA elimination.")
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18049>
Timur Kristóf [Sun, 14 Aug 2022 13:15:18 +0000 (15:15 +0200)]
aco: Fix invalidated reference in branching sequence optimization.
Inserting in the instructions vector may invalidate the exec_val reference,
so do that last.
Fixes:
baab6f18c91 ("aco: Optimize branching sequence during SSA elimination.")
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18049>
David Heidelberg [Fri, 29 Jul 2022 17:19:45 +0000 (19:19 +0200)]
ci: do not install i386 sub-architecture in VK images
Not required by apitrace.
debian/x86_test-vk image size:
previous: 1.8G
after: 1.0G
v2: added back winehq-stable (missing symlinks)
Acked-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17834>
David Heidelberg [Mon, 15 Aug 2022 08:05:02 +0000 (10:05 +0200)]
ci: use apt-get in x86_test-vk instead of apt
apt shouldn't be used in CI, see:
https://unix.stackexchange.com/questions/590699/should-i-use-apt-or-apt-get-in-shell-scripting
Acked-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17834>
Tomeu Vizoso [Fri, 12 Aug 2022 08:54:14 +0000 (10:54 +0200)]
ci: Report failures to GitLab for LAVA jobs
We were uploading the junit.xml to the artifacts, but weren't telling
GitLab about it.
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18028>
Tomeu Vizoso [Fri, 12 Aug 2022 07:08:01 +0000 (09:08 +0200)]
iris/ci: Set FDO_CI_CONCURRENT for all Chromebook jobs
For some reason we were missing these and that was causing some CPUs to
remain idle, and some boards to have too high load and some tests timing
out occasionally.
Set FDO_CI_CONCURRENT for the number of cores, plus one to account for
GPU and I/O waits.
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18028>
Tomeu Vizoso [Fri, 12 Aug 2022 06:25:04 +0000 (08:25 +0200)]
iris/ci: Test on Jasper Lake Chromebooks
8 such boards have been added to Collabora's lab, let's run all tests
from the selected set.
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18028>
Qiang Yu [Mon, 8 Aug 2022 01:42:16 +0000 (09:42 +0800)]
nir/lower_gs_intrinsics: fix primitive count for points
When primitive is points, EndPrimitive can't be used to count
primitive. Need to use vertex count instead. And it's also not
needed to do vertex per primitive count and overwrite incomplete
primitive work for points.
Fixes:
2be99012e95 ("nir: Add ability to count emitted GS primitives.")
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17805>
Mike Blumenkrantz [Fri, 5 Aug 2022 17:54:58 +0000 (13:54 -0400)]
zink: fix program cache comparisons
I missed this when pipe shader types were merged with mesa types
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 16:34:57 +0000 (12:34 -0400)]
zink: delete zink_shader_stage()
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 16:31:44 +0000 (12:31 -0400)]
zink: remove all pipe_shader_type usage
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 16:20:10 +0000 (12:20 -0400)]
zink: PIPE_SHADER_TYPES -> MESA_SHADER_STAGES
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 16:19:03 +0000 (12:19 -0400)]
zink: explicitly define ZINK_GFX_SHADER_COUNT
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 16:17:37 +0000 (12:17 -0400)]
zink: ZINK_SHADER_COUNT -> ZINK_GFX_SHADER_COUNT
more descriptive
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 16:10:11 +0000 (12:10 -0400)]
zink: use statically sized array for descriptor allocation
this will never be more than 100
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 16:02:34 +0000 (12:02 -0400)]
zink: rename _lazy descriptor stuff
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 15:43:57 +0000 (11:43 -0400)]
zink: reorder some descriptor structs
should yield slightly better packing
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 15:42:09 +0000 (11:42 -0400)]
zink: merge batch descriptor data onto batch state
also clean up some related descriptor code
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 15:32:04 +0000 (11:32 -0400)]
zink: merge program descriptor data onto program struct
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 15:29:59 +0000 (11:29 -0400)]
zink: merge context descriptor data onto context struct
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 15:25:36 +0000 (11:25 -0400)]
zink: merge batch descriptor data structs
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 15:23:31 +0000 (11:23 -0400)]
zink: merge context descriptor data structs
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 15:21:15 +0000 (11:21 -0400)]
zink: remove descriptor dummy_set
while well-intentioned, this didn't actually do anything
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 15:20:16 +0000 (11:20 -0400)]
zink: delete some unused descriptor struct members
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 15:15:39 +0000 (11:15 -0400)]
zink: move lazy descriptor data types into zink_types.h
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 15:05:47 +0000 (11:05 -0400)]
zink: move all types/enums into zink_types.h
this significantly untangles all the header includes and fixes an issue
where zink_descriptors.h couldn't be included by certain files due to
type conflicts
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>
Mike Blumenkrantz [Thu, 4 Aug 2022 13:02:48 +0000 (09:02 -0400)]
zink: delete unused struct types
so old
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18051>