summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>2020-08-07 16:05:46 +0200
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>2020-08-10 14:09:19 +0200
commitcc4b9c2128cd6b533d74a2fad01c016370218ff1 (patch)
tree76cf2363acb9b3dee48a0b9c85fdc470526eaadf
parent11781c0e49dd757da1c7dfe708db99f73198c461 (diff)
radv: rework the error function helpers a bit
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6230>
-rw-r--r--src/amd/vulkan/radv_private.h8
-rw-r--r--src/amd/vulkan/radv_util.c28
2 files changed, 28 insertions, 8 deletions
diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
index 603b0c94a22..0634350701e 100644
--- a/src/amd/vulkan/radv_private.h
+++ b/src/amd/vulkan/radv_private.h
@@ -194,7 +194,13 @@ radv_clear_mask(uint32_t *inout_mask, uint32_t clear_mask)
struct radv_image_view;
struct radv_instance;
-VkResult __vk_errorf(struct radv_instance *instance, VkResult error, const char *file, int line, const char *format, ...);
+VkResult __vk_errorv(struct radv_instance *instance, VkResult error,
+ const char *file, int line, const char *format,
+ va_list args);
+
+VkResult __vk_errorf(struct radv_instance *instance, VkResult error,
+ const char *file, int line, const char *format, ...)
+ radv_printflike(5, 6);
#define vk_error(instance, error) __vk_errorf(instance, error, __FILE__, __LINE__, NULL);
#define vk_errorf(instance, error, format, ...) __vk_errorf(instance, error, __FILE__, __LINE__, format, ## __VA_ARGS__);
diff --git a/src/amd/vulkan/radv_util.c b/src/amd/vulkan/radv_util.c
index 72bedc687d4..01224157e5e 100644
--- a/src/amd/vulkan/radv_util.c
+++ b/src/amd/vulkan/radv_util.c
@@ -88,11 +88,11 @@ void radv_printflike(3, 4)
}
VkResult
-__vk_errorf(struct radv_instance *instance, VkResult error, const char *file,
- int line, const char *format, ...)
+__vk_errorv(struct radv_instance *instance, VkResult error, const char *file,
+ int line, const char *format, va_list ap)
{
- va_list ap;
char buffer[256];
+ char report[512];
const char *error_str = vk_Result_to_str(error);
@@ -102,15 +102,29 @@ __vk_errorf(struct radv_instance *instance, VkResult error, const char *file,
#endif
if (format) {
- va_start(ap, format);
vsnprintf(buffer, sizeof(buffer), format, ap);
- va_end(ap);
- fprintf(stderr, "%s:%d: %s (%s)\n", file, line, buffer, error_str);
+ snprintf(report, sizeof(report), "%s:%d: %s (%s)", file, line,
+ buffer, error_str);
} else {
- fprintf(stderr, "%s:%d: %s\n", file, line, error_str);
+ snprintf(report, sizeof(report), "%s:%d: %s", file, line,
+ error_str);
}
+ fprintf(stderr, "%s\n", report);
+
return error;
}
+VkResult
+__vk_errorf(struct radv_instance *instance, VkResult error, const char *file,
+ int line, const char *format, ...)
+{
+ va_list ap;
+
+ va_start(ap, format);
+ __vk_errorv(instance, error, file, line, format, ap);
+ va_end(ap);
+
+ return error;
+}