radv/gfx10: emit streamout shader config
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 23 Jul 2019 12:55:16 +0000 (14:55 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 24 Jul 2019 06:23:32 +0000 (08:23 +0200)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_shader.c

index 5fd1022b05a2d243f1562ca17d757b605807fed8..56f421026b75c8286568bbd3bb32d10a680e0304 100644 (file)
@@ -690,7 +690,12 @@ static void radv_postprocess_config(const struct radv_physical_device *pdevice,
        config_out->float_mode |= V_00B028_FP_64_DENORMS;
 
        config_out->rsrc2 = S_00B12C_USER_SGPR(info->num_user_sgprs) |
-                           S_00B12C_SCRATCH_EN(scratch_enabled);
+                           S_00B12C_SCRATCH_EN(scratch_enabled) |
+                           S_00B12C_SO_BASE0_EN(!!info->info.so.strides[0]) |
+                           S_00B12C_SO_BASE1_EN(!!info->info.so.strides[1]) |
+                           S_00B12C_SO_BASE2_EN(!!info->info.so.strides[2]) |
+                           S_00B12C_SO_BASE3_EN(!!info->info.so.strides[3]) |
+                           S_00B12C_SO_EN(!!info->info.so.num_outputs);
 
        config_out->rsrc1 = S_00B848_VGPRS((num_vgprs - 1) / 4) |
                            S_00B848_DX10_CLAMP(1) |
@@ -700,12 +705,7 @@ static void radv_postprocess_config(const struct radv_physical_device *pdevice,
                config_out->rsrc2 |= S_00B22C_USER_SGPR_MSB_GFX10(info->num_user_sgprs >> 5);
        } else {
                config_out->rsrc1 |= S_00B228_SGPRS((num_sgprs - 1) / 8);
-               config_out->rsrc2 |= S_00B22C_USER_SGPR_MSB_GFX9(info->num_user_sgprs >> 5)  |
-                                    S_00B12C_SO_BASE0_EN(!!info->info.so.strides[0]) |
-                                    S_00B12C_SO_BASE1_EN(!!info->info.so.strides[1]) |
-                                    S_00B12C_SO_BASE2_EN(!!info->info.so.strides[2]) |
-                                    S_00B12C_SO_BASE3_EN(!!info->info.so.strides[3]) |
-                                    S_00B12C_SO_EN(!!info->info.so.num_outputs);
+               config_out->rsrc2 |= S_00B22C_USER_SGPR_MSB_GFX9(info->num_user_sgprs >> 5);
        }
 
        switch (stage) {