-
Notifications
You must be signed in to change notification settings - Fork 8
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
A mysterious crash #9
Comments
Note: it's a degenerate case, so it's likely running out of resources. What is interesting, though, is that it only seems to crash from under |
Does the compiled version crash at all? |
I haven't seen the compiled version crash. However, running it under control of |
is this similar to this? |
No, this one doesn't crash intero for me -- even if I change it to: import Graphics.UI.GLFW as GLFW
main = do
GLFW.init
GLFW.terminate
main |
what if you do something with gl? i.e. |
I have tried to stress that example as well, first by repeatedly running main :: IO ()
main = do
GLFW.init >>= require "GLFW.initialize"
window <- GLFW.createWindow 800 800 "EnvelopesGLFW.hs" Nothing Nothing >>= \ w ->
case w of Just w -> return w; Nothing -> do GLFW.terminate; error "GLFW.createWindow"
GLFW.makeContextCurrent (Just window)
GLFW.swapInterval 1
GL.clearColor $= Color4 0 0 0 1
(width, height) <- GLFW.getFramebufferSize window
GL.viewport $= (GL.Position 0 0, GL.Size (fromIntegral width) (fromIntegral height))
GL.clear [ColorBuffer]
GLFW.swapBuffers window
GLFW.waitEvents
GLFW.destroyWindow window
GLFW.terminate
main ..and yet it didn't manage to crash |
In case of lambdacube, how many times do you execute those operations? |
It was a stupidly tight loop, running at framerate frequency. |
..at unconstrained framerate frequency, which meant it was running the FRP network & Lambdacube renderer as fast as possible -- sequentially, one after another. |
Can you count it? |
Working on it -- in a roundabout way, though.. |
@csabahruska, I have isolated a minimal testcase in: New information:
|
Notably, this is a minimal testcase, which means that both: dGIC ← GIC.Context <$> GI.newManagedPtr (F.castPtr $ GRC.unCairo dGRC) (return ()) ..and.. _ ← GIPC.createContext dGIC are crucial for the repro. This widens the scope of the question from just
|
Huh.. I guess I've lost the repro on my nVidia-based system -- that, after having developed the whole repro on it. And a reboot didn't change much - the nVidia repro is lost. Yet on an intel laptop it still reliably produces this (compiled binary):
|
I wonder why would you upload the same geometry to the GPU in each frame? Why don't you reuse it? Of course the GPU will run out of memory sooner or later. |
Could be so.. but why wouldn't LambdaCube tell me so? : -) |
That's a point! :) It should. But not implemented yet. I put that on the todo list. |
Circumstances:
The text was updated successfully, but these errors were encountered: