llvmpipe: add infrastructure for disk cache support
[mesa.git] / .gitlab-ci / deqp-runner.sh
index d6e04939c580909935fd242cfad2d3ac7b46938d..b9f14fe25b46515216ed4b8d483068e3304cb4b3 100755 (executable)
@@ -7,6 +7,11 @@ DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-type=pbuffer"
 DEQP_OPTIONS="$DEQP_OPTIONS --deqp-gl-config-name=rgba8888d24s8ms0"
 DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden"
 
+# deqp's shader cache (for vulkan) is not multiprocess safe for a common
+# filename, see:
+# https://gitlab.freedesktop.org/mesa/parallel-deqp-runner/-/merge_requests/13
+DEQP_OPTIONS="$DEQP_OPTIONS --deqp-shadercache=disable"
+
 if [ -z "$DEQP_VER" ]; then
    echo 'DEQP_VER must be set to something like "gles2", "gles31" or "vk" for the test run'
    exit 1
@@ -133,7 +138,13 @@ extract_xml_result() {
     shift 1
     qpas=$*
     start="#beginTestCaseResult $testcase"
-    for qpa in $qpas; do
+
+    # Pick the first QPA mentioning our testcase
+    qpa=`grep -l "$start" $qpas | head -n 1`
+
+    # If we found one, go extract just that testcase's contents from the QPA
+    # to a new QPA, then do testlog-to-xml on that.
+    if [ -n "$qpa" ]; then
         while IFS= read -r line; do
             if [ "$line" = "$start" ]; then
                 dst="$testcase.qpa"
@@ -155,7 +166,7 @@ extract_xml_result() {
                 return 1
             fi
         done < $qpa
-    done
+    fi
 }
 
 extract_xml_results() {