Virgl asnychronous command stream submission

Virgl testsing of performance improvement

HTML result view exported from: https://openbenchmarking.org/result/2204226-NE-2203300NE31&gru.

Virgl asnychronous command stream submissionProcessorMotherboardChipsetMemoryDiskGraphicsAudioMonitorNetworkOSKernelDisplay ServerOpenGLCompilerFile-SystemScreen ResolutionSystem LayerBaselineAsnychronous command emission and early flushAsync transfer fixedAsync transfer query fixed tooAsync transfer query fixed too againAsync transfer fixed staging tooAsync transfer fixed staging too disable dpmsAsync transfer fixed staging too -dpmsAsync transfer + write-only fencesAsync transfer + write-only fences 2Async transfer + write-only fences -reallyAsync transfer + write-only fences fixedAsync transfer + write-only fences fixed 2Baseline-redoBaseline-after-update-2022-04-22Baseline-after-update-2022-04-22-second-go8 x QEMU Virtual 2.5+ (8 Cores)QEMU Standard PC (Q35 + ICH9 2009) (rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org BIOS)Intel 82G33/G31/P35/P31 + ICH932GB97GBvirgl 12288GBIntel 82801IQEMU MonitorRed Hat Virtio deviceGentoo/Linux5.15.11-gentoo-x86_64 (x86_64)X Server 1.20.144.3 Mesa 22.0.0-devel (git-a167e8ecc8) (LLVM 13.0.0 D...)GCC 11.2.0 + LLVM 13.0.0ext41440x900QEMU4.3 Mesa 22.0.0-devel (git-55482b8164) (LLVM 13.0.0 D...)4.3 Mesa 22.0.0-devel (git-47fee50e3e) (LLVM 13.0.0 D...)1024x7684.3 Mesa 22.0.0-devel (git-692c5348f2) (LLVM 13.0.0 D...)4.3 Mesa 22.0.0-devel (git-b8ec3a5274) (LLVM 13.0.0 D...)X Server 1.21.1.34.3 Mesa 21.3.5 (LLVM 13.0.1 D...)4.3 Mesa 22.1.0-devel (git-78629f6d70) (LLVM 13.0.1 D...)4.3 Mesa 22.1.0-devel (git-f54afaa617) (LLVM 13.0.1 D...)4.3 Mesa 22.1.0-devel (git-007cb02db9) (LLVM 13.0.1 D...)Intel Core i7-1165G7 (8 Cores)ChromiumOS crosvmIntel 440FX 82441FX PMC16GB800GBvirgl Intel Xe TGL GT2Arch rolling5.15.16-01331-gb6c5afc81904 (x86_64)4.5 Mesa 22.2.0-devel (git-ca40bad84a)GCC 11.2.0 + LLVM 13.0.1btrfs1920x1080dockerOpenBenchmarking.orgProcessor Details- Baseline: CPU Microcode: 0x1000065- Asnychronous command emission and early flush: CPU Microcode: 0x1000065- Async transfer fixed: CPU Microcode: 0x1000065- Async transfer query fixed too: CPU Microcode: 0x1000065- Async transfer query fixed too again: CPU Microcode: 0x1000065- Async transfer fixed staging too: CPU Microcode: 0x1000065- Async transfer fixed staging too disable dpms: CPU Microcode: 0x1000065- Async transfer fixed staging too -dpms: CPU Microcode: 0x1000065- Async transfer + write-only fences: CPU Microcode: 0x1000065- Async transfer + write-only fences 2: CPU Microcode: 0x1000065- Async transfer + write-only fences -really: CPU Microcode: 0x1000065- Async transfer + write-only fences fixed: CPU Microcode: 0x1000065- Async transfer + write-only fences fixed 2: CPU Microcode: 0x1000065- Baseline-redo: CPU Microcode: 0x1000065- Baseline-after-update-2022-04-22: CPU Microcode: 0x1- Baseline-after-update-2022-04-22-second-go: CPU Microcode: 0x1Python Details- Baseline: Python 3.9.9- Asnychronous command emission and early flush: Python 3.9.9- Async transfer fixed: Python 3.9.9- Async transfer query fixed too: Python 3.9.9- Async transfer query fixed too again: Python 3.9.9- Async transfer fixed staging too: Python 3.9.9- Async transfer fixed staging too disable dpms: Python 3.9.9- Async transfer fixed staging too -dpms: Python 3.9.9- Async transfer + write-only fences: Python 3.9.9- Async transfer + write-only fences 2: Python 3.9.9- Async transfer + write-only fences -really: Python 3.9.9- Async transfer + write-only fences fixed: Python 3.9.9- Async transfer + write-only fences fixed 2: Python 3.9.9- Baseline-redo: Python 3.9.9- Baseline-after-update-2022-04-22: Python 3.10.4- Baseline-after-update-2022-04-22-second-go: Python 3.10.4Security Details- Baseline: itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Not affected + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full AMD retpoline STIBP: disabled RSB filling + srbds: Not affected + tsx_async_abort: Not affected- Asnychronous command emission and early flush: itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Not affected + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full AMD retpoline STIBP: disabled RSB filling + srbds: Not affected + tsx_async_abort: Not affected- Async transfer fixed: itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Not affected + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full AMD retpoline STIBP: disabled RSB filling + srbds: Not affected + tsx_async_abort: Not affected- Async transfer query fixed too: itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Not affected + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full AMD retpoline STIBP: disabled RSB filling + srbds: Not affected + tsx_async_abort: Not affected- Async transfer query fixed too again: itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Not affected + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full AMD retpoline STIBP: disabled RSB filling + srbds: Not affected + tsx_async_abort: Not affected- Async transfer fixed staging too: itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Not affected + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full AMD retpoline STIBP: disabled RSB filling + srbds: Not affected + tsx_async_abort: Not affected- Async transfer fixed staging too disable dpms: itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Not affected + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full AMD retpoline STIBP: disabled RSB filling + srbds: Not affected + tsx_async_abort: Not affected- Async transfer fixed staging too -dpms: itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Not affected + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full AMD retpoline STIBP: disabled RSB filling + srbds: Not affected + tsx_async_abort: Not affected- Async transfer + write-only fences: itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Not affected + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full AMD retpoline STIBP: disabled RSB filling + srbds: Not affected + tsx_async_abort: Not affected- Async transfer + write-only fences 2: itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Not affected + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full AMD retpoline STIBP: disabled RSB filling + srbds: Not affected + tsx_async_abort: Not affected- Async transfer + write-only fences -really: itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Not affected + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full AMD retpoline STIBP: disabled RSB filling + srbds: Not affected + tsx_async_abort: Not affected- Async transfer + write-only fences fixed: itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Not affected + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full AMD retpoline STIBP: disabled RSB filling + srbds: Not affected + tsx_async_abort: Not affected- Async transfer + write-only fences fixed 2: itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Not affected + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full AMD retpoline STIBP: disabled RSB filling + srbds: Not affected + tsx_async_abort: Not affected- Baseline-redo: itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Not affected + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Full AMD retpoline STIBP: disabled RSB filling + srbds: Not affected + tsx_async_abort: Not affected- Baseline-after-update-2022-04-22: itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Mitigation of SSB disabled via prctl and seccomp + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Enhanced IBRS IBPB: conditional RSB filling + srbds: Not affected + tsx_async_abort: Not affected- Baseline-after-update-2022-04-22-second-go: itlb_multihit: Not affected + l1tf: Not affected + mds: Not affected + meltdown: Not affected + spec_store_bypass: Mitigation of SSB disabled via prctl and seccomp + spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization + spectre_v2: Mitigation of Enhanced IBRS IBPB: conditional RSB filling + srbds: Not affected + tsx_async_abort: Not affectedKernel Details- Baseline-after-update-2022-04-22, Baseline-after-update-2022-04-22-second-go: Transparent Huge Pages: madviseEnvironment Details- Baseline-after-update-2022-04-22, Baseline-after-update-2022-04-22-second-go: MESA_REPO=git@gitlab.freedesktop.org:gerddie/mesa.git MESA_BRANCH=async-submit-only MESA_SOURCE_PREFIX=/home/chronos/mesa

Virgl asnychronous command stream submissionopenarena: 1600 x 900unigine-heaven: 1600 x 900 - Fullscreen - OpenGLunigine-sanctuary: 1600 x 900 - Fullscreenunigine-tropics: 1600 x 900 - Fullscreenunigine-valley: 1600 x 900 - Fullscreen - OpenGLxonotic: 1024 x 768 - Ultimategputest: 1600 x 900glmark2: 1024 x 768BaselineAsnychronous command emission and early flushAsync transfer fixedAsync transfer query fixed tooAsync transfer query fixed too againAsync transfer fixed staging tooAsync transfer fixed staging too disable dpmsAsync transfer fixed staging too -dpmsAsync transfer + write-only fencesAsync transfer + write-only fences 2Async transfer + write-only fences -reallyAsync transfer + write-only fences fixedAsync transfer + write-only fences fixed 2Baseline-redoBaseline-after-update-2022-04-22Baseline-after-update-2022-04-22-second-go301.1162.689213.194168.360160.499250.4787894133694672412.6163.886357.740232.878159.183268.3132810147414640365.5165.368397.093235.961161.147271.1263553146184613392.5163.478408.487233.080159.120270.1677618148594517399.9164.351510.694254.427159.482271.2741134147414480358.0157.481374.1164.467347.941243.035163.096272.2699109148164516284.0163.535231.852355.6160.076424.551243.902341.6158.384455.496237.928153.979265.3944857147234503284.5167.388251.471179.654156.760243.3085348130954409120.919.7210123.419.912047.769320.279660.53861061041411OpenBenchmarking.org

OpenArena

Resolution: 1600 x 900

OpenBenchmarking.orgFrames Per Second, More Is BetterOpenArena 0.8.8Resolution: 1600 x 900BaselineAsnychronous command emission and early flushAsync transfer fixedAsync transfer query fixed tooAsync transfer query fixed too againAsync transfer fixed staging tooAsync transfer fixed staging too -dpmsAsync transfer + write-only fences 2Async transfer + write-only fences fixedAsync transfer + write-only fences fixed 2Baseline-redoBaseline-after-update-2022-04-22Baseline-after-update-2022-04-22-second-go90180270360450SE +/- 1.00, N = 3SE +/- 3.32, N = 3SE +/- 0.82, N = 3SE +/- 5.07, N = 3SE +/- 2.90, N = 3SE +/- 4.39, N = 4SE +/- 1.40, N = 3SE +/- 3.07, N = 3SE +/- 1.80, N = 3SE +/- 2.13, N = 15SE +/- 2.73, N = 3SE +/- 7.02, N = 15SE +/- 8.37, N = 12301.1412.6365.5392.5399.9358.0374.1284.0355.6341.6284.5120.9123.4MIN: 1MIN: 1MIN: 1MIN: 1MIN: 1MIN: 1MIN: 1MIN: 1MIN: 1MIN: 2MIN: 2

Unigine Heaven

Resolution: 1600 x 900 - Mode: Fullscreen - Renderer: OpenGL

OpenBenchmarking.orgFrames Per Second, More Is BetterUnigine Heaven 4.0Resolution: 1600 x 900 - Mode: Fullscreen - Renderer: OpenGLBaselineAsnychronous command emission and early flushAsync transfer fixedAsync transfer query fixed tooAsync transfer query fixed too againAsync transfer fixed staging tooAsync transfer fixed staging too -dpmsAsync transfer + write-only fences 2Async transfer + write-only fences fixedAsync transfer + write-only fences fixed 2Baseline-redoBaseline-after-update-2022-04-22Baseline-after-update-2022-04-22-second-go4080120160200SE +/- 0.59, N = 3SE +/- 0.15, N = 3SE +/- 0.16, N = 3SE +/- 0.29, N = 3SE +/- 0.05, N = 3SE +/- 1.64, N = 9SE +/- 0.24, N = 3SE +/- 0.86, N = 3SE +/- 0.49, N = 3SE +/- 0.05, N = 3SE +/- 0.45, N = 3SE +/- 0.22, N = 9SE +/- 0.21, N = 5162.69163.89165.37163.48164.35157.48164.47163.54160.08158.38167.3919.7219.91

Unigine Sanctuary

Resolution: 1600 x 900 - Mode: Fullscreen

OpenBenchmarking.orgFrames Per Second, More Is BetterUnigine Sanctuary 2.3Resolution: 1600 x 900 - Mode: FullscreenBaselineAsnychronous command emission and early flushAsync transfer fixedAsync transfer query fixed tooAsync transfer query fixed too againAsync transfer fixed staging too -dpmsAsync transfer + write-only fences 2Async transfer + write-only fences fixedAsync transfer + write-only fences fixed 2Baseline-redo110220330440550SE +/- 21.79, N = 9SE +/- 26.47, N = 9SE +/- 33.13, N = 12SE +/- 31.26, N = 12SE +/- 2.10, N = 3SE +/- 29.18, N = 12SE +/- 20.99, N = 12SE +/- 16.15, N = 12SE +/- 4.69, N = 3SE +/- 23.07, N = 12213.19357.74397.09408.49510.69347.94231.85424.55455.50251.47

Unigine Tropics

Resolution: 1600 x 900 - Mode: Fullscreen

OpenBenchmarking.orgFrames Per Second, More Is BetterUnigine Tropics 1.3Resolution: 1600 x 900 - Mode: FullscreenBaselineAsnychronous command emission and early flushAsync transfer fixedAsync transfer query fixed tooAsync transfer query fixed too againAsync transfer fixed staging too -dpmsAsync transfer + write-only fences fixedAsync transfer + write-only fences fixed 2Baseline-redoBaseline-after-update-2022-04-22-second-go60120180240300SE +/- 5.19, N = 10SE +/- 8.02, N = 9SE +/- 5.08, N = 12SE +/- 5.55, N = 11SE +/- 3.45, N = 3SE +/- 5.09, N = 12SE +/- 4.11, N = 12SE +/- 4.69, N = 12SE +/- 0.97, N = 3SE +/- 0.50, N = 12168.36232.88235.96233.08254.43243.04243.90237.93179.6547.77

Unigine Valley

Resolution: 1600 x 900 - Mode: Fullscreen - Renderer: OpenGL

OpenBenchmarking.orgFrames Per Second, More Is BetterUnigine Valley 1.0Resolution: 1600 x 900 - Mode: Fullscreen - Renderer: OpenGLBaselineAsnychronous command emission and early flushAsync transfer fixedAsync transfer query fixed tooAsync transfer query fixed too againAsync transfer fixed staging too -dpmsAsync transfer + write-only fences fixed 2Baseline-redoBaseline-after-update-2022-04-22-second-go4080120160200SE +/- 0.36, N = 3SE +/- 1.51, N = 3SE +/- 0.46, N = 3SE +/- 0.75, N = 3SE +/- 0.54, N = 3SE +/- 0.59, N = 3SE +/- 0.78, N = 3SE +/- 0.85, N = 3SE +/- 0.22, N = 12160.50159.18161.15159.12159.48163.10153.98156.7620.28

Xonotic

Resolution: 1024 x 768 - Effects Quality: Ultimate

OpenBenchmarking.orgFrames Per Second, More Is BetterXonotic 0.8.2Resolution: 1024 x 768 - Effects Quality: UltimateBaselineAsnychronous command emission and early flushAsync transfer fixedAsync transfer query fixed tooAsync transfer query fixed too againAsync transfer fixed staging too -dpmsAsync transfer + write-only fences fixed 2Baseline-redoBaseline-after-update-2022-04-22-second-go60120180240300SE +/- 0.53, N = 3SE +/- 0.46, N = 3SE +/- 0.31, N = 3SE +/- 1.16, N = 3SE +/- 1.63, N = 3SE +/- 1.66, N = 3SE +/- 2.36, N = 3SE +/- 0.65, N = 3SE +/- 0.74, N = 4250.48268.31271.13270.17271.27272.27265.39243.3160.54MIN: 40 / MAX: 669MIN: 39 / MAX: 703MIN: 42 / MAX: 724MIN: 38 / MAX: 751MIN: 39 / MAX: 715MIN: 40 / MAX: 729MIN: 42 / MAX: 687MIN: 40 / MAX: 651MIN: 20 / MAX: 102

GpuTest

Resolution: 1600 x 900

OpenBenchmarking.orgPoints, More Is BetterGpuTest 0.7.0Resolution: 1600 x 900BaselineAsnychronous command emission and early flushAsync transfer fixedAsync transfer query fixed tooAsync transfer query fixed too againAsync transfer fixed staging too -dpmsAsync transfer + write-only fences fixed 2Baseline-redoBaseline-after-update-2022-04-22-second-go3K6K9K12K15KSE +/- 107.53, N = 3SE +/- 52.23, N = 3SE +/- 77.42, N = 3SE +/- 4.51, N = 3SE +/- 38.84, N = 3SE +/- 36.56, N = 3SE +/- 24.29, N = 3SE +/- 102.52, N = 15SE +/- 9.82, N = 1513369147411461814859147411481614723130951041

GLmark2

Resolution: 1024 x 768

OpenBenchmarking.orgScore, More Is BetterGLmark2 2021.08.30Resolution: 1024 x 768BaselineAsnychronous command emission and early flushAsync transfer fixedAsync transfer query fixed tooAsync transfer query fixed too againAsync transfer fixed staging too -dpmsAsync transfer + write-only fences fixed 2Baseline-redoBaseline-after-update-2022-04-22-second-go1000200030004000500046724640461345174480451645034409411

OpenArena

Resolution: 1600 x 900 - Total Frame Time

OpenBenchmarking.orgMilliseconds, Fewer Is BetterOpenArena 0.8.8Resolution: 1600 x 900 - Total Frame TimeBaselineAsnychronous command emission and early flushAsync transfer fixedAsync transfer query fixed tooAsync transfer query fixed too againAsync transfer fixed staging tooAsync transfer fixed staging too -dpmsAsync transfer + write-only fences 2Async transfer + write-only fences fixedAsync transfer + write-only fences fixed 2Baseline-redoBaseline-after-update-2022-04-22Baseline-after-update-2022-04-22-second-go1020304050Min: 1 / Avg: 3.35 / Max: 12Min: 1 / Avg: 2.44 / Max: 12Min: 1 / Avg: 2.74 / Max: 12Min: 1 / Avg: 2.55 / Max: 9Min: 1 / Avg: 2.52 / Max: 12Min: 1 / Avg: 2.8 / Max: 17Min: 1 / Avg: 2.68 / Max: 12Min: 1 / Avg: 3.57 / Max: 12Min: 1 / Avg: 2.77 / Max: 11Min: 1 / Avg: 2.92 / Max: 11Min: 1 / Avg: 3.57 / Max: 12Min: 2 / Avg: 7.01 / Max: 41Min: 2 / Avg: 7.38 / Max: 47


Phoronix Test Suite v10.8.4