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

Author: Daniel Stone <dani...@collabora.com>
Date:   Wed Nov 15 11:20:26 2023 +0000

panfrost/ci: Add environment variable to suppress warnings

Without it, our test log fills up with warnings that crawling index
buffers from the CPU isn't valid. We know that.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26449>

---

 .gitlab-ci/common/generate-env.sh         |  1 +
 src/panfrost/ci/gitlab-ci.yml             |  1 +
 src/panfrost/vulkan/panvk_device.c        | 13 +++++++++----
 src/panfrost/vulkan/panvk_private.h       |  1 +
 src/panfrost/vulkan/panvk_vX_cmd_buffer.c | 13 +++++++++----
 5 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/.gitlab-ci/common/generate-env.sh 
b/.gitlab-ci/common/generate-env.sh
index aa760e300a1..0e06e402982 100755
--- a/.gitlab-ci/common/generate-env.sh
+++ b/.gitlab-ci/common/generate-env.sh
@@ -91,6 +91,7 @@ for var in \
     NIR_DEBUG \
     PAN_I_WANT_A_BROKEN_VULKAN_DRIVER \
     PAN_MESA_DEBUG \
+    PANVK_DEBUG \
     PIGLIT_FRACTION \
     PIGLIT_NO_WINDOW \
     PIGLIT_OPTIONS \
diff --git a/src/panfrost/ci/gitlab-ci.yml b/src/panfrost/ci/gitlab-ci.yml
index cdde45c9cb2..18be6b04b82 100644
--- a/src/panfrost/ci/gitlab-ci.yml
+++ b/src/panfrost/ci/gitlab-ci.yml
@@ -210,6 +210,7 @@ panfrost-g52-vk:arm64:
     VK_DRIVER: panfrost
     MESA_VK_IGNORE_CONFORMANCE_WARNING: 1
     PAN_I_WANT_A_BROKEN_VULKAN_DRIVER: 1
+    PANVK_DEBUG: no_known_warn
     DEQP_SUITE: panfrost-g52-vk
 
 panfrost-g52-piglit-gles2:arm64:
diff --git a/src/panfrost/vulkan/panvk_device.c 
b/src/panfrost/vulkan/panvk_device.c
index 1db43d95b98..a1859918919 100644
--- a/src/panfrost/vulkan/panvk_device.c
+++ b/src/panfrost/vulkan/panvk_device.c
@@ -112,10 +112,15 @@ panvk_get_device_uuid(void *uuid)
 }
 
 static const struct debug_control panvk_debug_options[] = {
-   {"startup", PANVK_DEBUG_STARTUP}, {"nir", PANVK_DEBUG_NIR},
-   {"trace", PANVK_DEBUG_TRACE},     {"sync", PANVK_DEBUG_SYNC},
-   {"afbc", PANVK_DEBUG_AFBC},       {"linear", PANVK_DEBUG_LINEAR},
-   {"dump", PANVK_DEBUG_DUMP},       {NULL, 0}};
+   {"startup", PANVK_DEBUG_STARTUP},
+   {"nir", PANVK_DEBUG_NIR},
+   {"trace", PANVK_DEBUG_TRACE},
+   {"sync", PANVK_DEBUG_SYNC},
+   {"afbc", PANVK_DEBUG_AFBC},
+   {"linear", PANVK_DEBUG_LINEAR},
+   {"dump", PANVK_DEBUG_DUMP},
+   {"no_known_warn", PANVK_DEBUG_NO_KNOWN_WARN},
+   {NULL, 0}};
 
 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
 #define PANVK_USE_WSI_PLATFORM
diff --git a/src/panfrost/vulkan/panvk_private.h 
b/src/panfrost/vulkan/panvk_private.h
index 967bf4dcb00..2f4ef9ddcb6 100644
--- a/src/panfrost/vulkan/panvk_private.h
+++ b/src/panfrost/vulkan/panvk_private.h
@@ -199,6 +199,7 @@ enum panvk_debug_flags {
    PANVK_DEBUG_AFBC = 1 << 4,
    PANVK_DEBUG_LINEAR = 1 << 5,
    PANVK_DEBUG_DUMP = 1 << 6,
+   PANVK_DEBUG_NO_KNOWN_WARN = 1 << 7,
 };
 
 struct panvk_instance {
diff --git a/src/panfrost/vulkan/panvk_vX_cmd_buffer.c 
b/src/panfrost/vulkan/panvk_vX_cmd_buffer.c
index 07adda42410..44ed3120d9a 100644
--- a/src/panfrost/vulkan/panvk_vX_cmd_buffer.c
+++ b/src/panfrost/vulkan/panvk_vX_cmd_buffer.c
@@ -798,14 +798,19 @@ panvk_index_minmax_search(struct panvk_cmd_buffer 
*cmdbuf, uint32_t start,
    void *ptr = cmdbuf->state.ib.buffer->bo->ptr.cpu +
                cmdbuf->state.ib.buffer->bo_offset + cmdbuf->state.ib.offset;
 
-   fprintf(
-      stderr,
-      "WARNING: Crawling index buffers from the CPU isn't valid in Vulkan\n");
-
    assert(cmdbuf->state.ib.buffer);
    assert(cmdbuf->state.ib.buffer->bo);
    assert(cmdbuf->state.ib.buffer->bo->ptr.cpu);
 
+   uint32_t debug_flags =
+      cmdbuf->device->physical_device->instance->debug_flags;
+
+   if (!(debug_flags & PANVK_DEBUG_NO_KNOWN_WARN)) {
+      fprintf(
+         stderr,
+         "WARNING: Crawling index buffers from the CPU isn't valid in 
Vulkan\n");
+   }
+
    *max = 0;
 
    /* TODO: Use panfrost_minmax_cache */

Reply via email to