radv: load the fast color clear values from the base level
[mesa.git] / src / amd / vulkan / radv_meta_fmask_expand.c
index f4b553289294dacc9b6adf2b11ab4bf2d602a6c6..a9567eaf0fd3fc7f9afa7ad553b5082394f55b41 100644 (file)
@@ -30,10 +30,7 @@ build_fmask_expand_compute_shader(struct radv_device *device, int samples)
 {
        nir_builder b;
        char name[64];
-       const struct glsl_type *input_img_type =
-               glsl_sampler_type(GLSL_SAMPLER_DIM_MS, false, false,
-                                 GLSL_TYPE_FLOAT);
-       const struct glsl_type *output_img_type =
+       const struct glsl_type *img_type =
                glsl_sampler_type(GLSL_SAMPLER_DIM_MS, false, false,
                                  GLSL_TYPE_FLOAT);
 
@@ -46,14 +43,15 @@ build_fmask_expand_compute_shader(struct radv_device *device, int samples)
        b.shader->info.cs.local_size[2] = 1;
 
        nir_variable *input_img = nir_variable_create(b.shader, nir_var_uniform,
-                                                     input_img_type, "s_tex");
+                                                     img_type, "s_tex");
        input_img->data.descriptor_set = 0;
        input_img->data.binding = 0;
 
        nir_variable *output_img = nir_variable_create(b.shader, nir_var_uniform,
-                                                      output_img_type, "out_img");
+                                                      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);
        nir_ssa_def *wg_id = nir_load_work_group_id(&b);
@@ -146,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[]) {
                                                              {
@@ -252,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,