test(agc): split agc_driver_flat_apertures into six parts

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Adrià Franch 2026-10-11 03:47:10 +02:00
parent d31b57a4ca
commit 9fe5d90cbe
2 changed files with 25 additions and 3 deletions

View File

@ -955,7 +955,7 @@ if(BUILD_TESTING)
set_tests_properties(agc_shader_bindless agc_shader_frontend_pair agc_shader_frontend_pair_off PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:$<TARGET_FILE_DIR:libc>")
endif()
foreach(agcTest IN ITEMS agc_shared_write_tests agc_driver_tests agc_shader_memory_tests agc_structurizer_tests agc_spirv_module_tests agc_dpp_write_tests agc_masked_select_tests agc_constant_bit_test_tests agc_scalar_select_mask_tests agc_vop1_control_decode_tests agc_validate_program_tests agc_pass_hazards_tests agc_shader_disk_cache_tests agc_shader_device_profile_tests agc_shader_control_flow_tests agc_driver_flip_tests agc_driver_pm4_tests agc_driver_graphics_tests agc_driver_bda_device_tests agc_driver_mesh_tests agc_driver_cmask_fast_clear_tests agc_formatted_buffer_once_tests ${agcExecutionTests})
if(agcTest STREQUAL "agc_driver_constant_store_tests")
if(agcTest STREQUAL "agc_driver_constant_store_tests" OR agcTest STREQUAL "agc_driver_flat_apertures_tests")
continue()
endif()
string(REGEX REPLACE "_tests$" "" agcTestName "${agcTest}")
@ -974,6 +974,15 @@ if(BUILD_TESTING)
endif()
set_tests_properties(agc_driver_provoking_vertex PROPERTIES TIMEOUT 30)
set_tests_properties(agc_driver_flat_store PROPERTIES RUN_SERIAL TRUE)
set_target_properties(agc_driver_flat_apertures_tests PROPERTIES EXCLUDE_FROM_ALL OFF)
foreach(flatAperturesPart RANGE 5)
add_test(NAME agc_driver_flat_apertures_${flatAperturesPart} COMMAND agc_driver_flat_apertures_tests --part ${flatAperturesPart}/6)
set_tests_properties(agc_driver_flat_apertures_${flatAperturesPart} PROPERTIES ENVIRONMENT "ANYPS5_NO_SHADER_CACHE=1" SKIP_RETURN_CODE 77 WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}")
if(WIN32)
set_tests_properties(agc_driver_flat_apertures_${flatAperturesPart} PROPERTIES ENVIRONMENT_MODIFICATION
"PATH=path_list_prepend:$<TARGET_FILE_DIR:libc>")
endif()
endforeach()
set_tests_properties(agc_driver_storage_cache_budget PROPERTIES TIMEOUT 30)
add_test(NAME agc_driver_sampled_cache_budget_memory COMMAND agc_driver_sampled_cache_budget_tests memory)
set_tests_properties(agc_driver_sampled_cache_budget_memory PROPERTIES ENVIRONMENT "ANYPS5_NO_SHADER_CACHE=1" SKIP_RETURN_CODE 77)

View File

@ -21,6 +21,7 @@
#include <span>
#include <stdexcept>
#include <string>
#include <string_view>
#include <utility>
#include <vector>
@ -478,14 +479,26 @@ std::vector<Row> Rows() {
}
int main() {
int main(int argc, char** argv) {
try {
std::size_t part = 0, parts = 1;
if (argc == 3 && std::string_view(argv[1]) == "--part") {
const std::string_view value(argv[2]);
const auto slash = value.find('/');
part = std::stoul(std::string(value.substr(0, slash)));
parts = slash == std::string_view::npos ? 0 : std::stoul(std::string(value.substr(slash + 1)));
} else if (argc != 1) {
parts = 0;
}
if (parts == 0 || part >= parts) throw std::invalid_argument("usage: [--part K/N] with K < N");
const auto device = OpenVulkanTestDevice();
if (!device) return VulkanTestSkipped;
const bool wave64 = device->Target().subgroupSize >= 32u;
GuestBlock guest;
std::size_t checked = 0;
for (const Row& row : Rows()) {
const auto rows = Rows();
for (std::size_t index = part; index < rows.size(); index += parts) {
const Row& row = rows[index];
if (row.waveSize == 64u && !wave64) continue;
Run(*device, row, guest);
++checked;