tag:blogger.com,1999:blog-7395797351911594965.post7670896988135920012..comments2024-03-24T23:19:53.674-07:00Comments on Richard Geldreich's Blog: VOGL OpenGL Tracer/Debugger - Bonus ContentRich Geldreichhttp://www.blogger.com/profile/14358203173986928600noreply@blogger.comBlogger20125tag:blogger.com,1999:blog-7395797351911594965.post-10362135396968985612014-10-04T10:57:49.931-07:002014-10-04T10:57:49.931-07:00This comment has been removed by a blog administrator.Anonymoushttps://www.blogger.com/profile/03719219653626870591noreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-23551555176181224382014-06-13T11:06:53.994-07:002014-06-13T11:06:53.994-07:00This comment has been removed by a blog administrator.king khanhttps://www.blogger.com/profile/12955786485521058781noreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-89265691241759633962014-06-10T02:57:23.336-07:002014-06-10T02:57:23.336-07:00This comment has been removed by a blog administrator.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-10507959558872111262014-02-26T03:35:06.038-08:002014-02-26T03:35:06.038-08:00Hi Rich, will you be there at GDC in San-Francisco...Hi Rich, will you be there at GDC in San-Francisco this year? I'm interested in VOGL stuff a lot.Vladimirhttps://www.blogger.com/profile/09832042913923010066noreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-25857079023430589412014-02-25T19:19:29.523-08:002014-02-25T19:19:29.523-08:00Hi Rich,
We on Mozilla Gfx team are really intere...Hi Rich,<br /><br />We on Mozilla Gfx team are really interested in using VOGL to help us debug our OGL usage. Do you guys have an estimate and when VOGL might be released, so we can start hacking on it?<br /><br />thanks<br />- DanDan Glastonburyhttps://www.blogger.com/profile/15510316097015568939noreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-31095621619006948382014-01-21T04:04:54.283-08:002014-01-21T04:04:54.283-08:00Will your debugger support 'attach to running ...Will your debugger support 'attach to running process' feature? It is very usable for big apps you talking about.Anonymoushttps://www.blogger.com/profile/15950379275821450165noreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-26832963896388956492014-01-20T23:14:44.995-08:002014-01-20T23:14:44.995-08:00apitrace supports full-stream tracing only, which ...apitrace supports full-stream tracing only, which is fine for small GL apps but is less than optimal when trying to debug large GL games that can take 60-90 secs to load with additional time (dozens of secs up to several minutes) needed to get a repro case to show up. Playing back these large traces, sometimes dozens (even hundreds) of times, to narrow down bugs is not enjoyable or productive at all. There's a trim command in there but I gave up trying to use it after trying to trim a small TF2 trace and letting it go overnight (!).<br /><br />Around a year ago Peter Lohrmann (working for Valve) actually spent several months modifying apitrace to do the things we need to effectively debug big GL apps: restorable state snapshots, single/multi-frame capturing while tracing or replaying, and efficient/usable trace trimming. His patches are out there, but I believe they were only tested on Source1 GL apps. This first attempt taught us a lot about the problem domain. Also, at the time apitrace was not able to reliably replay Source1 GL apps such as L4D2 without randomly diverging. Peter fixed these problems.<br /><br />So after studying apitrace for quite a bit, and contributing back some fixes/patches, we realized the real problem we needed to solve (restorable state snapshotting) wasn't the focus of apitrace's architecture. So we didn't have a lot to loose by dumping it and starting from scratch. Also, apitrace's usage of Python scripts to auto-gen massive amounts of C/C++ code was a real turn-off, and we didn't care about D3D or ES debugging. In hindsight, I think we made the right decision because we've spent far more dev time on the state snapshot/restore problem than tracing.<br />Rich Geldreichhttps://www.blogger.com/profile/14358203173986928600noreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-34692310379653511822014-01-19T00:12:50.207-08:002014-01-19T00:12:50.207-08:00Will it work with JOGL, I.e. Java OpenGL program...Will it work with JOGL, I.e. Java OpenGL programs? Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-58077198326597805072014-01-17T23:00:23.851-08:002014-01-17T23:00:23.851-08:00>We're going completely open source
Sounds ...>We're going completely open source<br />Sounds great. If you will do good interface for shader debugging entry points, I can port pieces of my code which implements your 'Really long term' and already working.Anonymoushttps://www.blogger.com/profile/15950379275821450165noreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-8301148333674044912014-01-17T11:56:40.124-08:002014-01-17T11:56:40.124-08:00That's sounding a little complicated. Will I b...That's sounding a little complicated. Will I be able to just download the source code, type "cmake," and get it to compile? Unknownhttps://www.blogger.com/profile/11588431987230601243noreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-20070669218659766752014-01-17T11:45:40.661-08:002014-01-17T11:45:40.661-08:00With a name like that, it's going to have a bi...With a name like that, it's going to have a bird for the logo, right?Wyatthttps://www.blogger.com/profile/00070594207338534644noreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-81368152960518989402014-01-17T05:17:15.206-08:002014-01-17T05:17:15.206-08:00I'm wondering what is the reasoning behind the...I'm wondering what is the reasoning behind the decision to create a new debugger from scratch rather than improving apitrace. From the description they both seem similar.Anonymoushttps://www.blogger.com/profile/18123756203492639202noreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-17669175933183538172014-01-17T04:28:48.469-08:002014-01-17T04:28:48.469-08:00badass!
Dont forget about webgl and egl/gles supp...badass!<br /><br />Dont forget about webgl and egl/gles support too!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-63883100552336530352014-01-17T01:31:25.071-08:002014-01-17T01:31:25.071-08:00> Mike Sartain or I will write a full descripti...> Mike Sartain or I will write a full description of how we've deeply integrated cmake+ninja into QtCreator<br />That would be sooo great!iamvfxhttps://www.blogger.com/profile/04050799339135101237noreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-3430742677545862492014-01-17T01:20:49.081-08:002014-01-17T01:20:49.081-08:00We're going completely open source - GL is jus...We're going completely open source - GL is just too large of an API (and changing too quickly) for a small team to keep up. We'll be putting it up on bitbucket (or maybe github - we haven't decided for sure yet). We'll accept patches, bug reports, game traces, etc. We want to enable everyone that we can to make better GL games and drivers. We're planning on having the UI fleshed out enough to view all major GL state by GDC. Two major driver vendors have already expressed interest in helping us out which is wonderful.<br /><br />vogl's tracer is just like apitrace's tracer: you can LD_PRELOAD it into your process (or manually load it like you would libgl.so) and it intercepts all of your GL/GLX calls. It's as transparent as we could make it: we shadow key bits, and optionally serialize what you do and pass along all calls into the driver. Occasionally, we have to make some extra hidden GL calls to retrieve linked program metadata, peek at GL errors, etc. or do glGet's while taking a snapshot. This activity should not be visible to your app. We are very careful about not injecting GL errors into your app while making hidden calls. We occasionally must modify your params during tracing, for example write-only mapped buffers are set as readable/writable when we call GL so we can read the exact contents of buffers when we serialize them. <br /><br />If you use multiple contexts, we require that you don't leave your secondary contexts current on any threads when you call glXSwapBuffer()'s, because our snapshot code needs to make them current on the thread that calls glXSwapBuffer()'s in order to query their state. Also, we have some constraints on handle usage related to multiple contexts/different threads that we'll document. (These constraints should not impact the vast majority of GL apps in practice.) Shadowing GL handles, especially across multiple contexts in all possible (but technically valid) GL scenarios is very tricky.<br /><br />We use two chroot's for cleanly building 32-bit and 64-bit. We don't use qmake, but cmake for building everything. It took us a while, but we figured out how to cleanly configure QtCreator so we can build the project via cmake from within chroots -- all nicely within QtCreator itself. We also figured out how to use QtCreator's ninja compiler warning/error parser to work when we use ninja to build (you need to redirect both stdout/stderr to just stdout, or maybe just stderr - I don't remember offhand how Mike did it exactly). Mike Sartain or I will write a full description of how we've deeply integrated cmake+ninja into QtCreator (just by configuring it properly within a couple days.<br /><br />For clang, Mike Sartain figured out how to switch between gcc vs. clang in a way that was compatible with an "out of the box" install of QtCreator:<br />http://linux-debugger-bits.blogspot.com/2013/07/clang-33-with-64-bit-ubuntu-1204.html<br /><br />We first did this outside of chroots to build with clang. Now we do it within the 32-bit/64-bit chroot's. Works really well. Also, we've had no issues debugging clang built apps with QtCreator 2.8.x or 3.0.0.<br />Rich Geldreichhttps://www.blogger.com/profile/14358203173986928600noreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-46928557973371197532014-01-16T08:23:52.533-08:002014-01-16T08:23:52.533-08:00Duplicating questions here, just in case.
What pla...Duplicating questions here, just in case.<br />What plans Valve have on this thing? Proprietary distribution like the AMD's gDEBugger?<br />I'm working on open-source reincarnation of glslDevil: https://github.com/SirAnthony/GLSL-Debugger, actually integrating mesa gl compiller into it for GLSL 4.x support in shader debugging. May be you will be interested.Anonymoushttps://www.blogger.com/profile/15950379275821450165noreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-24467462440099108572014-01-16T05:21:19.984-08:002014-01-16T05:21:19.984-08:00Does VOGL act as middle-man to the OpenGL driver l...Does VOGL act as middle-man to the OpenGL driver like APITrace or does it need some level of access to the C/C++ source being debugged?Charlie McMackinhttps://www.blogger.com/profile/03644215480949676490noreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-72464630817998561562014-01-16T02:29:39.470-08:002014-01-16T02:29:39.470-08:00How could I missed that. I am not in a hurry and w...How could I missed that. I am not in a hurry and will wait for the official release, but that is awesome!Dragomirhttps://www.blogger.com/profile/08777905242712894699noreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-25737160223682849272014-01-16T02:13:22.357-08:002014-01-16T02:13:22.357-08:00It's merged now, pass LLVM_INSTALL_DIR to qmak...It's merged now, pass LLVM_INSTALL_DIR to qmake when building from source, here you can find the script for Arch Linux which will build Qt Creator with Clang parser for you: http://lset.tumblr.com/iamvfxhttps://www.blogger.com/profile/04050799339135101237noreply@blogger.comtag:blogger.com,1999:blog-7395797351911594965.post-76693379811851216962014-01-16T02:00:31.745-08:002014-01-16T02:00:31.745-08:00Greetings Rich,
Since you are very keen on Clang a...Greetings Rich,<br />Since you are very keen on Clang and QtCreator, do you have then work together? I mean there was some branch of QtCreator integrating Clang support ( code completion, etc.) but it is not merged. Thanks.Dragomirhttps://www.blogger.com/profile/08777905242712894699noreply@blogger.com