Skip to content

Commit 0139947

Browse files
authored
Merge pull request #28 from ArielG-NV/coherent-ptr-amendment
Amend Coherent Pointers Proposal
2 parents 91ffa74 + 32e50f3 commit 0139947

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

proposals/031-coherent-pointers.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -113,13 +113,9 @@ Any access through a coherent-pointer to a `groupshared` object is coherent; Sin
113113

114114
`CoopVec` and `CoopMat` load data into their respective data-structures from other objects using `CoopVec::Load`, `CoopVec::Store`, `CoopMat::Load`, and `CoopMat::Store`. Due to this design, we will add coherent operations to `CoopVec` and `CoopMat` by modifying `CoopVec::Load`, `CoopVec::Store`, `CoopMat::Load`, and `CoopMat::Store` to complete coherent operations if given a `CoherentPtr` as a parameter. Syntax required to use the method(s) will not change.
115115

116-
### Support Casting Pointers With Different `CoherentScope`
116+
### Casting Pointers
117117

118-
We will allow pointers with different `CoherentScope` to be explicitly castable to each other. For example, `CoherentPtr<int, CoherentScope::Device>` will be castable to `CoherentPtr<int, MemoryScope.Workgroup>`.
119-
120-
### Casting and Pointer access
121-
122-
We will not allow casting between pointers of different `Access`.
118+
All pointers can be casted to each other. Casting must be explicit.
123119

124120
### Banned keywords
125121

@@ -129,12 +125,12 @@ HLSL style `globallycoherent T*` and GLSL style `coherent T*` will be disallowed
129125

130126
* Frontend for coherent pointers & pointer access
131127
* Logic for pointer access
128+
* Support casting explicitly between pointers
129+
* Disallow `globallycoherent T*` and `coherent T*`
132130
* Support for coherent buffers and textures
133-
* Support casting between pointers with different `CoherentScope`
134131
* Support for workgroup memory pointers.
135132
* Support for coherent workgroup memory
136133
* Support for coherent cooperative matrix & cooperative vector
137-
* disallow `globallycoherent T*` and `coherent T*`
138134

139135
## Future Work
140136

0 commit comments

Comments
 (0)