

v3dv: enable multisync in the simulator
source link: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14768
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

v3dv: enable multisync in the simulator (!14768) · Merge requests · Mesa
Use drmSyncobjSignal to signal out_syncobjs when a CL submission ends in the simulator. In this case, out_syncs can be signal semaphores or fences. With this, we can enable multisync support in the simulator and keep the multisync approach to process fence by submitting a serialized no-op job that adds the fence to its array of out syncobjs, i.e. drm-syncobjs to be signaled in the kernel when a job completes (job post deps).
Test summary results are being parsed
Merged by 5 months ago (Feb 9, 2022 7:44am UTC) 5 months ago
This is only addressing the issue for CL submissions, we need to handle it for TFU and CSD as well. How are you testing this?
Ok, I think we can handle signal syncobjs for TFU and CSD submissions for completeness, but, afaiu, it doesn't bring a functional change in the simulator operations.
I only addressed CL submission because we never use TFU or CSD jobs to signal fences. I understood that all jobs are serialized in the simulator and I don't see the issue in TFU and CSD jobs, so I thought I should reduce calling drm ioctls here that doesn't bring a real change. The issue doesn't include TFU and CSD jobs because, for all GPU jobs, we are using a syncobj in last_job_sync to signal when the job completes, but all syncobjs in last_job_sync are created signalled. Therefore, their states never change to unsignalled since in/out syncobjs are ignored in the simulator.
But unlike last_job_sync syncobjs, fences are not always created signalled and tests expect that their states change to signal at some point. When multisync is enabled, we stop using a signalled syncobj from last_job_sync[queue_any] to signal the fence (via export/import sync file) and start to emit a no-op job, which is a CL job, to signal fence as part of this job out-syncobjs array. But, as said before, we weren't handling out syncobjs in the simulator and therefore this fence never changes its state if we don't explicitly signal it when the job finishes. Hmm.. maybe I should add a comment with this explanation too.
I only tested locally with dEQP-VK.texture/(some)api/synchronization in the simulator. I also compared test results with/without signalling the last out syncobj in the out-syncobj array - if the fence is in an out-syncobj array, it will be the last element. Is it possible to run the full-CI on the simulator?
Recommend
-
10
V3DV + Zink November 5, 2020 During my presentation at the X Developers Conference I...
-
13
So here a new update of the evolution of the Vulkan driver for the rpi4 (broadcom GPU). Features Since my last update we finished the supp...
-
8
Macs are case insensitive, but the iOS Simulator uses a hidden option in macOS’s kernel to enable case sensitivity, to match real iOS devices. This option can also be set with macOS’s taskpolicy tool, so you can launch any macOS...
-
16
V3DV Vulkan driver update: VkQuake1-3 now working July 23, 2020 A few weeks ago we shared an
-
5
About three weeks ago there was a big announcement about the update of the status of the Vulkan effort for the Raspberry Pi 4. Now the source code is pu...
-
9
v3dv status update 2020-07-31 Iago talked recently about the work done testing and supporting well known applications, like the Vulkan ports of t...
-
6
v3dv: enable multiple semaphores for tfu job Whenever v3d kernel-driver supports multisync extension, use it to enable more than one semaphores in a tfu job. Signed-off-by:
-
5
Commit fd973218 authored 8 months ago by Melissa Wen
-
4
v3dv: enable multiple semaphores on cl submission Whenever v3d kernel-driver supports multisync extension, use it to enable more than one semaphores in cl submission. In CL, we have two kind of job (bin and render), therefore, we ne...
-
4
v3dv: enable multiple semaphores for csd job Whenever v3d kernel-driver supports multisync extension, use it to allow add multiple semaphores as csd job dependency. Signed-off-by:
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK