tests: Declare test prototypes in separate header.

Allows for moving test implementations to their own translation units.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
Hans-Kristian Arntzen 2021-08-25 13:53:21 +02:00
parent 4a6fba9f56
commit 195e1a3447
2 changed files with 279 additions and 251 deletions

View File

@ -22,6 +22,10 @@
#define VKD3D_TEST_DECLARE_MAIN
#include "d3d12_crosstest.h"
#define decl_test(x) static void x(void);
#include "d3d12_tests.h"
#undef decl_test
static void test_create_device(void)
{
ID3D12Device *device;
@ -53126,255 +53130,7 @@ START_TEST(d3d12)
pfn_D3D12CreateVersionedRootSignatureDeserializer = get_d3d12_pfn(D3D12CreateVersionedRootSignatureDeserializer);
pfn_D3D12SerializeVersionedRootSignature = get_d3d12_pfn(D3D12SerializeVersionedRootSignature);
run_test(test_create_device);
run_test(test_node_count);
run_test(test_check_feature_support);
run_test(test_format_support);
run_test(test_multisample_quality_levels);
run_test(test_create_command_allocator);
run_test(test_create_command_list);
run_test(test_create_command_queue);
run_test(test_create_command_signature);
run_test(test_create_committed_resource);
run_test(test_create_heap);
run_test(test_create_placed_resource);
run_test(test_create_placed_resource_size);
run_test(test_create_reserved_resource);
run_test(test_create_descriptor_heap);
run_test(test_create_sampler);
run_test(test_create_unordered_access_view);
run_test(test_create_root_signature);
run_test(test_root_signature_limits);
run_test(test_create_compute_pipeline_state);
run_test(test_create_graphics_pipeline_state);
run_test(test_create_pipeline_state);
run_test(test_create_fence);
run_test(test_object_interface);
run_test(test_multithread_private_data);
run_test(test_reset_command_allocator);
run_test(test_cpu_signal_fence);
run_test(test_gpu_signal_fence);
run_test(test_multithread_fence_wait);
run_test(test_fence_values);
run_test(test_clear_depth_stencil_view);
run_test(test_clear_render_target_view);
run_test(test_clear_unordered_access_view_buffer);
run_test(test_clear_unordered_access_view_image);
run_test(test_set_render_targets);
run_test(test_draw_instanced);
run_test(test_draw_indexed_instanced);
run_test(test_draw_no_descriptor_bindings);
run_test(test_multiple_render_targets);
run_test(test_unknown_rtv_format);
run_test(test_unknown_dsv_format);
run_test(test_append_aligned_element);
run_test(test_gpu_virtual_address);
run_test(test_fragment_coords);
run_test(test_fractional_viewports);
run_test(test_scissor);
run_test(test_draw_depth_no_ps);
run_test(test_draw_depth_only);
run_test(test_draw_uav_only);
run_test(test_texture_resource_barriers);
run_test(test_device_removed_reason);
run_test(test_map_resource);
run_test(test_map_placed_resources);
run_test(test_bundle_state_inheritance);
run_test(test_shader_instructions);
run_test(test_compute_shader_instructions);
run_test(test_discard_instruction);
run_test(test_shader_interstage_interface);
run_test(test_shader_input_output_components);
run_test(test_root_signature_byte_code);
run_test(test_cs_constant_buffer);
run_test(test_constant_buffer_relative_addressing);
run_test(test_immediate_constant_buffer);
run_test(test_root_constants);
run_test(test_sample_instructions);
run_test(test_texture_ld);
run_test(test_gather);
run_test(test_gather_c);
run_test(test_sample_c_lz);
run_test(test_cube_maps);
run_test(test_multisample_array_texture);
run_test(test_resinfo);
run_test(test_srv_component_mapping);
run_test(test_descriptor_tables);
run_test(test_descriptor_tables_overlapping_bindings);
run_test(test_update_root_descriptors);
run_test(test_update_descriptor_tables);
run_test(test_update_descriptor_heap_after_closing_command_list);
run_test(test_update_compute_descriptor_tables);
run_test(test_update_descriptor_tables_after_root_signature_change);
run_test(test_copy_descriptors);
run_test(test_copy_descriptors_range_sizes);
run_test(test_copy_rtv_descriptors);
run_test(test_descriptors_visibility);
run_test(test_create_null_descriptors);
run_test(test_null_cbv);
run_test(test_null_srv);
run_test(test_null_uav);
run_test(test_null_rtv);
run_test(test_null_vbv);
run_test(test_get_copyable_footprints);
run_test(test_depth_clip);
run_test(test_depth_stencil_sampling);
run_test(test_depth_load);
run_test(test_depth_read_only_view);
run_test(test_stencil_load);
run_test(test_typed_buffer_uav);
run_test(test_typed_uav_store);
run_test(test_compute_shader_registers);
run_test(test_tgsm);
run_test(test_uav_load);
run_test(test_cs_uav_store);
run_test(test_uav_counters);
run_test(test_decrement_uav_counter);
run_test(test_atomic_instructions_dxbc);
run_test(test_atomic_instructions_dxil);
run_test(test_buffer_srv);
run_test(test_create_query_heap);
run_test(test_query_timestamp);
run_test(test_query_pipeline_statistics);
run_test(test_query_occlusion);
run_test(test_resolve_non_issued_query_data);
run_test(test_resolve_query_data_in_different_command_list);
run_test(test_resolve_query_data_in_reordered_command_list);
run_test(test_execute_indirect);
run_test(test_dispatch_zero_thread_groups);
run_test(test_unaligned_vertex_stride);
run_test(test_zero_vertex_stride);
run_test(test_instance_id_dxbc);
run_test(test_instance_id_dxil);
run_test(test_vertex_id_dxbc);
run_test(test_vertex_id_dxil);
run_test(test_copy_texture);
run_test(test_copy_texture_buffer);
run_test(test_copy_buffer_texture);
run_test(test_copy_block_compressed_texture);
run_test(test_separate_bindings);
run_test(test_face_culling_dxbc);
run_test(test_face_culling_dxil);
run_test(test_multithread_command_queue_exec);
run_test(test_geometry_shader_dxbc);
run_test(test_geometry_shader_dxil);
run_test(test_layered_rendering_dxbc);
run_test(test_layered_rendering_dxil);
run_test(test_ps_layer_dxbc);
run_test(test_ps_layer_dxil);
run_test(test_nop_tessellation_shaders);
run_test(test_quad_tessellation_dxbc);
run_test(test_quad_tessellation_dxil);
run_test(test_tessellation_dcl_index_range);
run_test(test_hull_shader_vertex_input_patch_constant_phase);
run_test(test_hull_shader_control_point_phase_dxbc);
run_test(test_hull_shader_control_point_phase_dxil);
run_test(test_hull_shader_fork_phase_dxbc);
run_test(test_hull_shader_fork_phase_dxil);
run_test(test_tessellation_read_tesslevel);
run_test(test_line_tessellation_dxbc);
run_test(test_line_tessellation_dxil);
run_test(test_tessellation_primitive_id);
run_test(test_render_a8_dxbc);
run_test(test_render_a8_dxil);
run_test(test_cpu_descriptors_lifetime);
run_test(test_clip_distance_dxbc);
run_test(test_clip_distance_dxil);
run_test(test_combined_clip_and_cull_distances_dxbc);
run_test(test_combined_clip_and_cull_distances_dxil);
run_test(test_resource_allocation_info);
run_test(test_suballocate_small_textures);
run_test(test_command_list_initial_pipeline_state);
run_test(test_blend_factor);
run_test(test_dual_source_blending_dxbc);
run_test(test_dual_source_blending_dxil);
run_test(test_multisample_rendering);
run_test(test_multisample_resolve);
run_test(test_sample_mask_dxbc);
run_test(test_sample_mask_dxil);
run_test(test_coverage_dxbc);
run_test(test_coverage_dxil);
run_test(test_shader_get_render_target_sample_count_dxbc);
run_test(test_shader_get_render_target_sample_count_dxil);
run_test(test_shader_sample_position_dxbc);
run_test(test_shader_sample_position_dxil);
run_test(test_shader_eval_attribute_dxbc);
run_test(test_shader_eval_attribute_dxil);
run_test(test_primitive_restart);
run_test(test_index_buffer_edge_case_stream_output);
run_test(test_vertex_shader_stream_output_dxbc);
run_test(test_vertex_shader_stream_output_dxil);
run_test(test_read_write_subresource);
run_test(test_queue_wait);
run_test(test_graphics_compute_queue_synchronization);
run_test(test_early_depth_stencil_tests);
run_test(test_conditional_rendering);
run_test(test_bufinfo_instruction_dxbc);
run_test(test_bufinfo_instruction_dxil);
run_test(test_write_buffer_immediate);
run_test(test_register_space_sm51);
run_test(test_register_space_dxil);
run_test(test_constant_buffer_sm51);
run_test(test_constant_buffer_dxil);
run_test(test_bindless_srv_sm51);
run_test(test_bindless_srv_dxil);
run_test(test_bindless_full_root_parameters_sm51);
run_test(test_bindless_samplers_sm51);
run_test(test_bindless_samplers_dxil);
run_test(test_bindless_cbv_sm51);
run_test(test_bindless_cbv_dxil);
run_test(test_bindless_uav_sm51);
run_test(test_bindless_uav_dxil);
run_test(test_bindless_uav_counter_sm51);
run_test(test_bindless_uav_counter_dxil);
run_test(test_bindless_bufinfo_sm51);
run_test(test_bindless_bufinfo_dxil);
run_test(test_stencil_export_dxbc);
run_test(test_stencil_export_dxil);
run_test(test_raytracing);
run_test(test_get_resource_tiling);
run_test(test_update_tile_mappings);
run_test(test_sampler_border_color);
run_test(test_copy_tiles);
run_test(test_buffer_feedback_instructions_sm51);
run_test(test_buffer_feedback_instructions_dxil);
run_test(test_texture_feedback_instructions_sm51);
run_test(test_texture_feedback_instructions_dxil);
run_test(test_aliasing_barrier);
run_test(test_discard_resource);
run_test(test_clock_calibration);
run_test(test_open_heap_from_address);
run_test(test_get_cached_blob);
run_test(test_pipeline_library);
run_test(test_buffers_oob_behavior_dxbc);
run_test(test_buffers_oob_behavior_dxil);
run_test(test_typed_buffers_many_objects_dxbc);
run_test(test_typed_buffers_many_objects_dxil);
run_test(test_create_pipeline_with_null_root_signature);
run_test(test_undefined_read_typed_buffer_as_untyped_dxbc);
run_test(test_undefined_read_typed_buffer_as_untyped_dxil);
run_test(test_virtual_queries);
run_test(test_vrs);
run_test(test_vrs_dxil);
run_test(test_vrs_image);
run_test(test_stress_suballocation);
run_test(test_stress_suballocation_multithread);
run_test(test_placed_image_alignment);
run_test(test_root_parameter_preservation);
run_test(test_cbv_hoisting_sm51);
run_test(test_cbv_hoisting_dxil);
run_test(test_write_watch);
run_test(test_conservative_rasterization_dxbc);
run_test(test_conservative_rasterization_dxil);
run_test(test_root_signature_priority);
run_test(test_missing_bindings_root_signature);
run_test(test_mismatching_pso_stages);
run_test(test_null_descriptor_mismatch_type);
run_test(test_vbv_stride_edge_cases);
run_test(test_view_min_lod);
run_test(test_sv_barycentric);
run_test(test_shader_fp16);
run_test(test_shader_sm62_denorm);
run_test(test_shader_sm64_packed);
run_test(test_shader_sm65_wave_intrinsics);
#define decl_test(x) run_test(x)
#include "d3d12_tests.h"
#undef decl_test
}

272
tests/d3d12_tests.h Normal file
View File

@ -0,0 +1,272 @@
/*
* Copyright 2016-2017 Józef Kucia for CodeWeavers
* Copyright 2020-2021 Hans-Kristian Arntzen for Valve Corporation
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/* Can be included multiple times. */
decl_test(test_create_device);
decl_test(test_node_count);
decl_test(test_check_feature_support);
decl_test(test_format_support);
decl_test(test_multisample_quality_levels);
decl_test(test_create_command_allocator);
decl_test(test_create_command_list);
decl_test(test_create_command_queue);
decl_test(test_create_command_signature);
decl_test(test_create_committed_resource);
decl_test(test_create_heap);
decl_test(test_create_placed_resource);
decl_test(test_create_placed_resource_size);
decl_test(test_create_reserved_resource);
decl_test(test_create_descriptor_heap);
decl_test(test_create_sampler);
decl_test(test_create_unordered_access_view);
decl_test(test_create_root_signature);
decl_test(test_root_signature_limits);
decl_test(test_create_compute_pipeline_state);
decl_test(test_create_graphics_pipeline_state);
decl_test(test_create_pipeline_state);
decl_test(test_create_fence);
decl_test(test_object_interface);
decl_test(test_multithread_private_data);
decl_test(test_reset_command_allocator);
decl_test(test_cpu_signal_fence);
decl_test(test_gpu_signal_fence);
decl_test(test_multithread_fence_wait);
decl_test(test_fence_values);
decl_test(test_clear_depth_stencil_view);
decl_test(test_clear_render_target_view);
decl_test(test_clear_unordered_access_view_buffer);
decl_test(test_clear_unordered_access_view_image);
decl_test(test_set_render_targets);
decl_test(test_draw_instanced);
decl_test(test_draw_indexed_instanced);
decl_test(test_draw_no_descriptor_bindings);
decl_test(test_multiple_render_targets);
decl_test(test_unknown_rtv_format);
decl_test(test_unknown_dsv_format);
decl_test(test_append_aligned_element);
decl_test(test_gpu_virtual_address);
decl_test(test_fragment_coords);
decl_test(test_fractional_viewports);
decl_test(test_scissor);
decl_test(test_draw_depth_no_ps);
decl_test(test_draw_depth_only);
decl_test(test_draw_uav_only);
decl_test(test_texture_resource_barriers);
decl_test(test_device_removed_reason);
decl_test(test_map_resource);
decl_test(test_map_placed_resources);
decl_test(test_bundle_state_inheritance);
decl_test(test_shader_instructions);
decl_test(test_compute_shader_instructions);
decl_test(test_discard_instruction);
decl_test(test_shader_interstage_interface);
decl_test(test_shader_input_output_components);
decl_test(test_root_signature_byte_code);
decl_test(test_cs_constant_buffer);
decl_test(test_constant_buffer_relative_addressing);
decl_test(test_immediate_constant_buffer);
decl_test(test_root_constants);
decl_test(test_sample_instructions);
decl_test(test_texture_ld);
decl_test(test_gather);
decl_test(test_gather_c);
decl_test(test_sample_c_lz);
decl_test(test_cube_maps);
decl_test(test_multisample_array_texture);
decl_test(test_resinfo);
decl_test(test_srv_component_mapping);
decl_test(test_descriptor_tables);
decl_test(test_descriptor_tables_overlapping_bindings);
decl_test(test_update_root_descriptors);
decl_test(test_update_descriptor_tables);
decl_test(test_update_descriptor_heap_after_closing_command_list);
decl_test(test_update_compute_descriptor_tables);
decl_test(test_update_descriptor_tables_after_root_signature_change);
decl_test(test_copy_descriptors);
decl_test(test_copy_descriptors_range_sizes);
decl_test(test_copy_rtv_descriptors);
decl_test(test_descriptors_visibility);
decl_test(test_create_null_descriptors);
decl_test(test_null_cbv);
decl_test(test_null_srv);
decl_test(test_null_uav);
decl_test(test_null_rtv);
decl_test(test_null_vbv);
decl_test(test_get_copyable_footprints);
decl_test(test_depth_clip);
decl_test(test_depth_stencil_sampling);
decl_test(test_depth_load);
decl_test(test_depth_read_only_view);
decl_test(test_stencil_load);
decl_test(test_typed_buffer_uav);
decl_test(test_typed_uav_store);
decl_test(test_compute_shader_registers);
decl_test(test_tgsm);
decl_test(test_uav_load);
decl_test(test_cs_uav_store);
decl_test(test_uav_counters);
decl_test(test_decrement_uav_counter);
decl_test(test_atomic_instructions_dxbc);
decl_test(test_atomic_instructions_dxil);
decl_test(test_buffer_srv);
decl_test(test_create_query_heap);
decl_test(test_query_timestamp);
decl_test(test_query_pipeline_statistics);
decl_test(test_query_occlusion);
decl_test(test_resolve_non_issued_query_data);
decl_test(test_resolve_query_data_in_different_command_list);
decl_test(test_resolve_query_data_in_reordered_command_list);
decl_test(test_execute_indirect);
decl_test(test_dispatch_zero_thread_groups);
decl_test(test_unaligned_vertex_stride);
decl_test(test_zero_vertex_stride);
decl_test(test_instance_id_dxbc);
decl_test(test_instance_id_dxil);
decl_test(test_vertex_id_dxbc);
decl_test(test_vertex_id_dxil);
decl_test(test_copy_texture);
decl_test(test_copy_texture_buffer);
decl_test(test_copy_buffer_texture);
decl_test(test_copy_block_compressed_texture);
decl_test(test_separate_bindings);
decl_test(test_face_culling_dxbc);
decl_test(test_face_culling_dxil);
decl_test(test_multithread_command_queue_exec);
decl_test(test_geometry_shader_dxbc);
decl_test(test_geometry_shader_dxil);
decl_test(test_layered_rendering_dxbc);
decl_test(test_layered_rendering_dxil);
decl_test(test_ps_layer_dxbc);
decl_test(test_ps_layer_dxil);
decl_test(test_nop_tessellation_shaders);
decl_test(test_quad_tessellation_dxbc);
decl_test(test_quad_tessellation_dxil);
decl_test(test_tessellation_dcl_index_range);
decl_test(test_hull_shader_vertex_input_patch_constant_phase);
decl_test(test_hull_shader_control_point_phase_dxbc);
decl_test(test_hull_shader_control_point_phase_dxil);
decl_test(test_hull_shader_fork_phase_dxbc);
decl_test(test_hull_shader_fork_phase_dxil);
decl_test(test_tessellation_read_tesslevel);
decl_test(test_line_tessellation_dxbc);
decl_test(test_line_tessellation_dxil);
decl_test(test_tessellation_primitive_id);
decl_test(test_render_a8_dxbc);
decl_test(test_render_a8_dxil);
decl_test(test_cpu_descriptors_lifetime);
decl_test(test_clip_distance_dxbc);
decl_test(test_clip_distance_dxil);
decl_test(test_combined_clip_and_cull_distances_dxbc);
decl_test(test_combined_clip_and_cull_distances_dxil);
decl_test(test_resource_allocation_info);
decl_test(test_suballocate_small_textures);
decl_test(test_command_list_initial_pipeline_state);
decl_test(test_blend_factor);
decl_test(test_dual_source_blending_dxbc);
decl_test(test_dual_source_blending_dxil);
decl_test(test_multisample_rendering);
decl_test(test_multisample_resolve);
decl_test(test_sample_mask_dxbc);
decl_test(test_sample_mask_dxil);
decl_test(test_coverage_dxbc);
decl_test(test_coverage_dxil);
decl_test(test_shader_get_render_target_sample_count_dxbc);
decl_test(test_shader_get_render_target_sample_count_dxil);
decl_test(test_shader_sample_position_dxbc);
decl_test(test_shader_sample_position_dxil);
decl_test(test_shader_eval_attribute_dxbc);
decl_test(test_shader_eval_attribute_dxil);
decl_test(test_primitive_restart);
decl_test(test_index_buffer_edge_case_stream_output);
decl_test(test_vertex_shader_stream_output_dxbc);
decl_test(test_vertex_shader_stream_output_dxil);
decl_test(test_read_write_subresource);
decl_test(test_queue_wait);
decl_test(test_graphics_compute_queue_synchronization);
decl_test(test_early_depth_stencil_tests);
decl_test(test_conditional_rendering);
decl_test(test_bufinfo_instruction_dxbc);
decl_test(test_bufinfo_instruction_dxil);
decl_test(test_write_buffer_immediate);
decl_test(test_register_space_sm51);
decl_test(test_register_space_dxil);
decl_test(test_constant_buffer_sm51);
decl_test(test_constant_buffer_dxil);
decl_test(test_bindless_srv_sm51);
decl_test(test_bindless_srv_dxil);
decl_test(test_bindless_full_root_parameters_sm51);
decl_test(test_bindless_samplers_sm51);
decl_test(test_bindless_samplers_dxil);
decl_test(test_bindless_cbv_sm51);
decl_test(test_bindless_cbv_dxil);
decl_test(test_bindless_uav_sm51);
decl_test(test_bindless_uav_dxil);
decl_test(test_bindless_uav_counter_sm51);
decl_test(test_bindless_uav_counter_dxil);
decl_test(test_bindless_bufinfo_sm51);
decl_test(test_bindless_bufinfo_dxil);
decl_test(test_stencil_export_dxbc);
decl_test(test_stencil_export_dxil);
decl_test(test_raytracing);
decl_test(test_get_resource_tiling);
decl_test(test_update_tile_mappings);
decl_test(test_sampler_border_color);
decl_test(test_copy_tiles);
decl_test(test_buffer_feedback_instructions_sm51);
decl_test(test_buffer_feedback_instructions_dxil);
decl_test(test_texture_feedback_instructions_sm51);
decl_test(test_texture_feedback_instructions_dxil);
decl_test(test_aliasing_barrier);
decl_test(test_discard_resource);
decl_test(test_clock_calibration);
decl_test(test_open_heap_from_address);
decl_test(test_get_cached_blob);
decl_test(test_pipeline_library);
decl_test(test_buffers_oob_behavior_dxbc);
decl_test(test_buffers_oob_behavior_dxil);
decl_test(test_typed_buffers_many_objects_dxbc);
decl_test(test_typed_buffers_many_objects_dxil);
decl_test(test_create_pipeline_with_null_root_signature);
decl_test(test_undefined_read_typed_buffer_as_untyped_dxbc);
decl_test(test_undefined_read_typed_buffer_as_untyped_dxil);
decl_test(test_virtual_queries);
decl_test(test_vrs);
decl_test(test_vrs_dxil);
decl_test(test_vrs_image);
decl_test(test_stress_suballocation);
decl_test(test_stress_suballocation_multithread);
decl_test(test_placed_image_alignment);
decl_test(test_root_parameter_preservation);
decl_test(test_cbv_hoisting_sm51);
decl_test(test_cbv_hoisting_dxil);
decl_test(test_write_watch);
decl_test(test_conservative_rasterization_dxbc);
decl_test(test_conservative_rasterization_dxil);
decl_test(test_root_signature_priority);
decl_test(test_missing_bindings_root_signature);
decl_test(test_mismatching_pso_stages);
decl_test(test_null_descriptor_mismatch_type);
decl_test(test_vbv_stride_edge_cases);
decl_test(test_view_min_lod);
decl_test(test_sv_barycentric);
decl_test(test_shader_fp16);
decl_test(test_shader_sm62_denorm);
decl_test(test_shader_sm64_packed);
decl_test(test_shader_sm65_wave_intrinsics);