radv/gfx10: update streamout descriptors
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 23 Jul 2019 08:12:13 +0000 (10:12 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 24 Jul 2019 06:23:27 +0000 (08:23 +0200)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_cmd_buffer.c

index 3f4940e9c668682d9de0ca7152959d575a50bb4c..d9783e6ca8a8a4fb4999b2c57cf1fe99a6573d2b 100644 (file)
@@ -2461,8 +2461,15 @@ radv_flush_streamout_descriptors(struct radv_cmd_buffer *cmd_buffer)
                        desc[3] = S_008F0C_DST_SEL_X(V_008F0C_SQ_SEL_X) |
                                  S_008F0C_DST_SEL_Y(V_008F0C_SQ_SEL_Y) |
                                  S_008F0C_DST_SEL_Z(V_008F0C_SQ_SEL_Z) |
-                                 S_008F0C_DST_SEL_W(V_008F0C_SQ_SEL_W) |
-                                 S_008F0C_DATA_FORMAT(V_008F0C_BUF_DATA_FORMAT_32);
+                                 S_008F0C_DST_SEL_W(V_008F0C_SQ_SEL_W);
+
+                       if (cmd_buffer->device->physical_device->rad_info.chip_class >= GFX10) {
+                               desc[3] |= S_008F0C_FORMAT(V_008F0C_IMG_FORMAT_32_FLOAT) |
+                                          S_008F0C_OOB_SELECT(3) |
+                                          S_008F0C_RESOURCE_LEVEL(1);
+                       } else {
+                               desc[3] |= S_008F0C_DATA_FORMAT(V_008F0C_BUF_DATA_FORMAT_32);
+                       }
                }
 
                va = radv_buffer_get_va(cmd_buffer->upload.upload_bo);