Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added RunTime set of images that are slimmer and a jupyter bonus #68

Open
wants to merge 133 commits into
base: main
Choose a base branch
from

Conversation

aloysbaillet
Copy link
Contributor

This is a "working draft" of a new set of ASWF docker images for "run-time" instead of CI. They are slimmer and only contain the build artifacts without any compiler. rt-vfxall is around 1.8GB when ci-vfxall is 2.6GB.
I've added a rt-vfxall-jupyter that contains a Jupyter notebook that is able to access full USD and GPUs, as shown in this screenshot:
usdrecord-in-jupyter
(To run: docker run -it --rm --gpus=all -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw -v ~/Downloads/Kitchen_set:/home/jovyan/work -p 8888:8888 aswftesting/rt-vfxall-jupyter:2020 )
I feel that these images should be quite generally useful as well, and probably easier to understand than the CI ones.

Any thoughts?

jfpanisset
jfpanisset previously approved these changes Aug 15, 2020
Copy link
Contributor

@jfpanisset jfpanisset left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems super useful, and USD in a Jupyter notebook is definitely very cool.

@aloysbaillet
Copy link
Contributor Author

I've been experimenting with adding a real Xorg instance inside the docker container, with an extra xpra x server with VirtualGL in the middle. This in theory should allow a headless cloud machine to have hardware-accelerated OpenGL Xorg, with live redirection of the rendered images to a web server via xpra... See https://xpra.org/trac/wiki/Usage/OpenGL for reference...
This could enable live interaction with usdview from a web browser (in theory...), but that still requires to give the docker container access to a /dev/ttyX device which might not always be possible...

I've been trying to research ways of starting Xorg without TTY but so far no luck...
The xpra+virtualgl part could be optional for the CI use case though as the running Xorg should have a dummy monitor attached, but for CodeBuild that might not be OK until we figure out a way to start Xorg without /dev/tty1...

@jfpanisset jfpanisset marked this pull request as ready for review August 22, 2020 05:23
jfpanisset
jfpanisset previously approved these changes Aug 22, 2020
Copy link
Contributor

@jfpanisset jfpanisset left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, the xpra stuff is intriguing, I had not heard about it before. Running Xorg inside of a container seems like one of those "why would you want to do that?" requirements since in most scenarios you have control over how you start the container, and are able to run X11 outside the container(s). I wonder if there's a way to get xpra to forward pixels being rendered to a surface allocated via EGL without having X11 involved?

@aloysbaillet
Copy link
Contributor Author

I'm going to try what Qt can do with EGL and without X11... having Qt to abstract things around might be quite useful with PySide and Jupyter (see the usdrecord snippet that needs a Qt app and a QGLWidget).

KelSolaar and others added 19 commits February 13, 2021 23:04
Signed-off-by: Thomas Mansencal <[email protected]>
Signed-off-by: Simran Brucherseifer <[email protected]>
Signed-off-by: Simran Spiller <[email protected]>
Signed-off-by: Simran Brucherseifer <[email protected]>
Signed-off-by: Simran Spiller <[email protected]>
Signed-off-by: Simran Spiller <[email protected]>
Signed-off-by: Simran Spiller <[email protected]>
Signed-off-by: Simran Spiller <[email protected]>
Signed-off-by: Aloys Baillet <[email protected]>
Signed-off-by: Aloys Baillet <[email protected]>
Signed-off-by: Aloys Baillet <[email protected]>
Signed-off-by: Aloys Baillet <[email protected]>
aloysbaillet and others added 23 commits February 13, 2021 23:45
Signed-off-by: Aloys Baillet <[email protected]>
Signed-off-by: Aloys Baillet <[email protected]>
Signed-off-by: Aloys Baillet <[email protected]>
Signed-off-by: Aloys Baillet <[email protected]>
Signed-off-by: Aloys Baillet <[email protected]>
Signed-off-by: Aloys Baillet <[email protected]>
If you try to use shell scripts to install packages directly, e.g. in a
location other than /usr/local, a couple of them cause problems.

In build_pyside.sh, don't try to create /tmp/qt5temp/bin/qt.conf if the
user has not in fact moved Qt to /tmp/qt5temp.

In build_usd.sh, specify GLEW_LOCATION explicitly.

Signed-off-by: Geoff Levner <[email protected]>
Signed-off-by: Aloys Baillet <[email protected]>
Signed-off-by: Aloys Baillet <[email protected]>
Signed-off-by: Aloys Baillet <[email protected]>
Signed-off-by: Aloys Baillet <[email protected]>
Signed-off-by: Aloys Baillet <[email protected]>
Signed-off-by: Aloys Baillet <[email protected]>
Signed-off-by: Aloys Baillet <[email protected]>
Copy link
Contributor

@jfpanisset jfpanisset left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This review might get invalidated when you update this branch, but this still looks like really useful functionality. Does it need some notes in README.md to explain the purpose of CI vs RT images?

@aloysbaillet
Copy link
Contributor Author

Thanks JF, indeed I'll make sure I add more info in the readme once the images are ready!
I haven't had much time to experiment further, but I wanted to make sure that the branch didn't keep diverging from the main one, I hope I'll try a few more things soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants