Mesa (main): radv: remove unecessary radv_finishme() for invalid color formats

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Aug 27 07:46:33 UTC 2021


Module: Mesa
Branch: main
Commit: d90a8c79dff0b3149956e46785f314685a701a49
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d90a8c79dff0b3149956e46785f314685a701a49

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Thu Aug 26 11:00:33 2021 +0200

radv: remove unecessary radv_finishme() for invalid color formats

Something really bad happen (likely driver bug) if this is triggered.
Replace with some assertions to catch an eventual issue in debug build.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12556>

---

 src/amd/vulkan/radv_device.c     |  4 ++--
 src/amd/vulkan/radv_meta_clear.c | 11 ++---------
 src/amd/vulkan/radv_private.h    | 13 -------------
 src/amd/vulkan/radv_util.c       | 12 ------------
 4 files changed, 4 insertions(+), 36 deletions(-)

diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 63baee59f0b..a4366192cbd 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -6705,8 +6705,8 @@ radv_initialise_color_surface(struct radv_device *device, struct radv_color_buff
    ntype = radv_translate_color_numformat(iview->vk_format, desc,
                                           vk_format_get_first_non_void_channel(iview->vk_format));
    format = radv_translate_colorformat(iview->vk_format);
-   if (format == V_028C70_COLOR_INVALID || ntype == ~0u)
-      radv_finishme("Illegal color\n");
+   assert(format != V_028C70_COLOR_INVALID);
+
    swap = radv_translate_colorswap(iview->vk_format, false);
    endian = radv_colorformat_endian_swap(format);
 
diff --git a/src/amd/vulkan/radv_meta_clear.c b/src/amd/vulkan/radv_meta_clear.c
index 1b320ad61d8..341e8dea416 100644
--- a/src/amd/vulkan/radv_meta_clear.c
+++ b/src/amd/vulkan/radv_meta_clear.c
@@ -399,11 +399,7 @@ emit_color_clear(struct radv_cmd_buffer *cmd_buffer, const VkClearAttachment *cl
 
    samples_log2 = ffs(samples) - 1;
    fs_key = radv_format_meta_fs_key(device, format);
-
-   if (fs_key == -1) {
-      radv_finishme("color clears incomplete");
-      return;
-   }
+   assert(fs_key != -1);
 
    if (device->meta_state.clear[samples_log2].render_pass[fs_key] == VK_NULL_HANDLE) {
       VkResult ret =
@@ -426,10 +422,7 @@ emit_color_clear(struct radv_cmd_buffer *cmd_buffer, const VkClearAttachment *cl
    }
 
    pipeline = device->meta_state.clear[samples_log2].color_pipelines[fs_key];
-   if (!pipeline) {
-      radv_finishme("color clears incomplete");
-      return;
-   }
+
    assert(samples_log2 < ARRAY_SIZE(device->meta_state.clear));
    assert(pipeline);
    assert(clear_att->aspectMask == VK_IMAGE_ASPECT_COLOR_BIT);
diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
index adeea405b0d..bf969b3b949 100644
--- a/src/amd/vulkan/radv_private.h
+++ b/src/amd/vulkan/radv_private.h
@@ -216,24 +216,11 @@ VkResult __vk_errorf(struct radv_instance *instance, const void *object,
    __vk_errorf(instance, NULL, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, error, __FILE__, __LINE__, \
                format, ##__VA_ARGS__);
 
-void __radv_finishme(const char *file, int line, const char *format, ...) radv_printflike(3, 4);
 void radv_loge(const char *format, ...) radv_printflike(1, 2);
 void radv_loge_v(const char *format, va_list va);
 void radv_logi(const char *format, ...) radv_printflike(1, 2);
 void radv_logi_v(const char *format, va_list va);
 
-/**
- * Print a FINISHME message, including its source location.
- */
-#define radv_finishme(format, ...)                                                                 \
-   do {                                                                                            \
-      static bool reported = false;                                                                \
-      if (!reported) {                                                                             \
-         __radv_finishme(__FILE__, __LINE__, format, ##__VA_ARGS__);                               \
-         reported = true;                                                                          \
-      }                                                                                            \
-   } while (0)
-
 /* A non-fatal assert.  Useful for debugging. */
 #ifdef NDEBUG
 #define radv_assert(x)                                                                             \
diff --git a/src/amd/vulkan/radv_util.c b/src/amd/vulkan/radv_util.c
index 153f65dd90f..ade0ffeaaa6 100644
--- a/src/amd/vulkan/radv_util.c
+++ b/src/amd/vulkan/radv_util.c
@@ -72,18 +72,6 @@ radv_logi_v(const char *format, va_list va)
    fprintf(stderr, "\n");
 }
 
-void radv_printflike(3, 4) __radv_finishme(const char *file, int line, const char *format, ...)
-{
-   va_list ap;
-   char buffer[256];
-
-   va_start(ap, format);
-   vsnprintf(buffer, sizeof(buffer), format, ap);
-   va_end(ap);
-
-   fprintf(stderr, "%s:%d: FINISHME: %s\n", file, line, buffer);
-}
-
 VkResult
 __vk_errorv(struct radv_instance *instance, const void *object, VkDebugReportObjectTypeEXT type,
             VkResult error, const char *file, int line, const char *format, va_list ap)



More information about the mesa-commit mailing list