Module: Mesa
Branch: master
Commit: f2c6a5506114f74fb12d77aeddb2f06b5602101c
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f2c6a5506114f74fb12d77aeddb2f06b5602101c

Author: Daniel Schürmann <daniel.schuerm...@campus.tu-berlin.de>
Date:   Tue Mar  6 15:05:13 2018 +0100

radv: enable subgroup capabilities

Reviewed-by: Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl>

---

 src/amd/vulkan/radv_device.c | 10 ++++++++--
 src/amd/vulkan/radv_shader.c |  7 ++++++-
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index a4a0ea6dd5..b8313b26eb 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -940,8 +940,14 @@ void radv_GetPhysicalDeviceProperties2(
                            (VkPhysicalDeviceSubgroupProperties*)ext;
                        properties->subgroupSize = 64;
                        properties->supportedStages = VK_SHADER_STAGE_ALL;
-                       properties->supportedOperations = 
VK_SUBGROUP_FEATURE_BASIC_BIT;
-                       properties->quadOperationsInAllStages = false;
+                       properties->supportedOperations =
+                                                       
VK_SUBGROUP_FEATURE_BASIC_BIT |
+                                                       
VK_SUBGROUP_FEATURE_BALLOT_BIT |
+                                                       
VK_SUBGROUP_FEATURE_QUAD_BIT |
+                                                       
VK_SUBGROUP_FEATURE_SHUFFLE_BIT |
+                                                       
VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT |
+                                                       
VK_SUBGROUP_FEATURE_VOTE_BIT;
+                       properties->quadOperationsInAllStages = true;
                        break;
                }
                case 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c
index eaf24dcdee..9d49bc02a8 100644
--- a/src/amd/vulkan/radv_shader.c
+++ b/src/amd/vulkan/radv_shader.c
@@ -213,7 +213,11 @@ radv_shader_compile_to_nir(struct radv_device *device,
                                .tessellation = true,
                                .int64 = true,
                                .multiview = true,
+                               .subgroup_ballot = true,
                                .subgroup_basic = true,
+                               .subgroup_quad = true,
+                               .subgroup_shuffle = true,
+                               .subgroup_vote = true,
                                .variable_pointers = true,
                                .gcn_shader = true,
                                .trinary_minmax = true,
@@ -283,7 +287,8 @@ radv_shader_compile_to_nir(struct radv_device *device,
                        .lower_to_scalar = 1,
                        .lower_subgroup_masks = 1,
                        .lower_shuffle = 1,
-                       .lower_quad =  1,
+                       .lower_shuffle_to_32bit = 1,
+                       .lower_vote_eq_to_ballot = 1,
                });
 
        radv_optimize_nir(nir);

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to