-
Notifications
You must be signed in to change notification settings - Fork 545
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 shaders: implement for Vulkan backend #3253
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
I didn't read the example code too much, I assume it mostly follows the other examples.
Expressed my questions/concerns, there aren't many :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! Looks like we are almost there!
src/backend/vulkan/src/lib.rs
Outdated
@@ -1081,6 +1098,9 @@ impl adapter::PhysicalDevice<Backend> for PhysicalDevice { | |||
if features.inherited_queries != 0 { | |||
bits |= Features::INHERITED_QUERIES; | |||
} | |||
if self.supports_extension(*MESH_SHADER) { | |||
bits |= Features::MESH_SHADER; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what about TASK_SHADER
bit?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added. Can't be separated without VkPhysicalFeatures2. Most probably inconsequential as DirectX 12 requires both shaders to be supported despite Task being optional in the pipeline as well as in the Vulkan extension itself.
some fixes fix some review notes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Superb!
bors r+
Build succeeded: |
This also includes an example.
To discuss\resolve:
mesh_fn
added toRawDevice
. Is it ok? Will It stay ok being extended with many more extensions?pNext
member to some structs that should have had one. This includes VkPhysicalProperties. Without Vulkan 1.1(or KHR extension) where this was remedied, we are unable to query for limits of the mesh shader extension that are inside VkPhysicalDeviceMeshShaderPropertiesNV struct.PR checklist:
make
succeeds (on *nix)make reftests
succeedsrustfmt
run on changed code