radv/gfx10: implement radv_CmdBindDescriptorSets()
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 25 Jun 2019 12:02:52 +0000 (14:02 +0200)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sun, 7 Jul 2019 15:51:31 +0000 (17:51 +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 fa178314cc8bd52c6ce2ed2cabfaaf268f54564f..8162f7d557ece8e8fb044f41c22200530432411c 100644 (file)
@@ -3260,9 +3260,17 @@ void radv_CmdBindDescriptorSets(
                        dst[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_NUM_FORMAT(V_008F0C_BUF_NUM_FORMAT_FLOAT) |
-                                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) {
+                               dst[3] |= S_008F0C_FORMAT(V_008F0C_IMG_FORMAT_32_FLOAT) |
+                                         S_008F0C_OOB_SELECT(3) |
+                                         S_008F0C_RESOURCE_LEVEL(1);
+                       } else {
+                               dst[3] |= S_008F0C_NUM_FORMAT(V_008F0C_BUF_NUM_FORMAT_FLOAT) |
+                                         S_008F0C_DATA_FORMAT(V_008F0C_BUF_DATA_FORMAT_32);
+                       }
+
                        cmd_buffer->push_constant_stages |=
                                             set->layout->dynamic_shader_stages;
                }