Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mesh shader support? #4

Open
ImBehinYa opened this issue May 21, 2024 · 73 comments
Open

mesh shader support? #4

ImBehinYa opened this issue May 21, 2024 · 73 comments
Assignees
Labels
enhancement New feature or request fixed The issue has been fixed in published release OpenGL This is an issue with OpenGL driver

Comments

@ImBehinYa
Copy link

ImBehinYa commented May 21, 2024

When can we expect OpenGL mesh shader support?

@jinjianrong jinjianrong added the OpenGL This is an issue with OpenGL driver label May 22, 2024
@DonglinWei2018
Copy link
Contributor

When can we expect OpenGL mesh shader support?

The work to support and validate mesh shader in AMD OpenGL driver is still in progress, and we expect to release it by end of this year. Please feel free to provide the desired feature list or even sample code for your use cases.

@ImBehinYa
Copy link
Author

This for example, which is currently only supported for Nvidia, because of Mesh shaders.
https://github.com/MCRcortex/nvidium

Will 6000 also get mesh shader?

@cryolithic
Copy link

@cryolithic
Copy link

I got a response in my email, but don't see it here. Guess it was deleted. I linked to my original post in the deprecated forums to tie in to the context that this is an ongoing ask.

@DonglinWei2018
Copy link
Contributor

This for example, which is currently only supported for Nvidia, because of Mesh shaders. https://github.com/MCRcortex/nvidium

Will 6000 also get mesh shader?

Yes, as long as our Vulkan driver supports it, you can bet on OpenGL driver support as well.

@jinjianrong jinjianrong added the enhancement New feature or request label Jun 12, 2024
@IGN-Styly
Copy link

So we only need the Open gl extension?

@IGN-Styly
Copy link

Does tha mean there's driver support already in OSS and closed drivers?

@yaysoup
Copy link

yaysoup commented Aug 12, 2024

Keep pushing, driver devs! We appreciate your work :D

@Oregano1963
Copy link

Are there any updates on the mesh shader support?

@IGN-Styly
Copy link

Next month is the dealine AMD gave.

@ExplosiveGeek77
Copy link

Source?

@IGN-Styly
Copy link

"AMD is working on the GL_NV_MESH_SHADER extension and will be available in upcoming quaterly releases."

@yaysoup
Copy link

yaysoup commented Aug 14, 2024

Damn, are you guys crunching right now?

@DonglinWei2018
Copy link
Contributor

Damn, are you guys crunching right now?

We've been actively working on this extension and it's on track. Appreciate your patience for the moment.

@powerofthe69
Copy link

Good evening, I just wanted to see if the team also had aspirations of adding OpenGL mesh shader support to the Mesa open source drivers on Linux as well? I'd very much like to fulfill the same use case as mentioned above by the OP

@KarmaMarazu
Copy link

Good evening, I just wanted to see if the team also had aspirations of adding OpenGL mesh shader support to the Mesa open source drivers on Linux as well? I'd very much like to fulfill the same use case as mentioned above by the OP

i hope so too!

@Oregano1963
Copy link

Same here

@4Jed
Copy link

4Jed commented Oct 4, 2024

is there an eta on this?

@Oregano1963
Copy link

Should be out by the end of the year but that's not guaranteed

@yuq
Copy link

yuq commented Oct 28, 2024

Good evening, I just wanted to see if the team also had aspirations of adding OpenGL mesh shader support to the Mesa open source drivers on Linux as well? I'd very much like to fulfill the same use case as mentioned above by the OP

Hi, I'm a mesa developer at AMD. Could you or guys here list your use case for OpenGL mesh shader for my justification to work on this?

@ST-DDT
Copy link

ST-DDT commented Oct 28, 2024

Hi, I'm a mesa developer at AMD. Could you or guys here list your use case for OpenGL mesh shader for my justification to work on this?

There is a minecraft mod that drastically improves render distance and performance called nvidium. It relies on the mesh shader feature.

At the end of the year/early next year I will buy a new GPU that supports Mesh Shaders. If AMD doesnt support mesh shaders, it will be an Nvidea GPU. If AMD does support Mesh Shaders, I will likely buy an AMD GPU.

@BoyBaykiller
Copy link

You might be interested in this: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12189

@4Jed
Copy link

4Jed commented Dec 14, 2024

Thank you that's quite interesting

@MrPIRY
Copy link

MrPIRY commented Jan 12, 2025

Hey any updates on what is happening?

@lubaozho
Copy link
Collaborator

It will take some time to be included into the Adrenalin drivers, appreciate your patience for the moment.

@Oregano1963
Copy link

Will it be included in the mesa drivers as well?

@TheW0LVERIN3
Copy link

I believe the mesa drivers are working on adopting the new proposed cross vendor opengl mesh shader extension
https://www.phoronix.com/news/OpenGL-GL_EXT_mesh_shader

@lubaozho
Copy link
Collaborator

Will it be included in the mesa drivers as well?

https://gitlab.freedesktop.org/mesa/mesa/-/issues/12189

@4Jed
Copy link

4Jed commented Feb 4, 2025

its been a bit
any other updates?

@yaysoup
Copy link

yaysoup commented Feb 4, 2025

The implementation is pending. As they said, we just need to wait. The less we ask, the less we bother.

@ExplosiveGeek77
Copy link

It has now been 3 months, 10 months since the original request was made. Is it close to being included in a driver? I assume it's not that far away now.

The work to support and validate mesh shader in AMD OpenGL driver is still in progress, and we expect to release it by the end of this year. Please feel free to provide the desired feature list or even sample code for your use cases.

I assume this was just an estimated release but since it was an estimate and now it's been 3 months since the end of the year I assume we are just waiting for the next driver update is this correct?

@yassermalaika
Copy link

I'm really looking forward to this extension being released. Thank you for putting in the pipeline, AMD!

@Trimatix
Copy link

Trimatix commented Mar 5, 2025

+1 this will be a big step forward for AMD, I've been really looking forward to this

@alessiot89
Copy link

25.3.1 should support GL_ARB_fragment_shader_interlock and GL_NV_mesh_shader

@lubaozho
Copy link
Collaborator

Mesh shader is already included in the Adrenalin 25.3.1

@lubaozho lubaozho added the fixed The issue has been fixed in published release label Mar 11, 2025
@NyCodeGHG
Copy link

Is there an update on the implementation in mesa?

@mariob92
Copy link

I can confirm, that with version Adrenalin 25.3.1 on my RX 7800 XT, the GL_NV_mesh_shader extension is available.

MINGW64 ~
$ visualinfo.exe -s | grep 'mesh_shader|renderer|version'
OpenGL renderer string: AMD Radeon RX 7800 XT
OpenGL version string: 4.6.0 Compatibility Profile Context 25.3.1.250220
GL_KHR_shader_subgroup, GL_EXT_nonuniform_qualifier, GL_NV_mesh_shader,

@jlucaso1
Copy link

I'm waiting now for the mesa implementation

@Kenified
Copy link

Kenified commented Mar 11, 2025

Hi, I'm a mesa developer at AMD. Could you or guys here list your use case for OpenGL mesh shader for my justification to work on this?

There is a minecraft mod that drastically improves render distance and performance called nvidium. It relies on the mesh shader feature.

At the end of the year/early next year I will buy a new GPU that supports Mesh Shaders. If AMD doesnt support mesh shaders, it will be an Nvidea GPU. If AMD does support Mesh Shaders, I will likely buy an AMD GPU.

For all the people hoping this extension will allow the use of Nvidium, unfortunately Nvidium requires 4 other NV extensions not just the mesh shaders. It will either need a rewrite or AMD specific mod will need to be created.

boolean supported = cap.GL_NV_mesh_shader &&
                cap.GL_NV_uniform_buffer_unified_memory &&
                cap.GL_NV_vertex_buffer_unified_memory &&
                cap.GL_NV_representative_fragment_test &&
                cap.GL_ARB_sparse_buffer &&
                cap.GL_NV_bindless_multi_draw_indirect;

https://github.com/MCRcortex/nvidium/blob/f2028b2ba9a5dc95d69e73a9eaeadcb447367d7d/src/main/java/me/cortex/nvidium/Nvidium.java#L31-L36

@ItsLiyua
Copy link

I'd also be interested in that mod. But from how I understood it the main feature that increases performance is the mesh shader. So it should be able to work decently well even with only mesh shaders.

@Oregano1963
Copy link

Are there plans to add support to the other relevant extensions?

@MrPIRY
Copy link

MrPIRY commented Mar 13, 2025

Are there plans to add support to the other relevant extensions?

well it took them this long to add mesh shaders for and gpus

@Oregano1963
Copy link

well I'm not asking for a timeframe--just if it'll get here eventually. The driver people have a lot of work on their hands

@MrPIRY
Copy link

MrPIRY commented Mar 13, 2025

well I'm not asking for a timeframe--just if it'll get here eventually. The driver people have a lot of work on their hands

I don't know AMDs doesn't really focus that much on opengl anymore since it's a old graphics API

@BoyBaykiller
Copy link

I think this is now on developers and not AMD. As others have said, Mesh Shader should be everything thats needed to build something like nvidium. nvidium just happens to use these other NVIDIA extensions for some reasons.

I'm not familiar with the code but taking a quick look at what'd be needed to make it AMD compatible:

  • NV_bindless_multi_draw_indirect: Not used at all?
  • NV_gpu_shader5: No change needed, enabling this on AMD gives you the sized-types
  • NV_bindless_texture: Simply replace with ARB_bindless_texture
  • NV_uniform_buffer_unified_memory (and NV_vertex_buffer_unified_memory): Switch to regular UBO binding
  • NV_shader_buffer_load: Switch to regular SSBO
  • NV_fragment_shader_barycentric: Send BaryCoord or the terrain data from mesh to frag shader
  • NV_representative_fragment_test: Would be nice to have as it reduces redundant fragment shader invocations in visibility test but works without

@MCRcortex - Just in case you have any comment on that

@haochen0914
Copy link

I'm thrilled to see that AMD now supports mesh shaders, and I'm eager to find an open-source mesh shader demo to help me learn how to utilize this exciting feature. So far, I've come across the gl_vk_meshlet_cadscene demo, but unfortunately, it encounters errors when running on AMD GPUs due to unsupported extensions like NV_bindless_texture. Are there any other open-source mesh shader demos available that are compatible with AMD? Alternatively, could modifications be made to the existing gl_vk_meshlet_cadscene demo to make it work on AMD GPUs?

@ExplosiveGeek77
Copy link

I think this is now on developers and not AMD. As others have said, Mesh Shader should be everything thats needed to build something like nvidium. nvidium just happens to use these other NVIDIA extensions for some reasons.

I'm not familiar with the code but taking a quick look at what'd be needed to make it AMD compatible:

  • NV_bindless_multi_draw_indirect: Not used at all?
  • NV_gpu_shader5: No change needed, enabling this on AMD gives you the sized-types
  • NV_bindless_texture: Simply replace with ARB_bindless_texture
  • NV_uniform_buffer_unified_memory (and NV_vertex_buffer_unified_memory): Switch to regular UBO binding
  • NV_shader_buffer_load: Switch to regular SSBO
  • NV_fragment_shader_barycentric: Send BaryCoord or the terrain data from mesh to frag shader
  • NV_representative_fragment_test: Would be nice to have as it reduces redundant fragment shader invocations in visibility test but works without

@MCRcortex - Just in case you have any comment on that

So would this require a full recode or just a few changed lines of code? Because to me it just sounds like some replacing as opposed to a full rewrite.

@BoyBaykiller
Copy link

I think it should be possible to reuse a significant portion of code and logic, but at the same time a couple dozen lines is an understatement

@lubaozho
Copy link
Collaborator

I'm delighted to see that so many people are paying attention to this feature.
@haochen0914 We have made a patch to ensure that the gl_vk_meshlet_cadscene demo runs successfully on AMD GPUs.
gl_vk_meshlet_cadscene_AMD.patch : git apply gl_vk_meshlet_cadscene_AMD.patch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request fixed The issue has been fixed in published release OpenGL This is an issue with OpenGL driver
Projects
None yet
Development

No branches or pull requests