Python-Godot: _input causes game to stop running - crash

I was making a camera for my character when the game began to close its self. I realized that it was only occurring when I moved my mouse. It would say (before I moved my mouse):
--- Debugging process started ---
Godot Engine v3.2.2.stable.official - https://godotengine.org
OpenGL ES 3.0 Renderer: Mesa DRI Intel(R) Sandybridge Mobile
Pythonscript 0.40.0 (CPython 3.8.3.final.0)
Calling wrapper on <class 'scripts.Player.Player'>
Calling wrapper on <class 'scripts.main.main'>
Calling wrapper on <class 'scripts.test1.test1'>
and when I moved my mouse it would add:
--- Debugging process stopped ---
It works with gdscript, but breaks with python. This is all that is needed for this to happen:
def _input(self,event):
pass
Does anyone know why this is happening and how to fix it?

Related

Correct way to resize swapChain in DirectX12

I am attempting to port the DirectX12/XAML UWP template over to a C++-WinRT version... where EVERYTHING is done via C++-WinRT and I can turn off CX. I'm currently stuck on how to ResizeBuffers on the swapchain. Before resizing the buffers I have to release all the buffer references. In C++/CX ComPtr there is Reset() method to release reference of the renderTarget buffers, but in C++/winrt com_ptr no such Reset() method exists and if I set renderTarget to nullptr in order to release it, it throws an exception shown in the Screenshot below. And if I don't set the renderTarget to nullptr then exception is not thrown but the swapChain is also not resized.
Later I also tried it using the wrl::ComPtr and the Reset() method it is still throwing the same error. Does anyone know the correct way of resizing the swapChain in DirectX12?
Screenshot of the code and error
You can't use a "fail-fast" error handler like ThrowIfFailed for ResizeBuffers or Present. Both return meaningful failure codes at runtime you must handle.
Specifically both can return DXGI_ERROR_DEVICE_REMOVED or DXGI_ERROR_DEVICE_RESET and you need to handle it. In fact, in the UWP environment, you will see this happen at start up so you must handle it--some 'classic' Win32 desktop apps just ignore it and crash at weird times like when Windows Update updates a driver while the game is running.
For details on handling 'lost-device' (which is really 'device removed'), see DeviceResources .h / .cpp.
See also Microsoft Docs which is written for DirectX 11, but all the equivalent stuff has to happen for DirectX 12.

D3D11 CreateDeferredContext Error without ever creating a deferred render context

I get the following error message in my output window :-
D3D11 ERROR: ID3D11Device::CreateDeferredContext: Creation of a Device with D3D11_CREATE_DEVICE_SINGLETHREADED prevents the creation of deferred contexts. [ STATE_CREATION ERROR #2097162: CREATEDEFERREDCONTEXT_SINGLETHREADED]
D3D11 ERROR: ID3D11Device::CreateDeferredContext: CreateDeferredContext returning DXGI_ERROR_INVALID_CALL, meaning the function can not be used. [ STATE_CREATION ERROR #2097164: CREATEDEFERREDCONTEXT_INVALID_CALL_RETURN]
But I never call that function and also I have a single threaded immediate
render context. This started happening abruptly.
Also, If i do a search for that function call then i get 0 hits in my entire solution.
Update 1 - The culprit seems to swap hain present because even if I don't create any shaders and buffers and just the context device and swapchain I still get this error
Update 2 - I have already tried the following -
Re-build the solution in debug and release mode.
Attaching the debugger by directly running the program on different graphic cards.
Re-installing DirectX.
Upgrading/Downgrading graphics and audio drivers.
going back to an old system restore point.
Re-installing Visual Studio

Qt5 "Attempt to set a screen on a child window" many runtime warning messages

In our Qt5-based application, many messages like this are displayed in the console:
0x1beccb0 void QWindowPrivate::setTopLevelScreen(QScreen*, bool) ( QScreen(0xd25b80) ): Attempt to set a screen on a child window.
It does not prevent the application from running, but I would like to fix them, since it tends to indicate that there is probably something wrong that we are doing. The code is quite large (cannot be included in the post, it is there: http://gforge.inria.fr/frs/?group_id=1465). I cannot ask you to take a look at it (too big), but maybe you will have an idea with the following additional information:
The messages appear only under Linux, and not under Windows
Our application is a 3D modeler, that has several QGLWidgets for
displaying 3D content. If I remove the QGLWidgets, then the messages
disappear.
In the debugger, if I put a breakpoint on
QWindowPrivate::setTopLevelScreen(), it is called by:
kernel/qwindow.cpp:368
368 q->connect(screen, SIGNAL(destroyed(QObject*)), q, SLOT(screenDestroyed(QObject*)));
Update1:
I put a breakpoint on QMessageLogger::warning (qDebug() is a macro that uses this function), now I can better see the stack that looks like:
#0 0x00007fffefa50600 in QMessageLogger::warning() const#plt () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#1 0x00007fffefa851cb in QWindowPrivate::setTopLevelScreen (this=0xd330e0, newScreen=0x7201a0, recreate=<optimized out>)
at kernel/qwindow.cpp:371
#2 0x00007fffefa7f2f5 in QGuiApplicationPrivate::processWindowSystemEvent (e=e#entry=0x760600)
at kernel/qguiapplication.cpp:1608
#3 0x00007fffefa631f8 in QWindowSystemInterface::sendWindowSystemEvents (flags=...)
at kernel/qwindowsysteminterface.cpp:625
#4 0x00007fffeb7d4100 in userEventSourceDispatch (source=<optimized out>)
at eventdispatchers/qeventdispatcher_glib.cpp:70
(More stack frames follow...)
In QGuiApplicationPrivate::processWindowSystemEvent, it is handling a QWindowSystemInterfacePrivate::ThemeChange event:
1608 case QWindowSystemInterfacePrivate::ThemeChange:
1609 QGuiApplicationPrivate::processThemeChanged(
1610 static_cast<QWindowSystemInterfacePrivate::ThemeChangeEvent *>(e));
1611 break;
Update2:
Nearly there !! It is when I call setMinimumWidth() / setMinimumHeight() on a QGLWidget. Now I'd like to know why...
Update3:
More information: the messages are only displayed when I have two screens connected to my computer.
Finally, I understood what happens:
The warning messages occur whenever setMinimumWidth() / setMinimumHeight() are called on a QGLWidget under Linux with a dual screen display.
This is probably a bug in Qt. It will probably be not fixed, since it is recommended in the documentation to use the new QOpenGLWidget instead, that appeared in Qt 5.4 (note: "OpenGL" instead of "GL"), which I did and the warning messages disappeared.
Edit: I saw a message from someone that had problems with text not rendering properly with the new QOpenGLWidget which I answer here: When using the new QOpenGLWidget, one needs to take care that it no longer has an independent OpenGL context, it shares the OpenGL context with Qt (therefore, OpenGL states modified in the rendering function needs to be restored after exiting the rendering function, for instance blending mode).

Manually run GTK event loop

I am trying to integrate GTK (in a .NET application via the gtk-sharp bindings) into an application that already has a "main loop." Calling Gtk.Application.Run() results in the entire thing basically locking up while waiting on the Gtk loop. Furthermore, this app can't really be integrated into GTK in the usual sense (that is, using GTK's idle stuff to pump the app for events).
Is there a way to do the opposite and run the GTK main event loop manually?
Right now I have something like this:
def _pump_gtk():
while true:
if Gtk.Application.EventsPending():
Gtk.Application.RunIteration()
yield
(the yield is because _pump_gtk is running as a coroutine in the main application)
However, this seems to have problems because Gtk doesn't think there is a main loop running? I get a lot of Gtk-CRITICAL **: gtk_main_quit: assertion main_loops != NULL' failed errors.
Is there a way to run the GTK main loop manually?

Error messages when using OpenGL ES template

I made a new OpenGL ES application, and without modifying anything, I ran the program. It runs, but I see these error messages:
Detected an attempt to call a symbol in system libraries that is not present on the iPhone:
open$UNIX2003 called from function _ZN4llvm12MemoryBuffer7getFileEPKcPSsx in image libLLVMContainer.dylib.
Detected an attempt to call a symbol in system libraries that is not present on the iPhone:
fstat$INODE64 called from function _ZN4llvm12MemoryBuffer7getFileEPKcPSsx in image libLLVMContainer.dylib.
Detected an attempt to call a symbol in system libraries that is not present on the iPhone:
mmap$UNIX2003 called from function _ZN4llvm3sys4Path14MapInFilePagesEiy in image libLLVMContainer.dylib.
Detected an attempt to call a symbol in system libraries that is not present on the iPhone:
close$UNIX2003 called from function _ZN4llvm12MemoryBuffer7getFileEPKcPSsx in image libLLVMContainer.dylib.
Detected an attempt to call a symbol in system libraries that is not present on the iPhone:
pthread_mutexattr_destroy$UNIX2003 called from function _ZN4llvm3sys5MutexC2Eb in image libLLVMContainer.dylib.
The program displays a colored box that moves up and down. Is this what it's supposed to do? What do these error messages mean?
I've been noticing the same. I'm running iOS sdk 4.1. But it only happens on the simulator.
From what I found at the apple forums, it seems to be a simulator bug. An Apple representative claimed that it was a bug on "their" end.
Here's the quote "This is a bug on our end, but as long as things are otherwise working for you, the logging can safely be ignored."