-
Notifications
You must be signed in to change notification settings - Fork 775
Mostly usb fixes #494
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
Mostly usb fixes #494
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should the pausing be moved out of the signal handler and into the main loop in Protonect.cpp?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After pausing, the main loop will waitForNewFrame() forever and never start() again. So no.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah right, makes sense. Do we care enough in this file to pull it out in a separate thread then?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't have time to implement it at the moment just for an example.
I think a good solution is to use waitForNewFrame(frame, milliseconds), which needs wait_for(), a C++11 feature. This would need backporting wait_for() to tinythread. I have no idea how hard that is.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I looked at it more closely. wait_for is actually quite non-trivial to get right.
One other alternative is to catch the signal in the main loop and pause right there until one more signal, and then continue the main loop. But this still needs a bunch of #ifdef to use platform dependent timing functions or signal functions.
I think this example gets the point across, for the time being.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't know if there is a boost dependency or you're avoiding one, but boost does provide this functionality.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Boost dependency is being avoided. See #14
Beignet performs self-test and fails for Haswell and kernel 4.0-. These environment variables override the self-test. Set the variables by default: export OCL_IGNORE_SELF_TEST=1 export OCL_STRICT_CONFORMANCE=0
To avoid a lot of
WARN Event TRB for slot 1 ep 2 with no TDs queued?
in dmesg.
|
Just tested on my Mac again and it's working very well |
|
Great - once I get a Windows test report, I'll merge it right away. |
|
I'll post test results next week. I brought test machines today but forgot to bring HDMI cables to connect them to monitors. |
|
Caught and fixed one bug: SIGUSR1 is undefined on Windows and causes FTBFS. Now tested on Jetson Ubuntu 14.04 and Windows 7/8 MSVC 2013/5. |
|
Excellent, thanks. |
Tested on Debian and Ubuntu 14.04. Will test with Jetson and Windows later.