Geometry shaders & Tessellation

TLDR; are Geometry and tesselation shaders supported (any platform) on MonoGame 3.8?

This morning I was wondering if MonoGame now supports Geometry shaders and Tessellation. I had a bit of a google and didn’t really come up with anything conclusive. I think I have seen that hardware instancing is now, which is great and I am looking forward to playing with that at a later date.

I spotted a clip on youtube where the poster says they are doing tessllation on terrain in their engine, and there is/was a converstaion on git about it, but I could see no examples of it.

As ever, thanks in advance,

Charles.

I’m curious about this too - so I’m not much use for information about these questions - but I know it’s possible to do these through HLSL and I made a tutorial for using precompiled HLSL shader in monogame before.
Shader level 3 on the OpenGL side of things, might limit this [probably like this to maximize platform compatibility] and (as I’ve heard) things get tricky with openGL/SDL side since hardware and shader support can vary quite a bit depending on platform. I suppose it’s hypothetically possible to setup extended openGL stuff and determine support at runtime and do a first-time run shader-compile targeting the system - altho my understanding of those details is really limited at the moment.

1 Like

I came across this, which looked promissing, but not sure at what stage it is at.

I am a bit green with git hub issue logging, would like to log one arounf Annotations in the EffectAnnotaiton class as it’s not populated at the moment (was in XNA) and it would be super handy if it was :smiley: Would be useful for creating things like a shader editor with MonoGame. But, I am not sure if this has already been raised, how to find out if it has, and don’t want to be posting stuff on there that they already have, it looks like they have their hands full as it is lol

https://github.com/MonoGame/MonoGame/pull/7352 has been moving very fast lately. Maintainers say that 3.8.1. comes before it, so it won’t be available soon. However if you really need it, you can just download his branch and test it (it includes a sample project https://github.com/cpt-max/ShaderTest ). I’m sure the extra testing will be well received.

2 Likes

Ooo - I see Vertex Texture Fetch works. That’s very interesting.

It works well in the simple test cases I created for it, but it hasn’t received enough real-world testing yet. I’m in the process of adding some tesselation to one of my projects now, let’s see how that goes.

You can use the search box on top to search the current repository. It’s pretty easy to find existing issues that way. This is probably what you are looking for:

1 Like

I created an edge-rounding tesselation shader. It turned turned out pretty nice.

.EdgeRounding

4 Likes

Awsome job~ any idea for shader conductor for compute shader in monogame?

Thanks. ShaderConductor can also translate compute shaders from HLSL to GLSL, so it should be possible to have platform independent compute shader support.

Of course some work needs to be done on the MonoGame framework side as well to make this work. I already used compute shaders with MonoGame by using SharpDX directly, so I have a pretty good idea what’s needed, at least for DX.

I totally have plans to look into this, once I have a bit more spare time on my hands.

1 Like

how about opengl or opengles compute shader?

Instancing is has already been possible for some time as vertex shaders can take multiple vertexbuffers via vertexbufferbinding them however only dx had the ability to use vertex texture fetching max’s pr will allow that to work on open gl as well.

vtf can be used in concert with rendertargets to instance and perform more complex realtime calculation on the gpu. For things such as particles and possibly even more complicated data processing.
Essentially meaning more faster better.

Minimal example is at the bottom of the post though it doesn’t use vtf its just a very simple timing algorithm.

Yes, that’s what I meant by platform independent: DirectX, OpenGL and OpenGL ES.

That’s awesome :slight_smile: