Forum Replies Created
-
AuthorPosts
-
EDIT: See previous post too, as I know you often see only latest post!
Yeah, testing mojo3d/tests/cubes.monkey2 with latest public 388.71 drivers is still the same. (I deleted the build/products folders, just in case.)
So, with no compatibility tweaks…
mojo3d
100% CPU
2d (bananas/mojotest/mojotest.monkey2)
0-1%
What’s interesting now (by which I mean worse) is that…
Monkey12SetConfig( "MOJO_OPENGL_PROFILE","es" )… doesn’t appear to fix mojo3d cubes test any more — it’s now hogging CPU with that in place, all build/products deleted/rebuilt.
The code in my first post, with “es”/Angle enabled, still runs at 0-1%, while without “es” it’s still hogging 100%.
I’ve checked via Process Explorer and with “es” compatibility it is loading the d3d DLLs, while without it’s only using opengl DLLs, so cubes appears to be hogging in D3D too on latest drivers.
Definitely mojo3d only, but seems to be affected by/caused by drivers as you suggested.
I’ve just tried an old openb3d test in Brucey’s bmx-ng, and that actually runs with 0-1% CPU, no Angle involved. Not sure of the ins and outs of its setup, but it’s certainly an OpenGL/shader-based engine. (I could always upload a standalone install that ‘should’ work if you wanted to compare, but it’s like 800+ MB, 7-zipped with the mingw version it runs on.)
Slightly OT: I ran the driver update with Ted2Go open and it crashed — I assume mojo needs to check for this case, ie. suspend when driver disappears/reappears, which I vaguely recall one of the Max/Monkey ‘commercial’ developers said was possible (and possibly had you fix), on modern Windows at least. Let me know if I should report as ‘issue’, not sure if it is actually avoidable.
In mx1 with bouncyaliens, it runs with minimal CPU as both…
Monkey123SetSwapInterval 0SetUpdateRate 60… and…
Monkey123SetSwapInterval 1SetUpdateRate 0… on plain glfw3.
But yeah, it’s mojo3d only, mojo 2d apps are absolutely fine.
sdl2test is fine too. That defaults to:
Monkey12SDL_GL_SetAttribute( SDL_GL_CONTEXT_PROFILE_MASK,SDL_GL_CONTEXT_PROFILE_ES )… and it’s still fine with:
Monkey1SDL_GL_SetAttribute( SDL_GL_CONTEXT_PROFILE_MASK,SDL_GL_CONTEXT_PROFILE_COMPATIBILITY )The problem does appear to be mojo3d-specific, as I say, 2D stuff doesn’t hog processor.
I’m on Nvidia GTX1060 6GB (specific model is “EVGA NVIDIA GeForce GTX 1060 Superclocked Gaming 6 GB”), using driver 388.31 also. Think that’s quite recent, but I’ll go update that and report back…
Just confirming the SetConfig/D3D workaround gives 0-1% CPU usage here.
Just saw your Sleep () edit! Ha ha, would explain the lack of input…
Top people? The best? Good work, Trump!
I’ll try play with this a bit tomorrow night, including the Angle thing — pretty sure my CPU fans go all-out, though who knows if that’s just because Windows thinks it’s using 100%?
That would probably work, too, as long as it stays in place between runs!
Feature request!
Would it be possible to have ted2go remember separate splitter heights for the Build/Output/Docs, etc tabs?
By way of explanation, the first image (splitter1.jpg) shows my normal setup, where the Build tab is kept small so I have more space for code. (I have the text scaled up because I’m mostly programming on a large TV across the room!)
The second image (splitter2.jpg) shows how the Docs tab appears with this setup — you can’t really read the docs properly like this.
The third image (splitter3.jpg) shows how I’d like the Docs tabs to appear when I switch to it!
(Even if Docs were hard-coded to go “full-screen” like this, it would be better… for me, anyway!)
Attachments:
Thanks, Mark, that’ll do me!
Yeah, I’ve yet to try and grasp materials, but the Material/Materials[] thing is confusing, and I’d thought iterating through Materials[] would be needed to do things properly.
Perhaps Materials[0] could be used as the default and then overridden by the user as they see fit?
Yeah, something that optionally merges vertices would be good.
Not got anywhere near VertexBuffers and co yet! This’ll let me get started on building things myself, then I’ll no doubt move on and try get vertex buffers and co…
I was actually looking closely at those earlier, Pakz, but a search suggested AddVertices wasn’t part of it — I’m basically trying to add vertices to an existing mesh that I’ve created, rather than create all vertices in one go, which I think all of your samples do.
Weird, it’s like some buffer isn’t being cleared… or a different buffer format to what’s expected… or something…
The torus is bright green here, same as the solid part of your gif animation, regardless of the commented/uncommented line.
You say it’s meant to be black, but doesn’t the emmissive factor change that? I notice the middle ‘green’ parameter is 2, but isn’t that a 0.0 – 1.0 float? Not sure what emmissive factor does, but ‘sounds’ like it should make it glow in the colour given, so looks right to me!
Guessing that corruption is driver-specific since it’s rendering OK here… what’s it running on? Perhaps that Color (0,2,0) is causing some oddness with your driver, whereas mine is capping it at 1.0?
Doubt anything built-in, but these BlitzMax Code Archives versions should port trivially:
http://wasted.nz/codearcs.php?code=1449
http://wasted.nz/codearcs.php?code=1378I use Ctrl-comment! Please keep this!
One problem I’ve run into recently is that you can’t seem to copy syntax error output from the lower-right window that appears when a program is run, showing “blah blah blah” at line 1, etc. Could that be enabled?
Actually, this thread probably contains the sum total of my knowledge! Happy to have a go at setting up a test server, though, can’t see that being a problem.
Hi Mark, the code was nowhere near a complete WS server, just the beginnings.
Looking at it again, I think it implemented the initial HTTP handshake, then, after telling the (HTTP) client to switch to WebSocket protocol (via “”HTTP/1.1 101 Switching Protocols”), simply listened for incoming ‘data frames’ from the client, a data frame being a binary format describing the purpose of the incoming chunk of data.
As far as I can tell now, it should have printed the type of data frame (“opcode”), and (possibly?) the raw data of that frame. I didn’t get as far as implementing messaging, so just shows the guts of starting a WebSockets session from a server’s perspective, how it runs behind-the-scenes over HTTP, etc.
A Javascript app wouldn’t do all of the HTTP handshaking stuff. I think in JS you just ask for a WebSocket session, then go straight to the WebSockets messaging stuff. (The browser would handle the HTTP handshaking stuff with the WS server.)
I didn’t think a plain WS client can make requests to a HTTP server, as in download files, etc, but that websockify seems to suggest otherwise!
I could probably set up a basic server (HTTP and/or WS), but will definitely be occupied the rest of this week, and probably most of the weekend, with a house move (not mine!).
(For what it’s worth, I don’t personally have a pressing need for this, was just trying to provide some more info!)
-
AuthorPosts


