MCRcortex / nvidium

Fast minecraft rendering backend for sodium (nvidia only)
GNU Lesser General Public License v3.0
717 stars 82 forks source link

AMD getting GL_NV_MESH_SHADER Equivalent Next quarter. #191

Open IGN-Styly opened 6 months ago

IGN-Styly commented 6 months ago

OpenGL issue AMD graphics cards should soon be compatible with this mod, this mod may require minor changes for the AMD implementation. I'd like to hear the Devs opinion on this.

ImBehinYa commented 6 months ago

I opened an issue in AMD's new driver forum on GitHub and already received a response. They are aiming for the end of the year. Maybe you should comment or react so they see that this matters to us.

https://github.com/GPUOpen-Drivers/AMD-Gfx-Drivers/issues/4

Eiion commented 5 months ago

An introduction video to Mesh Shaders directly from AMD with the RNDA 3 architecture: https://www.youtube.com/watch?v=MQv76-q2cm8

IGN-Styly commented 5 months ago

Mesh shaders should be supported RDNA 2=<, after digging on my gpu firmware there seems to some mesh shader process.

Eiion commented 5 months ago

From all I know it - at this point - is currently not supported. Sure there may be fractures in the firmware, which is no surprise considering they are working on it, but it is not supported and code should not work. Yet.

IGN-Styly commented 5 months ago

.

Firmware comes default, i havent updated it ever. The only missing piece is the driver and opengl extension, hardware wise its good to go.

Eiion commented 5 months ago

So you've bought a GPU the firmware off which already has fractures of code on it. Just like most firmware versions partially has code of future firmware versions left in it. That's all that is saying. The point is, mesh shaders are currently not working on AMD cards. Yet. Nobody will put the effort into creating/completing firmware and drivers to make it work if AMD won't do it. That's not even an argument to make.

Weather-OS commented 5 months ago

So you've bought a GPU the firmware off which already has fractures of code on it. Just like most firmware versions partially has code of future firmware versions left in it. That's all that is saying. The point is, mesh shaders are currently not working on AMD cards. Yet. Nobody will put the effort into creating/completing firmware and drivers to make it work if AMD won't do it. That's not even an argument to make.

Umm, you may be interested in what GPUs support VK_EXT_mesh_shader.

IGN-Styly commented 5 months ago

According to the provided link 6000 series do support Mesh shader, ie can be tested easily with vulcan.

BestOfAfrica commented 1 month ago

According to the provided link 6000 series do support Mesh shader, ie can be tested easily with vulcan.

Open GL.

IGN-Styly commented 1 month ago

.

same pipeline.

Quantum39 commented 1 month ago

opengl and vulkan are not the same at all...

IGN-Styly commented 1 month ago

They use the same gpu pipeline though different they are using the same silicon.

Weather-OS commented 1 month ago

They use the same gpu pipeline though different they are using the same silicon.

Define what a “pipeline” is.

Weather-OS commented 1 month ago

You can’t just use Vulkan extensions inside OpenGL applications without some sort of interoperability layer. Even then, it would be excruciatingly difficult to do so.

Quantum39 commented 1 month ago

even if they are they same pipeline, vulkan and opengl are two entirely different apis, and as such and not compatible with each other. You simply cannot run vulkan extensions inside an opengl program, or opengl extensions inside vulkan, like @Weather-OS said, without some layer or just completely reprogramming it.

IGN-Styly commented 1 month ago

what is a pipeline? the pipeline is what Opengl or vulkan uses in the GPU to process instructions. It dosen't matter what api its using as long as the silicon and firmware support it.

CrabbyDisk commented 1 month ago

the thing that you need to support OpenGL or Vulkan, and doing that is hard. If you want to support OpenGL, you have to do all that work even if you have already done it for Vulkan.

Quantum39 commented 1 month ago

the firmware and silicon supports it, however the api does not, so it will not work. Api must support the feature for it to be used, else you have 2 choices; switch apis and reprogram, or wait until x feature is supported in the api.

Weather-OS commented 1 month ago

what is a pipeline? the pipeline is what Opengl or vulkan uses in the GPU to process instructions. It dosen't matter what api its using as long as the silicon and firmware support it.

That is wildly misleading. A graphics API is made to abstract an interface between software and user-space graphics drivers. What you’re basically saying is that we should completely ignore all of that and call internal functions from user-space libraries by hand and somehow create a working solution. This is like resorting to kernel functions for printing “Hello, World!” on a terminal. Not to mention nearly impossible to do because there are no header files so you’d need to use a foreign function interface.

IGN-Styly commented 1 month ago

It dosen't matter what api its using as long as the silicon and firmware support it.

it is quite an oversimplification but the point is that what Vulkan is using for mesh shaders is likely the same or similar being used by OpenGL.

IGN-Styly commented 1 month ago

Good Morning @MCRcortex , could you lock the the issue? until anything relevant comes.

Philanche commented 1 month ago

It dosen't matter what api its using as long as the silicon and firmware support it.

it is quite an oversimplification but the point is that what Vulkan is using for mesh shaders is likely the same or similar being used by OpenGL.

It's not an oversimplification, it's simply wrong. Yes, the way that the GPU's hardware does things will be the same, but in order to make the GPU do it you need to go through some interface, which is what OpenGL and Vulkan are. But you can't mix and match, you need to use only one of them, and in this case Minecraft uses OpenGL so nvidium needs to go through that interface, but there currently is no way to do it for AMD. Once they'll have implemented it, then yeah probably. In general, if you don't know what you're talking about, please don't just keep making things up. (And you clearly don't, otherwise you wouldn't be saying "likely")

Samalando commented 1 month ago

This is like saying a mod made for fabric automatically works on forge because they both use Minecraft

IGN-Styly commented 1 month ago

@Samalando, thats a different topic and its not impossible(its a question of effort).

IGN-Styly commented 1 month ago

@Philanche i agree with you, i did make a mistake trying to explain it in simple terms. But correct me if I am wrong. There's the GPU there the API you use to communicate with it(Vulkan or Opengl) which both use the same silicon.

CrabbyDisk commented 1 month ago

@Samalando, thats a different topic and its not impossible(its a question of effort).

You just said it, it's a question of effort. Would you have the time and skill to rewrite the entire minecraft renderer with a completely different graphics API just to add mesh shader support to AMD gpus.

Weather-OS commented 1 month ago

@Philanche i agree with you, i did make a mistake trying to explain it in simple terms. But correct me if I am wrong. There's the GPU there the API you use to communicate with it(Vulkan or Opengl) which both use the same silicon.

Your problem here is that you’re abstracting way too much detail here. It’s like me saying “there are CPU architectures like x86 or ARM which they both use electricity”. Graphics APIs don’t directly communicate with the die of a GPU. They go through many abstraction layers to reach that point and that’s the thing you’re missing.

ryleu commented 3 weeks ago

https://github.com/GPUOpen-Drivers/AMD-Gfx-Drivers/issues/4

It's nearly time! Once this gets pushed out to stable, I would love to see AMD support here.

ETA: updates as of 20 hours ago suggest upstream support for OpenGL mesh shaders on RDNA2 or greater

KarmaMarazu commented 3 weeks ago

ETA: updates as of 20 hours ago suggest upstream support for OpenGL mesh shaders on RDNA2 or greater

if u scroll up the 5th of june the same thing was said but yes RX 6000 will most likely have the support in their drivers

FalsePattern commented 1 week ago

https://github.com/GPUOpen-Drivers/AMD-Gfx-Drivers/issues/4#issuecomment-2487628048

Looks like it's a direct implementation of the GL_NV_mesh_shader extension so it might even just work out of the box without needing any new bindings.