Virgl asnychronous command stream submission

Virgl testsing of performance improvement

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

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: [email protected]:gerddie/mesa.git MESA_BRANCH=async-submit-only MESA_SOURCE_PREFIX=/home/chronos/mesa

Virgl asnychronous command stream submissionglmark2: 1024 x 768gputest: 1600 x 900openarena: 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 - UltimateBaselineAsnychronous 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-go467213369301.1162.689213.194168.360160.499250.4787894464014741412.6163.886357.740232.878159.183268.3132810461314618365.5165.368397.093235.961161.147271.1263553451714859392.5163.478408.487233.080159.120270.1677618448014741399.9164.351510.694254.427159.482271.2741134358.0157.481451614816374.1164.467347.941243.035163.096272.2699109284.0163.535231.852355.6160.076424.551243.902450314723341.6158.384455.496237.928153.979265.3944857440913095284.5167.388251.471179.654156.760243.3085348120.919.72104111041123.419.912047.769320.279660.5386106OpenBenchmarking.org

GLmark2

Resolution: 1024 x 768

OpenBenchmarking.orgScore, More Is BetterGLmark2 2021.08.30Resolution: 1024 x 768Baseline-after-update-2022-04-22-second-goBaseline-redoAsync transfer query fixed too againAsync transfer + write-only fences fixed 2Async transfer fixed staging too -dpmsAsync transfer query fixed tooAsync transfer fixedAsnychronous command emission and early flushBaseline1000200030004000500041144094480450345164517461346404672

GpuTest

Resolution: 1600 x 900

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

OpenArena

Resolution: 1600 x 900

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

OpenArena

Resolution: 1600 x 900 - Total Frame Time

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

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: OpenGLBaseline-after-update-2022-04-22Baseline-after-update-2022-04-22-second-goAsync transfer fixed staging tooAsync transfer + write-only fences fixed 2Async transfer + write-only fences fixedBaselineAsync transfer query fixed tooAsync transfer + write-only fences 2Asnychronous command emission and early flushAsync transfer query fixed too againAsync transfer fixed staging too -dpmsAsync transfer fixedBaseline-redo4080120160200SE +/- 0.22, N = 9SE +/- 0.21, N = 5SE +/- 1.64, N = 9SE +/- 0.05, N = 3SE +/- 0.49, N = 3SE +/- 0.59, N = 3SE +/- 0.29, N = 3SE +/- 0.86, N = 3SE +/- 0.15, N = 3SE +/- 0.05, N = 3SE +/- 0.24, N = 3SE +/- 0.16, N = 3SE +/- 0.45, N = 319.7219.91157.48158.38160.08162.69163.48163.54163.89164.35164.47165.37167.39

Unigine Sanctuary

Resolution: 1600 x 900 - Mode: Fullscreen

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

Unigine Tropics

Resolution: 1600 x 900 - Mode: Fullscreen

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

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: OpenGLBaseline-after-update-2022-04-22-second-goAsync transfer + write-only fences fixed 2Baseline-redoAsync transfer query fixed tooAsnychronous command emission and early flushAsync transfer query fixed too againBaselineAsync transfer fixedAsync transfer fixed staging too -dpms4080120160200SE +/- 0.22, N = 12SE +/- 0.78, N = 3SE +/- 0.85, N = 3SE +/- 0.75, N = 3SE +/- 1.51, N = 3SE +/- 0.54, N = 3SE +/- 0.36, N = 3SE +/- 0.46, N = 3SE +/- 0.59, N = 320.28153.98156.76159.12159.18159.48160.50161.15163.10

Xonotic

Resolution: 1024 x 768 - Effects Quality: Ultimate

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


Phoronix Test Suite v10.8.5