diff --git a/tests/d3d12.c b/tests/d3d12.c index a56025aa..c054b7dd 100644 --- a/tests/d3d12.c +++ b/tests/d3d12.c @@ -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 } diff --git a/tests/d3d12_tests.h b/tests/d3d12_tests.h new file mode 100644 index 00000000..c05bccef --- /dev/null +++ b/tests/d3d12_tests.h @@ -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);