Added NonWritable + NonReadable Decorations. Fixes #689 #692
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #689.
This PR allows adding NonWritable and NonReadable decorations to StorageBuffers. This can be added to other types, Images for example. This is an opt in via attributes
#[spirv(non_writable)]
and#[spirv(non_readable)]
, and does not do any validation. Probablynon_writable
can be inferred from the function declaration but that can be addressed later.It looks like this:
As far as validation, this could be done in the validation pass or through the type system, by adding a trait bound to the argument. But the former is probably the most robust way, but it has to do a recursive check against all the access chains as well. It would be nice if immutable arguments were declared non_writable automatically for known types at the very least. For example,
&[T] where T: Copy
should be able to be marked non_writable.