Add Lavapipe waivers. Tweak build settings.
Build CTS tests with DWARF debugging info; the test will be stripped
like other Fuchsia executables.
Add additional debug printf()s; remove these before submitting.
diff --git a/external/vulkancts/modules/vulkan/api/vktApiExternalMemoryTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiExternalMemoryTests.cpp
index 51a7884..ce5b64d 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiExternalMemoryTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiExternalMemoryTests.cpp
@@ -433,9 +433,13 @@
if ((properties.externalSemaphoreFeatures & vk::VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT) == 0)
TCU_THROW(NotSupportedError, "Semaphore doesn't support exporting in external type");
+ else
+ fprintf(stderr, "!!!!!!!!!!! JJOSH: Semaphores are exportable!!\n");
if ((properties.externalSemaphoreFeatures & vk::VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT) == 0)
TCU_THROW(NotSupportedError, "Semaphore doesn't support importing in external type");
+ else
+ fprintf(stderr, "!!!!!!!!!!! JJOSH: Semaphores are importable!!\n");
}
void checkFenceSupport (const vk::InstanceInterface& vki,
diff --git a/external/vulkancts/modules/vulkan/vktTestPackage.cpp b/external/vulkancts/modules/vulkan/vktTestPackage.cpp
index 112b2fa..8b1fd8d 100644
--- a/external/vulkancts/modules/vulkan/vktTestPackage.cpp
+++ b/external/vulkancts/modules/vulkan/vktTestPackage.cpp
@@ -316,6 +316,7 @@
tcu::SessionInfo sessionInfo(m_deviceProperties.vendorID,
m_deviceProperties.deviceID,
testCtx.getCommandLine().getInitialCmdLine());
+ fprintf(stderr, "JJOSH: About to set up Waiver Mechanism\n");
m_waiverMechanism.setup(testCtx.getCommandLine().getWaiverFileName(),
"dEQP-VK",
m_deviceProperties.vendorID,
diff --git a/external/vulkancts/mustpass/main/waivers.xml b/external/vulkancts/mustpass/main/waivers.xml
index a3dec21..5f7876b 100644
--- a/external/vulkancts/mustpass/main/waivers.xml
+++ b/external/vulkancts/mustpass/main/waivers.xml
@@ -52,6 +52,21 @@
</xs:schema>
*/-->
+ <waiver vendorId="0x10005"> <!-- Lavapipe -->
+ <device_list>
+ <d>0x0000</d>
+ </device_list>
+ <t>dEQP-VK.info.build</t>
+ <t>dEQP-VK.info.device</t>
+ <t>dEQP-VK.info.platform</t>
+ <t>dEQP-VK.info.memory_limits</t>
+ <t>dEQP-VK.info.physical_devices</t>
+ <t>dEQP-VK.info.physical_device_groups</t>
+ <t>dEQP-VK.info.instance_layers</t>
+ <t>dEQP-VK.info.instance_extensions</t>
+ <t>dEQP-VK.info.device_features</t>
+ </waiver>
+
<waiver vendorName="Imagination Technologies" vendorId="0x1010" url="https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/336">
<description>GPU's are unable to correctly filter CEM corners with F32 textures, this includes the ability to gather texels for texel gather instructions.</description>
<device_list>
diff --git a/framework/common/tcuWaiverUtil.cpp b/framework/common/tcuWaiverUtil.cpp
index 09a1f19..81e665f 100644
--- a/framework/common/tcuWaiverUtil.cpp
+++ b/framework/common/tcuWaiverUtil.cpp
@@ -503,6 +503,9 @@
void WaiverUtil::setup(const std::string waiverFile, std::string packageName, deUint32 vendorId, deUint32 deviceId, SessionInfo& sessionInfo)
{
+ fprintf(stderr, waiverFile.c_str());
+ fprintf(stderr, "JJOSH: WaiverUtil::setup() file: %s vendorId: %u deviceId: %u\n",
+ waiverFile.c_str(), vendorId, deviceId);
VKWaiverTreeBuilder(waiverFile, packageName, vendorId, deviceId, sessionInfo, m_waiverTree).build();
}
diff --git a/framework/platform/tcuMain.cpp b/framework/platform/tcuMain.cpp
index ede44b4..362e794 100644
--- a/framework/platform/tcuMain.cpp
+++ b/framework/platform/tcuMain.cpp
@@ -37,6 +37,15 @@
int main (int argc, char** argv)
{
+ fprintf(stderr, "JJOSH tcuMain.cpp main() ***************************************\n");
+ fprintf(stderr, "JJOSH tcuMain.cpp main() ***************************************\n");
+ fprintf(stderr, "JJOSH tcuMain.cpp main() ***************************************\n");
+ fprintf(stderr, "JJOSH tcuMain.cpp main() ***************************************\n");
+ fprintf(stderr, "JJOSH tcuMain.cpp main() ***************************************\n");
+ fprintf(stderr, "JJOSH tcuMain.cpp main() ***************************************\n");
+ fprintf(stderr, "JJOSH tcuMain.cpp main() ***************************************\n");
+ fprintf(stderr, "JJOSH tcuMain.cpp main() ***************************************\n");
+
int exitStatus = EXIT_SUCCESS;
#if (DE_OS != DE_OS_WIN32)
diff --git a/fuchsia/build.sh b/fuchsia/build.sh
index c3b9d23..358ae82 100755
--- a/fuchsia/build.sh
+++ b/fuchsia/build.sh
@@ -46,7 +46,7 @@
mkdir -p $build_dir
$fuchsia_root/scripts/fuchsia-vendored-python $fuchsia_root/third_party/vulkan-cts/fuchsia/gendepsfile.py $build_dir/vulkan-cts.d $fuchsia_root/third_party/vulkan-cts
pushd $build_dir
-$cmake $fuchsia_root/third_party/vulkan-cts -GNinja -DCMAKE_BUILD_TYPE=RelWithAsserts -DCMAKE_MAKE_PROGRAM=$ninja_path -DFUCHSIA_SYSROOT=$sysroot -DCMAKE_TOOLCHAIN_FILE=$fuchsia_root/third_party/vulkan-cts/fuchsia/Fuchsia.cmake -DDE_OS=DE_OS_FUCHSIA -DDEQP_TARGET=fuchsia -DFUCHSIA_ROOT=$fuchsia_root -DFUCHSIA_LIB_DIR=$fuchsia_lib_path -DFUCHSIA_LIBFDIO=$fuchsia_libfdio $extra_args -DCMAKE_C_FLAGS="$c_cxx_flags" -DCMAKE_CXX_FLAGS="$c_cxx_flags"
+$cmake $fuchsia_root/third_party/vulkan-cts -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_MAKE_PROGRAM=$ninja_path -DFUCHSIA_SYSROOT=$sysroot -DCMAKE_TOOLCHAIN_FILE=$fuchsia_root/third_party/vulkan-cts/fuchsia/Fuchsia.cmake -DDE_OS=DE_OS_FUCHSIA -DDEQP_TARGET=fuchsia -DFUCHSIA_ROOT=$fuchsia_root -DFUCHSIA_LIB_DIR=$fuchsia_lib_path -DFUCHSIA_LIBFDIO=$fuchsia_libfdio $extra_args -DCMAKE_C_FLAGS="$c_cxx_flags" -DCMAKE_CXX_FLAGS="$c_cxx_flags"
$ninja_path -v deqp-vk executor execserver
# Ensure outputs are up to date so no-op build check doesn't complain.
diff --git a/fuchsia/fuchsia-ci-waivers.xml b/fuchsia/fuchsia-ci-waivers.xml
index 395fde4..a93ebb0 100644
--- a/fuchsia/fuchsia-ci-waivers.xml
+++ b/fuchsia/fuchsia-ci-waivers.xml
@@ -1,5 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<waiver_list>
+ <waiver vendorId="0x10005"> <!-- Lavapipe -->
+ <device_list>
+ <d>0x0000</d>
+ </device_list>
+ <!-- Hey, wildcards work in waivers !-->
+ <!--t>dEQP-VK.info.*</t-->
+
+ <!-- This "one" hangs. There might be resource exhaustion due to interaction between tests:
+ if we waive `graphics_pipeline` then `compute_pipeline` succeeds.
+ Otherwise, `compute_pipeline` hangs. -->
+ <t>dEQP-VK.api.object_management.max_concurrent.graphics_pipeline</t>
+ <t>dEQP-VK.api.object_management.max_concurrent.compute_pipeline</t>
+
+ <t>dEQP-VK.api.buffer_view.access.suballocation.buffer_view_memory_test_complete<t>
+ <!--t>dEQP-VK.api.command_buffers.pool_create_non_null_allocator<t-->
+
+ <!-- These are also broken on Linux:
+ https://gitlab.freedesktop.org/mesa/mesa/-/issues/8137 -->
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec2_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec2_constant_requiredsubgroupsize</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec3_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec3_constant_requiredsubgroupsize</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec4_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec4_constant_requiredsubgroupsize</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec2_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec2_constant_requiredsubgroupsize</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec3_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec3_constant_requiredsubgroupsize</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec4_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec4_constant_requiredsubgroupsize</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int64_t_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int64_t_constant_requiredsubgroupsize</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec2_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec2_constant_requiredsubgroupsize</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec3_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec3_constant_requiredsubgroupsize</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec4_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec4_constant_requiredsubgroupsize</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint64_t_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint64_t_constant_requiredsubgroupsize</t>
+ <t>dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_double_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_dvec2_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_dvec3_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_dvec4_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_i64vec2_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_i64vec3_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_i64vec4_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_int64_t_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_u64vec2_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_u64vec3_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_u64vec4_constant</t>
+ <t>dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_uint64_t_constant</t>
+ <!-- This is not mentioned in https://gitlab.freedesktop.org/mesa/mesa/-/issues/8137
+ but seems similar? -->
+ <t>dEQP-VK.subgroups.shuffle.graphics.subgroupshuffledown_ivec2_constant</t>
+
+ <!-- Hangs for > 5 minutes, even when run on it's own (i.e. with the rest of the
+ "graphicsfuzz" tests disabled). -->
+ <t>dEQP-VK.graphicsfuzz.cov-int-initialize-from-multiple-large-arrays</t>
+ <!-- These take about a minute to run.
+ <t>dEQP-VK.graphicsfuzz.spv-composites</t>
+ <t>dEQP-VK.graphicsfuzz.spv-stable-pillars-O-op-select-to-op-phi</t>
+ <t>dEQP-VK.graphicsfuzz.spv-stable-pillars-volatile-nontemporal-store</t-->
+
+ </waiver>
<waiver vendorName="ARM" vendorId="0x13b5" url="None">
<description>Memory allocation tests that fail on G31 due to fxbug.dev/58092</description>
<device_list>