what’s new in the virtual world? - x.org developer's ... · what’s new in the virtual...

21
Open First What’s new in the virtual world? XDC 2018 Elie Tournier Collabora

Upload: others

Post on 09-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

Open First

What’s new in the virtual world?XDC 2018

Elie TournierCollabora

Page 2: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

● What is virgl?● Evolution of virgl through the year.● The infrastructure, GitLab and CI.● Plan for the future.● Q&A and discussion.

XDC 2018 2

Summary

Page 3: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

What is virgl?History● Dave Airlie side project.● Virtual 3D GPU for QEMU.● Security in mind.● Base on Gallium architecture.● https://www.youtube.com/watch?v=rPeMrmeLTig

● Reach production level.

XDC 2018 3

Page 4: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

What is virgl?Stack

XDC 2018 4

QEMUvirglrenderer

virtio-gpuHost

Application

Kernel virtio-gpu

Mesa virgl

Guest

OpenGL

Page 5: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

What is virgl?IR

XDC 2018 5

QEMUvirglrenderer

virtio-gpuHost

Application

Kernel virtio-gpu

Mesa virgl

Guest

OpenGL

Page 6: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

What is virgl?Resource allocation (part 1/2)● Guest virtio-gpu driver allocates resource.● Guest driver creates resources (RESOURCE_CREATE_*).● QEMU or virglrenderer creates host resource.● Guest sets up backing storage

(RESOURCE_ATTACH_BACKING).● QEMU creates a iovec for the guest resource.

XDC 2018 6

Page 7: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

What is virgl?Resource allocation (part 2/2)● Guest writes data to resource.● Guest requests a transfer (TRANSFER_TO_HOST_*).● QEMU or virglrenderer copy data from guest resource to host

resource● Guest can use the resource. \o/

XDC 2018 7

Page 8: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

Project status at last XDC

● OpenGL 3.0 support.

● OpenGL backend only.

XDC 2018 8

Page 9: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

Current status

● OpenGL 4.3 support.● OpenGL ES 3.2 support.

● OpenGL and OpenGL ES backend.– Require SDL to create the GLES context.

XDC 2018 9

Page 10: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

Current status

● GLES 2 on GL and GLES: 0 failure.● GLES 3 on GLES: 3 failures.● GLES 3.2 on GL and GLES: 0 failure, 3397 not supported.

● State leaks when we randomized the CTS.

XDC 2018 10

Page 11: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

Current statusHow did we achieve these results?● Heavy use of host GPU features inside the guest.

– Caps initialized at launch.● Workarounds for OpenGL ES.

– Modify shader header.– GLES doesn’t support glDrawBuffer...

● Add formats support.

XDC 2018 11

Page 12: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

Debugging

● Where the f*&% is my issue?

XDC 2018 12

Page 13: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

Performance on Kabylake

XDC 2018 13

Benchmark Host QEMU guest Vtest guest

Unigine Valley (1024x768, Q:High, AA:2x)

31.4 fps (17.9, 47.9) 1.0 fps (1.0, 1.5) 12.3 fps (8.4,17.5)

Unigine Heaven (1024x768, Q:High, Tess: Normal, AA:2x)

37.3 fps (8.3, 64.1) 2.1 fps (1.5, 3.9) 13.4 fps (5.8, 24.9)

Gputest Pixmark Piano Windowed: 1024x640

7 fps 6 fps 6 fps

https://lists.freedesktop.org/archives/virglrenderer-devel/2018-September/001589.html

Page 14: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

The infrastructure

● Eavy use of Freedesktop GitLab.– Pull request.– Bug report.

● Still have some discussions over the ML.

XDC 2018 14

Page 15: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

The infrastructure

● CI in progress– https://gitlab.freedesktop.org/virgl/virglrenderer/

merge_requests/13

XDC 2018 15

Page 16: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

Plans for the future

● Release and improve the CI.● Fix the remaining Piglit/CTS failures.● Improve security of the project.● Add coherent memory.

XDC 2018 16

Page 17: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

Plans for the future

● Vulkan support.– Started by Nathan Gauër, GSoC student.– https://github.com/Keenuts/vulkan-virgl

XDC 2018 17

Page 18: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

XDC 2018 18

Demo ● What is a talk without a demo?

Page 19: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

XDC 2018 19

Join the party● https://gitlab.freedesktop.org/virgl/virglrenderer● #virgil3d● [email protected]

Page 20: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year
Page 21: What’s new in the virtual world? - X.Org Developer's ... · What’s new in the virtual world? XDC 2018 Elie Tournier Collabora What is virgl? Evolution of virgl through the year

Thank you!