[Mesa-dev] [PATCH 08/19] radv: remove the resummarize decompress depth state

Samuel Pitoiset samuel.pitoiset at gmail.com
Mon Oct 2 09:42:31 UTC 2017



On 10/01/2017 11:50 PM, Bas Nieuwenhuizen wrote:
> I'd like to keep this due to potential use for fixing the htile bugs.
> 
> See e.g. https://bugs.freedesktop.org/show_bug.cgi?id=102488

Okay, makes sense to keep it.

> 
> On Fri, Sep 29, 2017 at 5:48 PM, Samuel Pitoiset
> <samuel.pitoiset at gmail.com> wrote:
>> It's unused.
>>
>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>> ---
>>   src/amd/vulkan/radv_meta.h            |  3 --
>>   src/amd/vulkan/radv_meta_decompress.c | 69 +++++------------------------------
>>   src/amd/vulkan/radv_pipeline.c        |  1 -
>>   src/amd/vulkan/radv_private.h         |  2 -
>>   4 files changed, 10 insertions(+), 65 deletions(-)
>>
>> diff --git a/src/amd/vulkan/radv_meta.h b/src/amd/vulkan/radv_meta.h
>> index 20b4498ab3..f0685d6e34 100644
>> --- a/src/amd/vulkan/radv_meta.h
>> +++ b/src/amd/vulkan/radv_meta.h
>> @@ -176,9 +176,6 @@ void radv_meta_clear_image_cs(struct radv_cmd_buffer *cmd_buffer,
>>   void radv_decompress_depth_image_inplace(struct radv_cmd_buffer *cmd_buffer,
>>                                           struct radv_image *image,
>>                                           VkImageSubresourceRange *subresourceRange);
>> -void radv_resummarize_depth_image_inplace(struct radv_cmd_buffer *cmd_buffer,
>> -                                         struct radv_image *image,
>> -                                         VkImageSubresourceRange *subresourceRange);
>>   void radv_fast_clear_flush_image_inplace(struct radv_cmd_buffer *cmd_buffer,
>>                                           struct radv_image *image,
>>                                           const VkImageSubresourceRange *subresourceRange);
>> diff --git a/src/amd/vulkan/radv_meta_decompress.c b/src/amd/vulkan/radv_meta_decompress.c
>> index 23bc2e6dfd..fedcfad3ae 100644
>> --- a/src/amd/vulkan/radv_meta_decompress.c
>> +++ b/src/amd/vulkan/radv_meta_decompress.c
>> @@ -80,8 +80,7 @@ create_pipeline(struct radv_device *device,
>>                   VkShaderModule vs_module_h,
>>                  uint32_t samples,
>>                  VkRenderPass pass,
>> -               VkPipeline *decompress_pipeline,
>> -               VkPipeline *resummarize_pipeline)
>> +               VkPipeline *decompress_pipeline)
>>   {
>>          VkResult result;
>>          VkDevice device_h = radv_device_to_handle(device);
>> @@ -182,20 +181,6 @@ create_pipeline(struct radv_device *device,
>>          if (result != VK_SUCCESS)
>>                  goto cleanup;
>>
>> -       result = radv_graphics_pipeline_create(device_h,
>> -                                              radv_pipeline_cache_to_handle(&device->meta_state.cache),
>> -                                              &pipeline_create_info,
>> -                                              &(struct radv_graphics_pipeline_create_info) {
>> -                                                       .use_rectlist = true,
>> -                                                       .db_flush_depth_inplace = true,
>> -                                                       .db_flush_stencil_inplace = true,
>> -                                                       .db_resummarize = true,
>> -                                              },
>> -                                              &device->meta_state.alloc,
>> -                                              resummarize_pipeline);
>> -       if (result != VK_SUCCESS)
>> -               goto cleanup;
>> -
>>          goto cleanup;
>>
>>   cleanup:
>> @@ -219,10 +204,6 @@ radv_device_finish_meta_depth_decomp_state(struct radv_device *device)
>>                  if (pipeline_h) {
>>                          radv_DestroyPipeline(device_h, pipeline_h, alloc);
>>                  }
>> -               pipeline_h = state->depth_decomp[i].resummarize_pipeline;
>> -               if (pipeline_h) {
>> -                       radv_DestroyPipeline(device_h, pipeline_h, alloc);
>> -               }
>>          }
>>   }
>>
>> @@ -250,8 +231,7 @@ radv_device_init_meta_depth_decomp_state(struct radv_device *device)
>>
>>                  res = create_pipeline(device, vs_module_h, samples,
>>                                        state->depth_decomp[i].pass,
>> -                                     &state->depth_decomp[i].decompress_pipeline,
>> -                                     &state->depth_decomp[i].resummarize_pipeline);
>> +                                     &state->depth_decomp[i].decompress_pipeline);
>>                  if (res != VK_SUCCESS)
>>                          goto fail;
>>          }
>> @@ -299,16 +279,10 @@ emit_depth_decomp(struct radv_cmd_buffer *cmd_buffer,
>>          radv_CmdDraw(cmd_buffer_h, 3, 1, 0, 0);
>>   }
>>
>> -
>> -enum radv_depth_op {
>> -       DEPTH_DECOMPRESS,
>> -       DEPTH_RESUMMARIZE,
>> -};
>> -
>> -static void radv_process_depth_image_inplace(struct radv_cmd_buffer *cmd_buffer,
>> -                                            struct radv_image *image,
>> -                                            VkImageSubresourceRange *subresourceRange,
>> -                                            enum radv_depth_op op)
>> +void
>> +radv_decompress_depth_image_inplace(struct radv_cmd_buffer *cmd_buffer,
>> +                                   struct radv_image *image,
>> +                                   VkImageSubresourceRange *subresourceRange)
>>   {
>>          struct radv_meta_saved_state saved_state;
>>          struct radv_meta_saved_pass_state saved_pass_state;
>> @@ -322,6 +296,8 @@ static void radv_process_depth_image_inplace(struct radv_cmd_buffer *cmd_buffer,
>>          uint32_t samples_log2 = ffs(samples) - 1;
>>          struct radv_meta_state *meta_state = &cmd_buffer->device->meta_state;
>>
>> +       assert(cmd_buffer->queue_family_index == RADV_QUEUE_GENERAL);
>> +
>>          if (!image->surface.htile_size)
>>                  return;
>>          radv_meta_save_pass(&saved_pass_state, cmd_buffer);
>> @@ -382,17 +358,8 @@ static void radv_process_depth_image_inplace(struct radv_cmd_buffer *cmd_buffer,
>>                                             },
>>                                             VK_SUBPASS_CONTENTS_INLINE);
>>
>> -               VkPipeline pipeline_h;
>> -               switch (op) {
>> -               case DEPTH_DECOMPRESS:
>> -                       pipeline_h = meta_state->depth_decomp[samples_log2].decompress_pipeline;
>> -                       break;
>> -               case DEPTH_RESUMMARIZE:
>> -                       pipeline_h = meta_state->depth_decomp[samples_log2].resummarize_pipeline;
>> -                       break;
>> -               default:
>> -                       unreachable("unknown operation");
>> -               }
>> +               VkPipeline pipeline_h =
>> +                       meta_state->depth_decomp[samples_log2].decompress_pipeline;
>>
>>                  emit_depth_decomp(cmd_buffer, &(VkOffset2D){0, 0 }, &(VkExtent2D){width, height}, pipeline_h);
>>                  radv_CmdEndRenderPass(cmd_buffer_h);
>> @@ -403,19 +370,3 @@ static void radv_process_depth_image_inplace(struct radv_cmd_buffer *cmd_buffer,
>>          radv_meta_restore(&saved_state, cmd_buffer);
>>          radv_meta_restore_pass(&saved_pass_state, cmd_buffer);
>>   }
>> -
>> -void radv_decompress_depth_image_inplace(struct radv_cmd_buffer *cmd_buffer,
>> -                                        struct radv_image *image,
>> -                                        VkImageSubresourceRange *subresourceRange)
>> -{
>> -       assert(cmd_buffer->queue_family_index == RADV_QUEUE_GENERAL);
>> -       radv_process_depth_image_inplace(cmd_buffer, image, subresourceRange, DEPTH_DECOMPRESS);
>> -}
>> -
>> -void radv_resummarize_depth_image_inplace(struct radv_cmd_buffer *cmd_buffer,
>> -                                        struct radv_image *image,
>> -                                        VkImageSubresourceRange *subresourceRange)
>> -{
>> -       assert(cmd_buffer->queue_family_index == RADV_QUEUE_GENERAL);
>> -       radv_process_depth_image_inplace(cmd_buffer, image, subresourceRange, DEPTH_RESUMMARIZE);
>> -}
>> diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c
>> index 228fdf4ab0..808c41d1b9 100644
>> --- a/src/amd/vulkan/radv_pipeline.c
>> +++ b/src/amd/vulkan/radv_pipeline.c
>> @@ -971,7 +971,6 @@ radv_pipeline_init_depth_stencil_state(struct radv_pipeline *pipeline,
>>                  ds->db_render_control |= S_028000_DEPTH_CLEAR_ENABLE(extra->db_depth_clear);
>>                  ds->db_render_control |= S_028000_STENCIL_CLEAR_ENABLE(extra->db_stencil_clear);
>>
>> -               ds->db_render_control |= S_028000_RESUMMARIZE_ENABLE(extra->db_resummarize);
>>                  ds->db_render_control |= S_028000_DEPTH_COMPRESS_DISABLE(extra->db_flush_depth_inplace);
>>                  ds->db_render_control |= S_028000_STENCIL_COMPRESS_DISABLE(extra->db_flush_stencil_inplace);
>>                  ds->db_render_override2 |= S_028010_DISABLE_ZMASK_EXPCLEAR_OPTIMIZATION(extra->db_depth_disable_expclear);
>> diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
>> index 93898a6ad1..f292709805 100644
>> --- a/src/amd/vulkan/radv_private.h
>> +++ b/src/amd/vulkan/radv_private.h
>> @@ -439,7 +439,6 @@ struct radv_meta_state {
>>
>>          struct {
>>                  VkPipeline                                decompress_pipeline;
>> -               VkPipeline                                resummarize_pipeline;
>>                  VkRenderPass                              pass;
>>          } depth_decomp[1 + MAX_SAMPLES_LOG2];
>>
>> @@ -1134,7 +1133,6 @@ struct radv_graphics_pipeline_create_info {
>>          bool db_stencil_disable_expclear;
>>          bool db_flush_depth_inplace;
>>          bool db_flush_stencil_inplace;
>> -       bool db_resummarize;
>>          uint32_t custom_blend_mode;
>>   };
>>
>> --
>> 2.14.2
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list