From 3f74d51f8ede61da2bbbbda47bf58b70fa2e98dd Mon Sep 17 00:00:00 2001 From: Giannis Date: Tue, 20 Oct 2026 19:57:44 +0300 Subject: [PATCH 1/2] test(agc): skip the MSAA retirement storage promotion without shaderStorageImageMultisample agc_driver_multisample_retirement failed on devices without shaderStorageImageMultisample (Intel HD 630 on Mesa ANV): StorageRemap asks for a storage view of the 4x target, and MultisampleTarget.cpp refuses it ("the device cannot write the multisampled color target's format as a storage image at its sample count"). The test checked only the 4x color sample count. The idle, recorded and sampled remap cases still run on such a device; only the storage promotion is skipped, and the test reports 77 so ctest shows it as not fully run. Co-Authored-By: Claude Opus 5.5 --- .../tests/execution/MultisampleRetirement.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/libs/prx/libSceAgcDriver/tests/execution/MultisampleRetirement.cpp b/core/libs/prx/libSceAgcDriver/tests/execution/MultisampleRetirement.cpp index ad2cbf182e..3439bf29ec 100644 --- a/core/libs/prx/libSceAgcDriver/tests/execution/MultisampleRetirement.cpp +++ b/core/libs/prx/libSceAgcDriver/tests/execution/MultisampleRetirement.cpp @@ -608,10 +608,15 @@ int main() { run.IdleRemaps(); run.RecordedRemap(); run.SampledRemap(); - run.StorageRemap(); + const bool storage = context.storageImageMultisample; + if (storage) run.StorageRemap(); run.StorageSrgbTwin(); run.OrderRemap(); if (context.storageImageMultisample) run.StorageTwin(); + if (!storage) { + std::puts("skipped the storage promotion, the device has no shaderStorageImageMultisample"); + return VulkanTestSkipped; + } std::puts("retired MSAA allocations stay bounded, recorded clears and storage promotions retain their images, sampled aliases release their parents after the last batch, and sample-order targets keep their retired images until their batch completes"); return 0; } catch (const std::exception& error) { From 51b236334efe86b17f11db53ffdb1b5e00bc798f Mon Sep 17 00:00:00 2001 From: Giannis Date: Tue, 20 Oct 2026 23:18:26 +0300 Subject: [PATCH 2/2] test(agc): word the storage promotion skip as check_skips.py expects tools/check_skips.py accepts a Linux skip only when its output has "skipped," before the device reason. The storage promotion skip read "skipped the storage promotion, ...", so a CI device without shaderStorageImageMultisample would fail the skip check although ctest reports 77. Co-Authored-By: Claude Opus 5.5 --- .../libSceAgcDriver/tests/execution/MultisampleRetirement.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/libs/prx/libSceAgcDriver/tests/execution/MultisampleRetirement.cpp b/core/libs/prx/libSceAgcDriver/tests/execution/MultisampleRetirement.cpp index 3439bf29ec..38d9e56ad9 100644 --- a/core/libs/prx/libSceAgcDriver/tests/execution/MultisampleRetirement.cpp +++ b/core/libs/prx/libSceAgcDriver/tests/execution/MultisampleRetirement.cpp @@ -614,7 +614,7 @@ int main() { run.OrderRemap(); if (context.storageImageMultisample) run.StorageTwin(); if (!storage) { - std::puts("skipped the storage promotion, the device has no shaderStorageImageMultisample"); + std::puts("storage promotion skipped, the device has no shaderStorageImageMultisample"); return VulkanTestSkipped; } std::puts("retired MSAA allocations stay bounded, recorded clears and storage promotions retain their images, sampled aliases release their parents after the last batch, and sample-order targets keep their retired images until their batch completes");