-
Notifications
You must be signed in to change notification settings - Fork 0
Linux and OS X support
Linux and OS X support is definitely important, although until now it's not been enough of a priority to have much active development dedicated to it (since that time has been limited). There are other debuggers whose primary focus is linux/OS X support, such as vogl that you should also check out.
As it stands, the core codebase (the renderdoc project) compiles under linux, and OS X support shouldn't be too hard past that I'd hope. The main problem is the UI (and of course more mature OpenGL support but that's platform independent).
Capturing on linux is supported, use renderdoccmd with the --capture parameter. The capture can then be replayed on linux just as a preview with renderdoccmd, and pending a native UI the capture can be copied to windows and loaded in the normal UI. It is possible to replay the capture over the network so it replays on linux, not windows, to replicate any particular driver behaviour - but that's a little fiddly and undocumented at the moment.
Currently the UI is written in C# using winforms. In theory this configuration is supported by mono on linux and OS X. In practice this won't just magically work and will require some work to support.
The UI code is separated from the main renderdoc project where the guts of the code live, so it really is only the presentation layer that needs to be handled - this at least limits the amount of code that is problematic.
There is going to be a bunch of work required no matter what for a cross-platform UI, and there are two main ways to go
In practice the only realistic option is to make a native (or deliberately cross-platform) UI. There are a few options for this, primarily Qt and perhaps wxWidgets.
Since it's not really practical to develop two UIs side-by-side, we will be switching entirely to a UI built in e.g. Qt. The UIs can be build in parallel until a point where they are equally capable, and then the .NET UI can be deprecated - it could be maintained in a fork for example.
Details of the new UI are available on this page.
(see history on this page for the discussion of other options that were dismissed).