summaryrefslogtreecommitdiffstats
path: root/src/amd/vulkan/radv_shader_info.c
diff options
context:
space:
mode:
authorRhys Perry <[email protected]>2019-04-29 13:41:46 +0100
committerRhys Perry <[email protected]>2019-09-16 19:42:30 +0000
commit0f29c9df315df8f8752cacc1d1ecab8cb9a2bb16 (patch)
tree9201b6c026e0d1e6b673321c76393efd5627242a /src/amd/vulkan/radv_shader_info.c
parentdcf13fbac9d28ac25fc2c42f87733740009ce621 (diff)
radv: keep GS threads with excessive emissions which could write to memory
Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
Diffstat (limited to 'src/amd/vulkan/radv_shader_info.c')
-rw-r--r--src/amd/vulkan/radv_shader_info.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/amd/vulkan/radv_shader_info.c b/src/amd/vulkan/radv_shader_info.c
index e8efbf6778b..950b5bd599d 100644
--- a/src/amd/vulkan/radv_shader_info.c
+++ b/src/amd/vulkan/radv_shader_info.c
@@ -310,6 +310,8 @@ gather_intrinsic_info(const nir_shader *nir, const nir_intrinsic_instr *instr,
instr->intrinsic == nir_intrinsic_image_deref_atomic_comp_swap) {
if (nir->info.stage == MESA_SHADER_FRAGMENT)
info->ps.writes_memory = true;
+ else if (nir->info.stage == MESA_SHADER_GEOMETRY)
+ info->gs.writes_memory = true;
}
break;
}
@@ -326,6 +328,8 @@ gather_intrinsic_info(const nir_shader *nir, const nir_intrinsic_instr *instr,
case nir_intrinsic_ssbo_atomic_comp_swap:
if (nir->info.stage == MESA_SHADER_FRAGMENT)
info->ps.writes_memory = true;
+ else if (nir->info.stage == MESA_SHADER_GEOMETRY)
+ info->gs.writes_memory = true;
break;
case nir_intrinsic_load_deref:
gather_intrinsic_load_deref_info(nir, instr, info);