Skip to content

virgl: add local cache for resource idleness

Chia-I Wu requested to merge olv/mesa:virgl-cheaper-wait into master

This depends on !838 (merged) and is forked from !908 (merged).

After the two MRs, consecutive transfers to an idle resource results in multiple resource_is_busy calls. This first two commits save us the kernel round trips.

The last commit treats newly created resources as idle. It prevents us from triggering !838 (merged) and !908 (merged) unnecessarily.

Take glbench buffer_upload_sub_dynamic_array_32 for example,

MR 838                                           750.00 mbytes_sec (this hits the buggy virgl_buffer_transfer_extend path)
MR 838 with the buggy transfer_extend removed     28.27 mbytes_sec
same as above, plus this MR                      318.76 mbytes_sec

There was also a ~1% improvement to Unigine Valley, but that was measured before the recent changes. I am not sure if that still holds true.

CC @gurchetansingh @afrantzis

Edited by Chia-I Wu

Merge request reports