So, I have a full monogame project that works fine in windows. I’m trying to deploy it to an XBox One in dev mode, and it deploys fine, but only the 2D assets actually display when the game runs. All the 3D assets (FBX Models) fail to display. I’m getting no error messages or anything, just nothing showing on screen.
SO, thinking it was something with my codebase (which is rather large), I went back to a very very simple XNA sample that just draws a single triangle on the screen. Same result. Text will display, but any 3D content is just invisible.
Does anyone have any idea what is going on? Both programs work just fine in windows, but I consistently get no errors and no 3D stuff displayed on XBox One. I’m at wits end here, so any help would be appreciated. I can post whatever code is needed, but at this point I’m not even sure what to post.
It’s still early days for Xbox One UWP apps, and we have found there are some functional differences in DirectX on Xbox One versus all other UWP platforms.
Is there any documentation or anything on how to convert a shader to work on XBox One? Or any hints on what could be different that would cause things not to display?
I literally cannot get a single triangle to display on the xbox one…and I have no idea why. I don’t know if the functionality just isn’t there, or if there is some simple setting or something that needs to be different between windows and xbox…
Okay, I found another thread dealing with this same issue: XB1 and MonoGame and it refers to XBox One requiring dynamic vertex buffers instead of standard vertex buffers. SO I modified the single triangle example to use a DynamicVertexBuffer, and lo and behold, it works!
However, the real game I’ve been working on used Models and Meshes extensively…I have not idea how to force those to use dynamic vertex buffers, or if that is even possible. Does anyone have any experience with this? Is there a way to have a Mesh loaded from the Content manager use DynamicVertexBuffers?
Sample of my actual rendering code is below in case that helps…
Daniel, did you find a solution to the behavior you are seeing? I am encountering it as well – I reached out to MS on their forums to see if they might have insight into the behavior (i.e. is this expected behavior with the XBOX DirectX API) or a possible bug with MonoGame or UWP DirectX.
I still have not been able to find a solution that I can use, and for the moment have switched to Unity until this is resolved.
I CAN tell you that simply changing your VertexBuffers and IndexBuffers to be DynamicVertexBuffers and DynamicIndexBuffers will allow things to be drawn onscreen on XBox One. I successully tested this with a single triangle.
But that doesn’t actually help in my case, because I’m loading Models. I’ve STARTED looking through the Monogame source code to try to see if there’s a way to have it load Models using DynamicVertexBuffers behind the scenes with a switch or something, but haven’t made a lot of progress on it.