test(vulkan-rt): headless BLAS build-options + refit test (#36)
Exercises the real hardware AS-build path: builds and refits triangle and procedural BLASes with fast-build/fast-trace + allow-update flags via one-time command buffers, asserting the requested flags land, that an allowUpdate refit keeps the same AS handle/blasAddr (in-place UPDATE), that the no-update / topology-change fallback still produces a valid BLAS, and that the validation layer reports zero errors. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
1a81f115c3
commit
ce0114607a
2 changed files with 239 additions and 0 deletions
30
project.cpp
30
project.cpp
|
|
@ -265,6 +265,36 @@ extern "C" Configuration CrafterBuildProject(std::span<const std::string_view> a
|
|||
sc.GetInterfacesAndImplementations(ifaces, scrollImpls);
|
||||
cfg.tests.push_back(std::move(scrollTest));
|
||||
}
|
||||
|
||||
// Issue #36: BLAS build options. Drives the real hardware AS-build
|
||||
// path — records Mesh::Build / Refit / BuildProcedural /
|
||||
// RefitProcedural with fast-build/fast-trace + allow-update flags
|
||||
// into one-time command buffers and submits them, asserting the
|
||||
// requested flags land, that an allowUpdate refit keeps the AS
|
||||
// handle (in-place UPDATE), and that the validation layer reports no
|
||||
// errors. Needs a Vulkan RT device at runtime (same as the RT
|
||||
// examples), so it shares the native build settings.
|
||||
Test blasTest;
|
||||
Configuration& bc = blasTest.config;
|
||||
bc.path = cfg.path;
|
||||
bc.name = "BLASBuildOptions";
|
||||
bc.outputName = "BLASBuildOptions";
|
||||
bc.type = ConfigurationType::Executable;
|
||||
bc.target = cfg.target;
|
||||
bc.march = cfg.march;
|
||||
bc.mtune = cfg.mtune;
|
||||
bc.debug = cfg.debug;
|
||||
bc.sysroot = cfg.sysroot;
|
||||
bc.dependencies = cfg.dependencies;
|
||||
bc.externalDependencies = cfg.externalDependencies;
|
||||
bc.compileFlags = cfg.compileFlags;
|
||||
bc.linkFlags = cfg.linkFlags;
|
||||
bc.defines = cfg.defines;
|
||||
bc.cFiles = cfg.cFiles;
|
||||
std::vector<fs::path> blasImpls(impls.begin(), impls.end());
|
||||
blasImpls.emplace_back("tests/BLASBuildOptions/main");
|
||||
bc.GetInterfacesAndImplementations(ifaces, blasImpls);
|
||||
cfg.tests.push_back(std::move(blasTest));
|
||||
}
|
||||
|
||||
return cfg;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue