Quick Links: Download Gideros Studio | Gideros Documentation | Gideros community chat | DONATE
Gideros 2024.3 Released - Page 2 — Gideros Forum

Gideros 2024.3 Released

2»

Comments

  • hgy29hgy29 Maintainer
    MoKaLux said:


    Exception code: 0xc0000005
    Faulting module path: C:\Windows\System32\DriverStore\FileRepository\nvhdc.inf_amd64_7f14eb0fd6d4fd5b\nvoglv64.dll

    Ok, that’s a good start: crash in OpenGL driver, so probably related to the code changes in OpenGL backend in Gideros. It would be nice to get a full stack trace though

    Likes: MoKaLux, pie

    +1 -1 (+2 / -0 )Share on Facebook
  • dreiko65dreiko65 Member
    @hgy29 Tried to recreate the issue making a new project but everything works as it should. I will try with bigger sprite sheets, animations and events and see what happens. In my game though the problem persists. In my previous game where I used sepperate images instead of spite sheets it loads fine with no problems.
  • MoKaLuxMoKaLux Member
    edited June 9
    hgy29 said:


    I will try to trigger it with my own projects, meanwhile I think you already used QtCreator, can you try to make it crash under debugger on your side ?

    I installed Qt and all and managed to build Gideros Studio :)

    Now the question is: how do I run Gideros in Qt Creator to make the Player crash to have some logs?

    I opened C:\dev\gideros_dev202406\ui\ui.pro in QtCreator but I don't think that's the one I should be opening Oh that worked! :o

    ... but I cannot start the Player, when I click "start local player" nothing happens. The other icons work fine (Color Picker, export, ...)

    I will try to build Gideros Debug from Qt.
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • hgy29hgy29 Maintainer
    MoKaLux said:


    Now the question is: how do I run Gideros in Qt Creator to make the Player crash to have some logs?

    You need to run player/player.pro. If your project needs some plugins, you may have to compile them from their respective .pro files (they are all in plugins folder, either directly under each plugin source subdirectory or inside source/Desktop). Then gather all dlls built for the plugins and put them in Plugins subdirectory of the newly built player

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • MoKaLuxMoKaLux Member
    edited June 9
    EDIT: didn't compile

    I need to link Scintilla and Lexilla somewhere :p
    In file included from ../../../luau/Analysis/include/Luau/TypeArena.h:6,
                     from ../../../luau/Analysis/include/Luau/Module.h:9,
                     from ../../../luau/Analysis/include/Luau/Frontend.h:5,
                     from debug\../../../outlinewidget.h:16,
                     from debug\moc_outlinewidget.cpp:10:
    ../../../luau/Analysis/include/Luau/TypePack.h:68:18: note: because 'Luau::TypePackVar' has user-provided 'Luau::TypePackVar& Luau::TypePackVar::operator=(const Luau::TypePackVar&)'
       68 |     TypePackVar& operator=(const TypePackVar& rhs);
          |                  ^~~~~~~~
    compiling debug/moc_mdisubwindow.cpp 
    compiling debug/moc_pluginselector.cpp 
    compiling debug/moc_plugineditor.cpp 
    compiling debug/moc_addons.cpp 
    compiling debug/moc_preferencesdialog.cpp 
    compiling debug/moc_wordhighlighter.cpp 
    linking debug/GiderosStudio.exe 
    C:/Qt/Tools/mingw1120_64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lScintillaEdit5
    C:/Qt/Tools/mingw1120_64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lLexilla5
    collect2.exe: error: ld returned 1 exit status
    mingw32-make[1]: *** [Makefile.Debug:606: debug/GiderosStudio.exe] Error 1
    mingw32-make[1]: Leaving directory 'C:/dev/gideros_dev202406/ui/build/Desktop_Qt_6_2_2_MinGW_64_bit-Debug'
    mingw32-make: *** [Makefile:45: debug] Error 2
    05:50:44: The process "C:\Qt\Tools\mingw1120_64\bin\mingw32-make.exe" exited with code 2.
    Error while building/deploying project ui (kit: Desktop Qt 6.2.2 MinGW 64-bit)
    When executing step "Make"
    05:50:44: Elapsed time: 01:57.
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • MoKaLuxMoKaLux Member
    edited June 9
    after enabling git.exe in Qt Creator I have now these issues:
    -1: error: cannot find -lScintillaEdit5
    -1: error: cannot find -lLexilla5
    -1: error: collect2.exe: error: ld returned 1 exit status
    -1: error: [Makefile.Debug:606: debug/GiderosStudio.exe] Error 1
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • MoKaLuxMoKaLux Member
    EDIT EDIT: I didn't see hgy29 response in between my posts :p
    I will try building the Player.pro and report back God's willing!
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • MoKaLuxMoKaLux Member
    edited June 9
    Ok I can run the Player from Qt (not in debug mode, it won't compile) and from there I can test one of my app with this player.

    I tested with an almost empty project and the Player doesn't crash at all.

    I will try to make it crash and get some logs?

    Without any plugins this doesn't crash:
    [ALSOFT] (II) Created context 00000185f553f240
    GLFMT:SWAP: 1
    GLFMT:STENCIL: 8
    GLFMT:DEPTH: 24
    GLFMT:BUFFER: QSurfaceFormat::DoubleBuffer
    GLFMT:COLORSPACE: QColorSpace(QColorSpace::SRgb, QColorSpace::Primaries::SRgb, QColorSpace::TransferFunction::SRgb, gamma=2.31)
    GLFMT:SAMPLES: 0
    GLFMT:FSWAP: 0x7fffc7ef2e80 0x7fffc7ef3c30
    GLFMT:NSWAP: 1
    GL Version 4.600000 (Desktop)
    GL_VERSION:4.6.0 NVIDIA 551.34
     
    GLSL_VERSION:4.60 NVIDIA
     
    Deleted program:3
    Deleted program:6
    Deleted program:9
    Deleted program:12
    Deleted program:15
    Deleted program:21
    Deleted program:24
    Deleted program:27
    Deleted program:30
    Deleted program:33
    Deleted program:36
    GL Version 4.600000 (Desktop)
    GL_VERSION:4.6.0 NVIDIA 551.34
    ...
    So there must be a plugin that crashes the player on me or as hgy29 said:
    The kind of crashes you are getting looks like a crash on stop, usually caused by a delayed event or some objects that can't be deallocated. It is easy to figure out when run under a debugger, but obviously it has to happen.
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • MoKaLuxMoKaLux Member
    edited June 10
    I can make it crash but in release mode only :o

    not so usefull log from the crash in release mode:
    01:33:49: Starting C:\dev\gideros_dev202406\player\release\GiderosPlayer.exe...
    [ALSOFT] (II) Initializing library v1.22.2-${GIT_COMMIT_HASH} ${GIT_BRANCH}
    [ALSOFT] (II) Supported backends: dsound, winmm, null
    ...
    GLFMT:SWAP: 1
    GLFMT:STENCIL: 8
    GLFMT:DEPTH: 24
    GLFMT:BUFFER: QSurfaceFormat::DoubleBuffer
    GLFMT:COLORSPACE: QColorSpace(QColorSpace::SRgb, QColorSpace::Primaries::SRgb, QColorSpace::TransferFunction::SRgb, gamma=2.31)
    GLFMT:SAMPLES: 0
    GLFMT:FSWAP: 0x7fffc7ef2e80 0x7fffc7ef3c30
    GLFMT:NSWAP: 1
    GL Version 4.600000 (Desktop)
    GL_VERSION:4.6.0 NVIDIA 551.34
     
    GLSL_VERSION:4.60 NVIDIA
     
    Deleted program:3
    Deleted program:6
    Deleted program:9
    Deleted program:12
    Deleted program:15
    Deleted program:21
    Deleted program:24
    Deleted program:27
    Deleted program:30
    Deleted program:33
    Deleted program:36
    GL Version 4.600000 (Desktop)
    GL_VERSION:4.6.0 NVIDIA 551.34
     
    [ALSOFT] (II) Increasing allocated voice properties to 32
    key : 4c
    key : 1000014
    key : 1000014
    key : 1000014
    key : 1000014
    key : 1000013
    key : 1000013
    key : 1000013
    key : 1000013
    key : 1000013
    key : 1000013
    key : 1000013
    key : 1000013
    key : 1000013
    Deleted program:3
    Deleted program:6
    Deleted program:9
    Deleted program:12
    Deleted program:15
    Deleted program:27
    Deleted program:30
    Deleted program:33
    Deleted program:36
    Deleted program:40
    Deleted program:43
    GL Version 4.600000 (Desktop)
    GL_VERSION:4.6.0 NVIDIA 551.34
     
    GLSL_VERSION:4.60 NVIDIA
     
    01:34:06: C:\dev\gideros_dev202406\player\release\GiderosPlayer.exe crashed.


    I tried really hard to make it crash under debug but it wouldn't crash :#

    PS: added plugins: json, bump
    PS2: I tested it with my project beat'em up https://github.com/mokalux/beu_cbump_tecs
    PS3: will try to make it crash in debug
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • MoKaLuxMoKaLux Member
    edited June 10
    PS4: nope it doesn't want to crash in debug mode only in release mode :o
    hope this could somehow shed some light on the problem?

    I post the log for debug mode but no crash:
    01:46:14: Debugging C:\dev\gideros_dev202406\player\release\GiderosPlayer.exe ...
    [ALSOFT] (II) Initializing library v1.22.2-${GIT_COMMIT_HASH} ${GIT_BRANCH}
    [ALSOFT] (II) Supported backends: dsound, winmm, null
    ...
     
    onecore\net\netprofiles\service\src\nsp\dll\namespaceserviceprovider.cpp(613)\nlansp_c.dll!00007FFFE38FF6DD: (caller: 00007FF8299EACF6) LogHr(1) tid(cc0) 8007277C No such service is known. The service cannot be found in the specified name space.
     
    GLFMT:SWAP: 1
    GLFMT:STENCIL: 8
    GLFMT:DEPTH: 24
    GLFMT:BUFFER: QSurfaceFormat::DoubleBuffer
    GLFMT:COLORSPACE: QColorSpace(QColorSpace::SRgb, QColorSpace::Primaries::SRgb, QColorSpace::TransferFunction::SRgb, gamma=2.31)
    GLFMT:SAMPLES: 0
     
    key : 4b
    key : 4b
    key : 4b
    key : 4b
    key : 4b
    key : 4b
    key : 4b
    key : 4b
    key : 4b
    key : 4b
    key : 4b
    key : 4b
    key : 4b
    key : 4b
    key : 4b
    key : 4b
    key : 4b
    key : 4b
    key : 4b
    Deleted program:3
    Deleted program:6
     
    01:48:00: Debugging of C:\dev\gideros_dev202406\player\release\GiderosPlayer.exe has finished with exit code 0.
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • MoKaLuxMoKaLux Member
    edited June 11
    some more feedback ;)
    Gideros Player doesn't crash on my windows 10 :o I tried to make it crash but it was happy running every time.

    The Gideros Player seems to crash on my windows 11 machine only.

    PS: my win10 runs on a 10 years old laptop with an integrated graphics card!

    PS2: I am so happy because when I last tried running Gideros on my laptop, I couldn't see a thing on the Gideros Player, the Player was only grey, no image at all, only sounds. Now with latest Gideros 2024.6 (built from GH) the Player is working as expected :p I can develop again when I am on the road B)
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • MoKaLuxMoKaLux Member
    edited June 11
    good news Gideros Player doesn't seem to crash no more :| :o :)

    I didn't do anything special except messing with building Gideros stuff, but now I am using official release and so far so good.

    So you can consider this issue closed, sorry for the inconveniences :(

    PS: windows 11
    PS2: back to using my favorite framework/engine o:) , all my gratitude to the devs

    EDIT: nope it now crashes :s
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • MoKaLuxMoKaLux Member
    Please allow me my last update on Gideros Player :)

    - offical Gideros: running my project Player crashes
    - GH Gideros build: running my project Player doesn't crash
    - a mix of offical Gideros Studio + Player GH build: running my project Player doesn't crash :o

    I tried copying Gideros Player.exe from my GH build to windows Program Files but then the player crashes again.

    So what works so far is running official Gideros Studio with my GH Gideros Player, I can run my project and the player doesn't crash at all :o

    I consider my issue fix, sorry for all the inconveniences ;)

    PS: I already did a clean install of Gideros but crash still happening
    PS2: with Gideros there is always a way :p
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • MoKaLuxMoKaLux Member
    edited June 13
    EDIT: nope the GH player still crashes but waaayyy less often than official player.

    My GH player sometimes crashes when I fiddle with my code for a certain period of time (~5 mins), then run the project => crash :s

    Maybe some things are accumulating (not freed) then the player crashes?

    PS: I can live with that :p
    PS2: it also sometimes crashes on pressing Stop in Gideros Studio
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • MoKaLuxMoKaLux Member
    edited June 16
    hello Giderians, please allow me some more feedback to help pinpoint my Gideros Player issue :(

    I think I nailed it: my Players crash everytime there is a bug in my code!!!
    Example:
    elseif self.copymode == "color" then
    	self.partsstyling[self.currentpart].red = self.childrgbacopy.red or 255/255
    	self.partsstyling[self.currentpart].green = self.childrgbacopy.greeeeen or 255/255 -- obviously a typo here ;-)
    	self.partsstyling[self.currentpart].blue = self.childrgbacopy.blue or 255/255
    	self.partsstyling[self.currentpart].alpha = self.childrgbacopy.alpha or 255/255
    	self:style()
    I think my Players crash on every errors I make while developing my apps/games!?

    Hope this can help ;)
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • piepie Member
    @MoKaLux try building a mini project that crashes to share:
    ie.
    --main.lua
     
     
    local mytable = {
    		one = 1,
    		two = 2 -- comma missing: should crash here
    		three = 3
     
    		}
     
    for i,v in pairs (mytable) do 
    	print ("I", i, "V", v)
    end
    on my player (win10) this crashes with the correct message (main.lua:5: Expected ',' after table constructor element)

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • MoKaLuxMoKaLux Member
    @pie thanks for the info, unfortunatelly I cannot make it crash with such a simple code.

    There is my sample on github which does certainly make the player crash on my windows 11 machine (I haven't tried it on my windows 10 laptop, I will do it asap and report back). Have you tried it on your machine?

    https://github.com/mokalux/beu_cbump_tecs

    Thank you mister pie :)
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • piepie Member
    I tried it now it runs and it didn't crash (I played it until the beginning of stage 2)
  • MoKaLuxMoKaLux Member
    edited June 17
    pie, the issue is when developing the game, you code, you run it, you debug, you run it, the player crashes :s

    It is in the development/debugging phase that the player constantly crashes. It is hard to pinpoint when this happens though (enter frame, bug in the code, player not releasing some refs, ...). Apparently it has something to do with OpenGL.

    For example in my github code, if you run, stop, run, stop, ... the code in Gideros Studio, the player will crash (quite quickly on my side).
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • piepie Member
    I did not do many edits in your code but running and stopping it several times it never crashed on my win 10.
    What I did notice though is that the texture memory increases at every level, as if you are not freeing resources:
    function monitorMem()
    	collectgarbage()
    	local mam = math.floor(collectgarbage("count"))
    	local texM = application:getTextureMemoryUsage()
    	print( "RAM: "..mam.." Kb. \nTexture RAM: "..texM.." Kb"	)
    end
    put this function somewhere, and call it somewhere like here in your levelX
    -- app keys handler
    function LevelX:myKeysPressed()
    	self:addEventListener(Event.KEY_DOWN, function(e)
    		if e.keyCode == KeyCode.ESC then scenemanager:changeScene("menu", 1, transitions[2], easings[2]) end
    		if e.keyCode == KeyCode.P then ispaused = not ispaused end
    		-- modifier
    		local modifier = application:getKeyboardModifiers()
    		local alt = (modifier & KeyCode.MODIFIER_ALT) > 0
    		-- validate
    		if (not alt and e.keyCode == KeyCode.ENTER) then -- print memory!
    			monitorMem()
    		elseif alt and e.keyCode == KeyCode.ENTER then -- switch full screen
    			ismyappfullscreen = not ismyappfullscreen
    			application:setFullScreen(ismyappfullscreen)
    		end
    	end)
    end

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • MoKaLuxMoKaLux Member
    edited June 18
    Yes I noticed it too and I am wondering if this code is still (was ever) valid?
    collectgarbage()
    Now I am using this instead:
    --collectgarbage()
    collectgarbage("collect")
    https://wiki.gideros.rocks/index.php/Collectgarbage

    :* :o

    You may have found something pie, thank you for the feedback, really appreciated :)

    EDIT: isn't magical Gideros supposed to free those unused textures for me?
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • MoKaLuxMoKaLux Member
    edited June 18
    EDIT: the crash may happen when an external file is changed too? my two cents :(

    EDIT2: to answer you @pie , I have a Tiled map in a folder, when I edit that file then run the player => crash


    No, this is not the issue, I am sorry I cannot help further :(
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • piepie Member
    I guess it could be anything until you manage to understand how to trigger it.. what external file do you change?

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • piepie Member
    MoKaLux said:

    Yes I noticed it too and I am wondering if this code is still (was ever) valid?


    EDIT: isn't magical Gideros supposed to free those unused textures for me?

    collectgarbage()
    As far as I can tell it is still valid, but it might not work if there are still objects referenced, I believe that the same happens for the "collect" variant.

    I think that gideros might not free your stuff because you are reloading LevelX directly, therefore the same scene stays in place and only some variable change.
    If I recall correctly the last time I used scenemanager I had to put a transition scene between levels to let gideros collect stuff: you can even listen to Event.REMOVED_FROM_STAGE to clean up everything by hand, call collectgarbage, remove listeners etc.
    A transition scene between levels giving scores or with a piece of storyline is a classic element though, :smile:
  • MoKaLuxMoKaLux Member
    edited June 18
    Oh yeah pie, you are so right, I forgot about that scenemanager issue stuff, no wonder my textures are never freed!!!

    I use that reload one scene stuff in most (if not all) of my apps, and it is working for me pretty good (I only need to update this one file).

    Now I need to find that thread where they talked about this scenemanager trick and implement it in my workflow.

    Thank you for pointing that out, much appreciated ;)

    EDIT: I found the thread I was talking about https://forum.giderosmobile.com/discussion/3468/debug-menu-module-source-code-released

    EDIT2: for info, how they manage scenemanager o:) , this is their main.lua file:
    -- Project: Debug Menu Demo
    -- Date: 26/06/2013
    -- Author: BiorhythmGames
    -- Site: www.biorhythmgames.com
    -- Info: Demo of the debug menu system using GiderosSDK
    ...
    -- initialise scene manager
    local sceneManager = SceneManager.new {
    	['blankscene'] = BlankScene,
    	['demoscene'] = DemoScene,
    }
    stage:addChild(sceneManager)
     
    -- load font
    local fontName = 'consolas14'
    local fontText = string.format('font/%s.txt', fontName)
    local fontImage = string.format('font/%s.png', fontName)
    local smallFont = Font.new(fontText, fontImage, true)
     
    -- initialise gamestate
    local gamestate = {
    	score = 0,
    	timer = 0,
    	moveSprite = true,
    	timerActive = true,
    	shakeOnBounce = true,
    	shakeInfo = {
    		shake = 0,
    		shakeIntensity = 4,
    	},
    }
     
    -- initialise debug menu sysem
    local debugMenu = DebugMenu.new {
    	font = smallFont,
    	showMenuToggle = true,
    }
    stage:addChild(debugMenu)
     
    -- begin demo
    sceneManager:changeScene('blankscene')
    sceneManager:changeScene('demoscene', 1, SceneManager.fade, easing.linear, {
    	userData = {
    		sceneManager = sceneManager,
    		gamestate = gamestate,
    		debugMenu = debugMenu,
    		font = smallFont,
    	},
    })
    and the blankscene is really a classic empty scene:
    -- Class: Blank Scene
    -- Date: 26/06/2013
    -- Author: BiorhythmGames
    -- Site: www.biorhythmgames.com
    -- Notes: Empty scene
    --
     
    BlankScene = Core.class(Sprite)
     
    function BlankScene:init(params) end
     
    function BlankScene:registerEventListeners()
    	self:addEventListener('enterBegin', self.onTransitionInBegin, self)
    	self:addEventListener('enterEnd', self.onTransitionInEnd, self)
    	self:addEventListener('exitBegin', self.onTransitionOutBegin, self)
    	self:addEventListener('exitEnd', self.onTransitionOutEnd, self)
    end
     
    function BlankScene:onTransitionInBegin() end
    function BlankScene:onTransitionInEnd() end
    function BlankScene:onTransitionOutBegin() end
    function BlankScene:onTransitionOutEnd() end


    I ran that code over and over again (play/stop/play...) and the official Gideros Player didn't crash at all :o

    I will try to implement their method in my workflow and report back on Gideros Player crashing no more? :p
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • MoKaLuxMoKaLux Member
    edited June 27
    I have some good news :)

    My issue seems to be related to how I handled scenemanager. Applying BiorhythmGames way, I managed to cut the crashes almost entirely :o

    Thank you very much mister pie for pointing me in the right direction, you are a star ;)

    How I implemented it (main.lua):
    -- scene manager
    scenemanager = SceneManager.new(
    	{
    		["blankscene"] = BlankScene, -- fix for Scene Manager
    		["menu"] = Menu,
    		["thestage"] = TheStage,
    	}
    )
    stage:addChild(scenemanager)
     
    -- tables
    transitions = {
    	SceneManager.moveFromRight, -- 1
    ...
    }
    easings = {
    	easing.inBack, -- 1
    ...
    }
     
    -- let's go
    scenemanager:changeScene("blankscene") -- fix to Gideros Scene Manager bug!
    scenemanager:changeScene("menu", 1.5, transitions[4], easings[5]) -- nice effect here!
    For the BlankScene class this code in a blankscene .lua file seems to suffice:
    -- Class: Blank Scene
    -- Date: 26/06/2013
    -- Author: BiorhythmGames
    -- Site: www.biorhythmgames.com
    -- Notes: Empty scene to fix Gideros Scene Manager crashing Gideros Player
     
    BlankScene = Core.class(Sprite)
     
    function BlankScene:init() end
    Fortunately I can implement this in my projects without too much hassle :p

    PS: bonus for your transitions and easings https://mokalux.itch.io/gideros-all-scene-transitions
    PS2: I haven't checked the ram for possible textures leak yet!

    Likes: pie

    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
    +1 -1 (+1 / -0 )Share on Facebook
Sign In or Register to comment.