- 
                Notifications
    
You must be signed in to change notification settings  - Fork 804
 
[SPIR-V] Implement QuadAny and QuadAll #7266
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
Conversation
| 
           Depends on KhronosGroup/SPIRV-Tools#6068.  | 
    
spirv-val has added a validation that enforces a minimum version of SPIR-V 1.3 when using VulkanMemoryModel, so I've updated the tests that use it to use the correct target environment. Needed for microsoft#7266.
spirv-val has added a validation that enforces a minimum version of SPIR-V 1.3 when using VulkanMemoryModel, so I've updated the tests that use it to use the correct target environment. Needed for microsoft#7266.
| 
           Depends on #7269.  | 
    
spirv-val has added a validation that enforces a minimum version of SPIR-V 1.3 when using VulkanMemoryModel, so I've updated the tests that use it to use the correct target environment. Needed for #7266.
If `"SPV_KHR_quad_control"` can be used, uses OpGroupNonUniformQuadAnyKHR and OpGroupNonUniformQuadAllKHR. If not, falls back to constructing the value using `OpGroupNonUniformQuadBroadcast`. Fixes microsoft#7247
9319056    to
    49cbce1      
    Compare
  
    QuadBroadcast -> QuadSwap correction
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.
LGTM I just want to see one extra test. Thanks.
        
          
                docs/SPIR-V.rst
              
                Outdated
          
        
      | ``QuadAny`` and ``QuadAll`` will use the ``OpGroupNonUniformQuadAnyKHR`` and | ||
| ``OpGroupNonUniformQuadAllKHR`` if the ``SPV_KHR_quad_control`` extension is | ||
| enabled. If it is not, they will fall back to constructing the value using | ||
| multiple calls to ``OpGroupNonUniformQuadBroadcast``. | 
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.
| ``QuadAny`` and ``QuadAll`` will use the ``OpGroupNonUniformQuadAnyKHR`` and | |
| ``OpGroupNonUniformQuadAllKHR`` if the ``SPV_KHR_quad_control`` extension is | |
| enabled. If it is not, they will fall back to constructing the value using | |
| multiple calls to ``OpGroupNonUniformQuadBroadcast``. | |
| ``QuadAny`` and ``QuadAll`` will use the ``OpGroupNonUniformQuadAnyKHR`` and | |
| ``OpGroupNonUniformQuadAllKHR`` instructions if the ``SPV_KHR_quad_control`` extension is | |
| enabled. If it is not, they will fall back to constructing the value using | |
| multiple calls to ``OpGroupNonUniformQuadBroadcast``. | 
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.
Done.
| @@ -0,0 +1,36 @@ | |||
| // RUN: %dxc -T cs_6_0 -E main -fspv-target-env=vulkan1.1 -fcgl %s -spirv | FileCheck %s --check-prefixes=CHECK,QUAD | |||
| // RUN: %dxc -T cs_6_0 -E main -fspv-target-env=vulkan1.1 -fspv-extension=SPV_KHR_16bit_storage -fcgl %s -spirv | FileCheck %s --check-prefixes=CHECK,NOQUAD | |||
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.
could we do a test with vulkan1.0 and check for the error? I think we can simply add another run command.
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.
Done.
If
"SPV_KHR_quad_control"can be used, usesOpGroupNonUniformQuadAnyKHRandOpGroupNonUniformQuadAllKHR. If not, falls back to constructing the value usingOpGroupNonUniformQuadBroadcast.Fixes #7247