File tree 2 files changed +11
-5
lines changed
2 files changed +11
-5
lines changed Original file line number Diff line number Diff line change @@ -1644,6 +1644,8 @@ impl Writer {
1644
1644
pub ( super ) fn write_control_barrier ( & mut self , flags : crate :: Barrier , block : & mut Block ) {
1645
1645
let memory_scope = if flags. contains ( crate :: Barrier :: STORAGE ) {
1646
1646
spirv:: Scope :: Device
1647
+ } else if flags. contains ( crate :: Barrier :: SUB_GROUP ) {
1648
+ spirv:: Scope :: Subgroup
1647
1649
} else {
1648
1650
spirv:: Scope :: Workgroup
1649
1651
} ;
@@ -1656,6 +1658,10 @@ impl Writer {
1656
1658
spirv:: MemorySemantics :: WORKGROUP_MEMORY ,
1657
1659
flags. contains ( crate :: Barrier :: WORK_GROUP ) ,
1658
1660
) ;
1661
+ semantics. set (
1662
+ spirv:: MemorySemantics :: SUBGROUP_MEMORY ,
1663
+ flags. contains ( crate :: Barrier :: SUB_GROUP ) ,
1664
+ ) ;
1659
1665
semantics. set (
1660
1666
spirv:: MemorySemantics :: IMAGE_MEMORY ,
1661
1667
flags. contains ( crate :: Barrier :: TEXTURE ) ,
Original file line number Diff line number Diff line change @@ -3858,11 +3858,11 @@ impl<I: Iterator<Item = u32>> Frontend<I> {
3858
3858
) ;
3859
3859
flags. set (
3860
3860
crate :: Barrier :: WORK_GROUP ,
3861
- semantics
3862
- & ( spirv :: MemorySemantics :: SUBGROUP_MEMORY
3863
- | spirv :: MemorySemantics :: WORKGROUP_MEMORY )
3864
- . bits ( )
3865
- != 0 ,
3861
+ semantics & ( spirv :: MemorySemantics :: WORKGROUP_MEMORY ) . bits ( ) != 0 ,
3862
+ ) ;
3863
+ flags . set (
3864
+ crate :: Barrier :: SUB_GROUP ,
3865
+ semantics & spirv :: MemorySemantics :: SUBGROUP_MEMORY . bits ( ) != 0 ,
3866
3866
) ;
3867
3867
flags. set (
3868
3868
crate :: Barrier :: TEXTURE ,
You can’t perform that action at this time.
0 commit comments