radv: use only one descriptor in the fmask expand pass
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 20 May 2019 08:28:03 +0000 (10:28 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 5 Jun 2019 18:50:58 +0000 (20:50 +0200)
This removes one useless SMEM load operations which pointed to
the same descriptor anyway.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_meta_fmask_expand.c

index 44068edc89ec9e74e58209e2dd9feb9c31246e0c..a9567eaf0fd3fc7f9afa7ad553b5082394f55b41 100644 (file)
@@ -50,7 +50,7 @@ build_fmask_expand_compute_shader(struct radv_device *device, int samples)
        nir_variable *output_img = nir_variable_create(b.shader, nir_var_uniform,
                                                       img_type, "out_img");
        output_img->data.descriptor_set = 0;
-       output_img->data.binding = 1;
+       output_img->data.binding = 0;
        output_img->data.image.access = ACCESS_NON_READABLE;
 
        nir_ssa_def *invoc_id = nir_load_local_invocation_id(&b);
@@ -144,27 +144,13 @@ radv_expand_fmask_image_inplace(struct radv_cmd_buffer *cmd_buffer,
                                              VK_PIPELINE_BIND_POINT_COMPUTE,
                                              cmd_buffer->device->meta_state.fmask_expand.p_layout,
                                              0, /* set */
-                                             2, /* descriptorWriteCount */
+                                             1, /* descriptorWriteCount */
                                              (VkWriteDescriptorSet[]) {
                                              {
                                                      .sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
                                                      .dstBinding = 0,
                                                      .dstArrayElement = 0,
                                                      .descriptorCount = 1,
-                                                     .descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
-                                                     .pImageInfo = (VkDescriptorImageInfo[]) {
-                                                             {
-                                                                     .sampler = VK_NULL_HANDLE,
-                                                                     .imageView = radv_image_view_to_handle(&iview),
-                                                                     .imageLayout = VK_IMAGE_LAYOUT_GENERAL
-                                                             },
-                                                     }
-                                             },
-                                             {
-                                                     .sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
-                                                     .dstBinding = 1,
-                                                     .dstArrayElement = 0,
-                                                     .descriptorCount = 1,
                                                      .descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
                                                      .pImageInfo = (VkDescriptorImageInfo[]) {
                                                              {
@@ -250,17 +236,10 @@ radv_device_init_meta_fmask_expand_state(struct radv_device *device)
        VkDescriptorSetLayoutCreateInfo ds_create_info = {
                .sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
                .flags = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,
-               .bindingCount = 2,
+               .bindingCount = 1,
                .pBindings = (VkDescriptorSetLayoutBinding[]) {
                        {
                                .binding = 0,
-                               .descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
-                               .descriptorCount = 1,
-                               .stageFlags = VK_SHADER_STAGE_COMPUTE_BIT,
-                               .pImmutableSamplers = NULL
-                       },
-                       {
-                               .binding = 1,
                                .descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
                                .descriptorCount = 1,
                                .stageFlags = VK_SHADER_STAGE_COMPUTE_BIT,