diff --git a/build/nuke/Native/SPIRVCross.cs b/build/nuke/Native/SPIRVCross.cs index c1a0b94636..1800d99b23 100644 --- a/build/nuke/Native/SPIRVCross.cs +++ b/build/nuke/Native/SPIRVCross.cs @@ -68,19 +68,22 @@ pub fn build(b: *std.Build) void { if (mode != .Debug) lib.defineCMacro(""NDEBUG"", ""1""); - lib.addCSourceFiles(&.{ - root_path ++ ""spirv_cross.cpp"", - root_path ++ ""spirv_cfg.cpp"", - root_path ++ ""spirv_cpp.cpp"", - root_path ++ ""spirv_cross_c.cpp"", - root_path ++ ""spirv_cross_parsed_ir.cpp"", - root_path ++ ""spirv_cross_util.cpp"", - root_path ++ ""spirv_glsl.cpp"", - root_path ++ ""spirv_hlsl.cpp"", - root_path ++ ""spirv_msl.cpp"", - root_path ++ ""spirv_parser.cpp"", - root_path ++ ""spirv_reflect.cpp"", - }, flags); + lib.addCSourceFiles(.{ + .files = &.{ + root_path ++ ""spirv_cross.cpp"", + root_path ++ ""spirv_cfg.cpp"", + root_path ++ ""spirv_cpp.cpp"", + root_path ++ ""spirv_cross_c.cpp"", + root_path ++ ""spirv_cross_parsed_ir.cpp"", + root_path ++ ""spirv_cross_util.cpp"", + root_path ++ ""spirv_glsl.cpp"", + root_path ++ ""spirv_hlsl.cpp"", + root_path ++ ""spirv_msl.cpp"", + root_path ++ ""spirv_parser.cpp"", + root_path ++ ""spirv_reflect.cpp"", + }, + .flags = flags + }); b.installArtifact(lib); } diff --git a/build/nuke/Native/SPIRVReflect.cs b/build/nuke/Native/SPIRVReflect.cs index a76cb3880a..acaf6a98de 100644 --- a/build/nuke/Native/SPIRVReflect.cs +++ b/build/nuke/Native/SPIRVReflect.cs @@ -45,7 +45,7 @@ pub fn build(b: *std.Build) void { const lib: *std.build.LibExeObjStep = b.addSharedLibrary(shared_lib_options); lib.linkLibC(); - lib.addCSourceFiles(&.{""spirv_reflect.c""}, &.{ ""-std=c99"", ""-fPIC"" }); + lib.addCSourceFiles(.{ .files = &.{""spirv_reflect.c""}, .flags = &.{ ""-std=c99"", ""-fPIC"" } }); b.installArtifact(lib); }"; diff --git a/build/nuke/Native/Shaderc.cs b/build/nuke/Native/Shaderc.cs index b22c69bab1..72afbfb386 100644 --- a/build/nuke/Native/Shaderc.cs +++ b/build/nuke/Native/Shaderc.cs @@ -154,238 +154,241 @@ fn spvTools(b: *std.Build, target: std.zig.CrossTarget, optimize: std.builtin.Op spirv_tools.step.dependOn(&cl_debug_info_header_100.step); spirv_tools.step.dependOn(&non_semantic_shader_debug_info_100.step); - spirv_tools.addIncludePath(spirv_tools_root ++ ""include""); - spirv_tools.addIncludePath(spirv_tools_root ++ ""source""); - spirv_tools.addIncludePath(spirv_tools_root); - - spirv_tools.addIncludePath(root_path ++ ""third_party/spirv-headers/include/""); - - spirv_tools.addCSourceFiles(&.{ - spirv_tools_root ++ ""source/util/bit_vector.cpp"", - spirv_tools_root ++ ""source/util/parse_number.cpp"", - spirv_tools_root ++ ""source/util/string_utils.cpp"", - spirv_tools_root ++ ""source/assembly_grammar.cpp"", - spirv_tools_root ++ ""source/binary.cpp"", - spirv_tools_root ++ ""source/diagnostic.cpp"", - spirv_tools_root ++ ""source/disassemble.cpp"", - spirv_tools_root ++ ""source/enum_string_mapping.cpp"", - spirv_tools_root ++ ""source/ext_inst.cpp"", - spirv_tools_root ++ ""source/extensions.cpp"", - spirv_tools_root ++ ""source/libspirv.cpp"", - spirv_tools_root ++ ""source/name_mapper.cpp"", - spirv_tools_root ++ ""source/opcode.cpp"", - spirv_tools_root ++ ""source/operand.cpp"", - spirv_tools_root ++ ""source/parsed_operand.cpp"", - spirv_tools_root ++ ""source/print.cpp"", - spirv_tools_root ++ ""source/software_version.cpp"", - spirv_tools_root ++ ""source/spirv_endian.cpp"", - spirv_tools_root ++ ""source/spirv_fuzzer_options.cpp"", - spirv_tools_root ++ ""source/spirv_optimizer_options.cpp"", - spirv_tools_root ++ ""source/spirv_reducer_options.cpp"", - spirv_tools_root ++ ""source/spirv_target_env.cpp"", - spirv_tools_root ++ ""source/spirv_validator_options.cpp"", - spirv_tools_root ++ ""source/table.cpp"", - spirv_tools_root ++ ""source/text.cpp"", - spirv_tools_root ++ ""source/text_handler.cpp"", - spirv_tools_root ++ ""source/val/validate.cpp"", - spirv_tools_root ++ ""source/val/validate_adjacency.cpp"", - spirv_tools_root ++ ""source/val/validate_annotation.cpp"", - spirv_tools_root ++ ""source/val/validate_arithmetics.cpp"", - spirv_tools_root ++ ""source/val/validate_atomics.cpp"", - spirv_tools_root ++ ""source/val/validate_barriers.cpp"", - spirv_tools_root ++ ""source/val/validate_bitwise.cpp"", - spirv_tools_root ++ ""source/val/validate_builtins.cpp"", - spirv_tools_root ++ ""source/val/validate_capability.cpp"", - spirv_tools_root ++ ""source/val/validate_cfg.cpp"", - spirv_tools_root ++ ""source/val/validate_composites.cpp"", - spirv_tools_root ++ ""source/val/validate_constants.cpp"", - spirv_tools_root ++ ""source/val/validate_conversion.cpp"", - spirv_tools_root ++ ""source/val/validate_debug.cpp"", - spirv_tools_root ++ ""source/val/validate_decorations.cpp"", - spirv_tools_root ++ ""source/val/validate_derivatives.cpp"", - spirv_tools_root ++ ""source/val/validate_extensions.cpp"", - spirv_tools_root ++ ""source/val/validate_execution_limitations.cpp"", - spirv_tools_root ++ ""source/val/validate_function.cpp"", - spirv_tools_root ++ ""source/val/validate_id.cpp"", - spirv_tools_root ++ ""source/val/validate_image.cpp"", - spirv_tools_root ++ ""source/val/validate_interfaces.cpp"", - spirv_tools_root ++ ""source/val/validate_instruction.cpp"", - spirv_tools_root ++ ""source/val/validate_layout.cpp"", - spirv_tools_root ++ ""source/val/validate_literals.cpp"", - spirv_tools_root ++ ""source/val/validate_logicals.cpp"", - spirv_tools_root ++ ""source/val/validate_memory.cpp"", - spirv_tools_root ++ ""source/val/validate_memory_semantics.cpp"", - spirv_tools_root ++ ""source/val/validate_mesh_shading.cpp"", - spirv_tools_root ++ ""source/val/validate_misc.cpp"", - spirv_tools_root ++ ""source/val/validate_mode_setting.cpp"", - spirv_tools_root ++ ""source/val/validate_non_uniform.cpp"", - spirv_tools_root ++ ""source/val/validate_primitives.cpp"", - spirv_tools_root ++ ""source/val/validate_ray_query.cpp"", - spirv_tools_root ++ ""source/val/validate_ray_tracing.cpp"", - spirv_tools_root ++ ""source/val/validate_ray_tracing_reorder.cpp"", - spirv_tools_root ++ ""source/val/validate_scopes.cpp"", - spirv_tools_root ++ ""source/val/validate_small_type_uses.cpp"", - spirv_tools_root ++ ""source/val/validate_type.cpp"", - spirv_tools_root ++ ""source/val/basic_block.cpp"", - spirv_tools_root ++ ""source/val/construct.cpp"", - spirv_tools_root ++ ""source/val/function.cpp"", - spirv_tools_root ++ ""source/val/instruction.cpp"", - spirv_tools_root ++ ""source/val/validation_state.cpp"", - //opt folder - spirv_tools_root ++ ""source/opt/fix_func_call_arguments.cpp"", - spirv_tools_root ++ ""source/opt/aggressive_dead_code_elim_pass.cpp"", - spirv_tools_root ++ ""source/opt/amd_ext_to_khr.cpp"", - spirv_tools_root ++ ""source/opt/analyze_live_input_pass.cpp"", - spirv_tools_root ++ ""source/opt/basic_block.cpp"", - spirv_tools_root ++ ""source/opt/block_merge_pass.cpp"", - spirv_tools_root ++ ""source/opt/block_merge_util.cpp"", - spirv_tools_root ++ ""source/opt/build_module.cpp"", - spirv_tools_root ++ ""source/opt/ccp_pass.cpp"", - spirv_tools_root ++ ""source/opt/cfg_cleanup_pass.cpp"", - spirv_tools_root ++ ""source/opt/cfg.cpp"", - spirv_tools_root ++ ""source/opt/code_sink.cpp"", - spirv_tools_root ++ ""source/opt/combine_access_chains.cpp"", - spirv_tools_root ++ ""source/opt/compact_ids_pass.cpp"", - spirv_tools_root ++ ""source/opt/composite.cpp"", - spirv_tools_root ++ ""source/opt/const_folding_rules.cpp"", - spirv_tools_root ++ ""source/opt/constants.cpp"", - spirv_tools_root ++ ""source/opt/control_dependence.cpp"", - spirv_tools_root ++ ""source/opt/convert_to_sampled_image_pass.cpp"", - spirv_tools_root ++ ""source/opt/convert_to_half_pass.cpp"", - spirv_tools_root ++ ""source/opt/copy_prop_arrays.cpp"", - spirv_tools_root ++ ""source/opt/dataflow.cpp"", - spirv_tools_root ++ ""source/opt/dead_branch_elim_pass.cpp"", - spirv_tools_root ++ ""source/opt/dead_insert_elim_pass.cpp"", - spirv_tools_root ++ ""source/opt/dead_variable_elimination.cpp"", - spirv_tools_root ++ ""source/opt/decoration_manager.cpp"", - spirv_tools_root ++ ""source/opt/debug_info_manager.cpp"", - spirv_tools_root ++ ""source/opt/def_use_manager.cpp"", - spirv_tools_root ++ ""source/opt/desc_sroa.cpp"", - spirv_tools_root ++ ""source/opt/desc_sroa_util.cpp"", - spirv_tools_root ++ ""source/opt/dominator_analysis.cpp"", - spirv_tools_root ++ ""source/opt/dominator_tree.cpp"", - spirv_tools_root ++ ""source/opt/eliminate_dead_constant_pass.cpp"", - spirv_tools_root ++ ""source/opt/eliminate_dead_functions_pass.cpp"", - spirv_tools_root ++ ""source/opt/eliminate_dead_functions_util.cpp"", - spirv_tools_root ++ ""source/opt/eliminate_dead_io_components_pass.cpp"", - spirv_tools_root ++ ""source/opt/eliminate_dead_members_pass.cpp"", - spirv_tools_root ++ ""source/opt/eliminate_dead_output_stores_pass.cpp"", - spirv_tools_root ++ ""source/opt/feature_manager.cpp"", - spirv_tools_root ++ ""source/opt/fix_storage_class.cpp"", - spirv_tools_root ++ ""source/opt/flatten_decoration_pass.cpp"", - spirv_tools_root ++ ""source/opt/fold.cpp"", - spirv_tools_root ++ ""source/opt/folding_rules.cpp"", - spirv_tools_root ++ ""source/opt/fold_spec_constant_op_and_composite_pass.cpp"", - spirv_tools_root ++ ""source/opt/freeze_spec_constant_value_pass.cpp"", - spirv_tools_root ++ ""source/opt/function.cpp"", - spirv_tools_root ++ ""source/opt/graphics_robust_access_pass.cpp"", - spirv_tools_root ++ ""source/opt/if_conversion.cpp"", - spirv_tools_root ++ ""source/opt/inline_exhaustive_pass.cpp"", - spirv_tools_root ++ ""source/opt/inline_opaque_pass.cpp"", - spirv_tools_root ++ ""source/opt/inline_pass.cpp"", - spirv_tools_root ++ ""source/opt/inst_bindless_check_pass.cpp"", - spirv_tools_root ++ ""source/opt/inst_buff_addr_check_pass.cpp"", - spirv_tools_root ++ ""source/opt/inst_debug_printf_pass.cpp"", - spirv_tools_root ++ ""source/opt/instruction.cpp"", - spirv_tools_root ++ ""source/opt/instruction_list.cpp"", - spirv_tools_root ++ ""source/opt/instrument_pass.cpp"", - spirv_tools_root ++ ""source/opt/interface_var_sroa.cpp"", - spirv_tools_root ++ ""source/opt/interp_fixup_pass.cpp"", - spirv_tools_root ++ ""source/opt/ir_context.cpp"", - spirv_tools_root ++ ""source/opt/ir_loader.cpp"", - spirv_tools_root ++ ""source/opt/licm_pass.cpp"", - spirv_tools_root ++ ""source/opt/liveness.cpp"", - spirv_tools_root ++ ""source/opt/local_access_chain_convert_pass.cpp"", - spirv_tools_root ++ ""source/opt/local_redundancy_elimination.cpp"", - spirv_tools_root ++ ""source/opt/local_single_block_elim_pass.cpp"", - spirv_tools_root ++ ""source/opt/local_single_store_elim_pass.cpp"", - spirv_tools_root ++ ""source/opt/loop_dependence.cpp"", - spirv_tools_root ++ ""source/opt/loop_dependence_helpers.cpp"", - spirv_tools_root ++ ""source/opt/loop_descriptor.cpp"", - spirv_tools_root ++ ""source/opt/loop_fission.cpp"", - spirv_tools_root ++ ""source/opt/loop_fusion.cpp"", - spirv_tools_root ++ ""source/opt/loop_fusion_pass.cpp"", - spirv_tools_root ++ ""source/opt/loop_peeling.cpp"", - spirv_tools_root ++ ""source/opt/loop_utils.cpp"", - spirv_tools_root ++ ""source/opt/loop_unroller.cpp"", - spirv_tools_root ++ ""source/opt/loop_unswitch_pass.cpp"", - spirv_tools_root ++ ""source/opt/mem_pass.cpp"", - spirv_tools_root ++ ""source/opt/merge_return_pass.cpp"", - spirv_tools_root ++ ""source/opt/module.cpp"", - spirv_tools_root ++ ""source/opt/optimizer.cpp"", - spirv_tools_root ++ ""source/opt/pass.cpp"", - spirv_tools_root ++ ""source/opt/pass_manager.cpp"", - spirv_tools_root ++ ""source/opt/private_to_local_pass.cpp"", - spirv_tools_root ++ ""source/opt/propagator.cpp"", - spirv_tools_root ++ ""source/opt/reduce_load_size.cpp"", - spirv_tools_root ++ ""source/opt/redundancy_elimination.cpp"", - spirv_tools_root ++ ""source/opt/register_pressure.cpp"", - spirv_tools_root ++ ""source/opt/relax_float_ops_pass.cpp"", - spirv_tools_root ++ ""source/opt/remove_dontinline_pass.cpp"", - spirv_tools_root ++ ""source/opt/remove_duplicates_pass.cpp"", - spirv_tools_root ++ ""source/opt/remove_unused_interface_variables_pass.cpp"", - spirv_tools_root ++ ""source/opt/replace_desc_array_access_using_var_index.cpp"", - spirv_tools_root ++ ""source/opt/replace_invalid_opc.cpp"", - spirv_tools_root ++ ""source/opt/scalar_analysis.cpp"", - spirv_tools_root ++ ""source/opt/scalar_analysis_simplification.cpp"", - spirv_tools_root ++ ""source/opt/scalar_replacement_pass.cpp"", - spirv_tools_root ++ ""source/opt/set_spec_constant_default_value_pass.cpp"", - spirv_tools_root ++ ""source/opt/simplification_pass.cpp"", - spirv_tools_root ++ ""source/opt/spread_volatile_semantics.cpp"", - spirv_tools_root ++ ""source/opt/ssa_rewrite_pass.cpp"", - spirv_tools_root ++ ""source/opt/strength_reduction_pass.cpp"", - spirv_tools_root ++ ""source/opt/strip_debug_info_pass.cpp"", - spirv_tools_root ++ ""source/opt/strip_nonsemantic_info_pass.cpp"", - spirv_tools_root ++ ""source/opt/struct_cfg_analysis.cpp"", - spirv_tools_root ++ ""source/opt/type_manager.cpp"", - spirv_tools_root ++ ""source/opt/types.cpp"", - spirv_tools_root ++ ""source/opt/unify_const_pass.cpp"", - spirv_tools_root ++ ""source/opt/upgrade_memory_model.cpp"", - spirv_tools_root ++ ""source/opt/value_number_table.cpp"", - spirv_tools_root ++ ""source/opt/vector_dce.cpp"", - spirv_tools_root ++ ""source/opt/workaround1209.cpp"", - spirv_tools_root ++ ""source/opt/wrap_opkill.cpp"", - //reduce - spirv_tools_root ++ ""source/reduce/change_operand_reduction_opportunity.cpp"", - spirv_tools_root ++ ""source/reduce/change_operand_to_undef_reduction_opportunity.cpp"", - spirv_tools_root ++ ""source/reduce/conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp"", - spirv_tools_root ++ ""source/reduce/conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp"", - spirv_tools_root ++ ""source/reduce/merge_blocks_reduction_opportunity.cpp"", - spirv_tools_root ++ ""source/reduce/merge_blocks_reduction_opportunity_finder.cpp"", - spirv_tools_root ++ ""source/reduce/operand_to_const_reduction_opportunity_finder.cpp"", - spirv_tools_root ++ ""source/reduce/operand_to_undef_reduction_opportunity_finder.cpp"", - spirv_tools_root ++ ""source/reduce/operand_to_dominating_id_reduction_opportunity_finder.cpp"", - spirv_tools_root ++ ""source/reduce/reducer.cpp"", - spirv_tools_root ++ ""source/reduce/reduction_opportunity.cpp"", - spirv_tools_root ++ ""source/reduce/reduction_opportunity_finder.cpp"", - spirv_tools_root ++ ""source/reduce/reduction_pass.cpp"", - spirv_tools_root ++ ""source/reduce/reduction_util.cpp"", - spirv_tools_root ++ ""source/reduce/remove_block_reduction_opportunity.cpp"", - spirv_tools_root ++ ""source/reduce/remove_block_reduction_opportunity_finder.cpp"", - spirv_tools_root ++ ""source/reduce/remove_function_reduction_opportunity.cpp"", - spirv_tools_root ++ ""source/reduce/remove_function_reduction_opportunity_finder.cpp"", - spirv_tools_root ++ ""source/reduce/remove_instruction_reduction_opportunity.cpp"", - spirv_tools_root ++ ""source/reduce/remove_selection_reduction_opportunity.cpp"", - spirv_tools_root ++ ""source/reduce/remove_selection_reduction_opportunity_finder.cpp"", - spirv_tools_root ++ ""source/reduce/remove_struct_member_reduction_opportunity.cpp"", - spirv_tools_root ++ ""source/reduce/remove_unused_instruction_reduction_opportunity_finder.cpp"", - spirv_tools_root ++ ""source/reduce/remove_unused_struct_member_reduction_opportunity_finder.cpp"", - spirv_tools_root ++ ""source/reduce/simple_conditional_branch_to_branch_opportunity_finder.cpp"", - spirv_tools_root ++ ""source/reduce/simple_conditional_branch_to_branch_reduction_opportunity.cpp"", - spirv_tools_root ++ ""source/reduce/structured_construct_to_block_reduction_opportunity.cpp"", - spirv_tools_root ++ ""source/reduce/structured_construct_to_block_reduction_opportunity_finder.cpp"", - spirv_tools_root ++ ""source/reduce/structured_loop_to_selection_reduction_opportunity.cpp"", - spirv_tools_root ++ ""source/reduce/structured_loop_to_selection_reduction_opportunity_finder.cpp"", - //link - spirv_tools_root ++ ""source/link/linker.cpp"", - //lint - spirv_tools_root ++ ""source/lint/linter.cpp"", - spirv_tools_root ++ ""source/lint/linter.cpp"", - spirv_tools_root ++ ""source/lint/lint_divergent_derivatives.cpp"", - spirv_tools_root ++ ""source/lint/divergence_analysis.cpp"", - //diff - spirv_tools_root ++ ""source/diff/diff.cpp"", - }, flags); + spirv_tools.addIncludePath(.{.path = spirv_tools_root ++ ""include""}); + spirv_tools.addIncludePath(.{.path = spirv_tools_root ++ ""source""}); + spirv_tools.addIncludePath(.{.path = spirv_tools_root}); + + spirv_tools.addIncludePath(.{.path = root_path ++ ""third_party/spirv-headers/include/""}); + + spirv_tools.addCSourceFiles(.{ + .files = &.{ + spirv_tools_root ++ ""source/util/bit_vector.cpp"", + spirv_tools_root ++ ""source/util/parse_number.cpp"", + spirv_tools_root ++ ""source/util/string_utils.cpp"", + spirv_tools_root ++ ""source/assembly_grammar.cpp"", + spirv_tools_root ++ ""source/binary.cpp"", + spirv_tools_root ++ ""source/diagnostic.cpp"", + spirv_tools_root ++ ""source/disassemble.cpp"", + spirv_tools_root ++ ""source/enum_string_mapping.cpp"", + spirv_tools_root ++ ""source/ext_inst.cpp"", + spirv_tools_root ++ ""source/extensions.cpp"", + spirv_tools_root ++ ""source/libspirv.cpp"", + spirv_tools_root ++ ""source/name_mapper.cpp"", + spirv_tools_root ++ ""source/opcode.cpp"", + spirv_tools_root ++ ""source/operand.cpp"", + spirv_tools_root ++ ""source/parsed_operand.cpp"", + spirv_tools_root ++ ""source/print.cpp"", + spirv_tools_root ++ ""source/software_version.cpp"", + spirv_tools_root ++ ""source/spirv_endian.cpp"", + spirv_tools_root ++ ""source/spirv_fuzzer_options.cpp"", + spirv_tools_root ++ ""source/spirv_optimizer_options.cpp"", + spirv_tools_root ++ ""source/spirv_reducer_options.cpp"", + spirv_tools_root ++ ""source/spirv_target_env.cpp"", + spirv_tools_root ++ ""source/spirv_validator_options.cpp"", + spirv_tools_root ++ ""source/table.cpp"", + spirv_tools_root ++ ""source/text.cpp"", + spirv_tools_root ++ ""source/text_handler.cpp"", + spirv_tools_root ++ ""source/val/validate.cpp"", + spirv_tools_root ++ ""source/val/validate_adjacency.cpp"", + spirv_tools_root ++ ""source/val/validate_annotation.cpp"", + spirv_tools_root ++ ""source/val/validate_arithmetics.cpp"", + spirv_tools_root ++ ""source/val/validate_atomics.cpp"", + spirv_tools_root ++ ""source/val/validate_barriers.cpp"", + spirv_tools_root ++ ""source/val/validate_bitwise.cpp"", + spirv_tools_root ++ ""source/val/validate_builtins.cpp"", + spirv_tools_root ++ ""source/val/validate_capability.cpp"", + spirv_tools_root ++ ""source/val/validate_cfg.cpp"", + spirv_tools_root ++ ""source/val/validate_composites.cpp"", + spirv_tools_root ++ ""source/val/validate_constants.cpp"", + spirv_tools_root ++ ""source/val/validate_conversion.cpp"", + spirv_tools_root ++ ""source/val/validate_debug.cpp"", + spirv_tools_root ++ ""source/val/validate_decorations.cpp"", + spirv_tools_root ++ ""source/val/validate_derivatives.cpp"", + spirv_tools_root ++ ""source/val/validate_extensions.cpp"", + spirv_tools_root ++ ""source/val/validate_execution_limitations.cpp"", + spirv_tools_root ++ ""source/val/validate_function.cpp"", + spirv_tools_root ++ ""source/val/validate_id.cpp"", + spirv_tools_root ++ ""source/val/validate_image.cpp"", + spirv_tools_root ++ ""source/val/validate_interfaces.cpp"", + spirv_tools_root ++ ""source/val/validate_instruction.cpp"", + spirv_tools_root ++ ""source/val/validate_layout.cpp"", + spirv_tools_root ++ ""source/val/validate_literals.cpp"", + spirv_tools_root ++ ""source/val/validate_logicals.cpp"", + spirv_tools_root ++ ""source/val/validate_memory.cpp"", + spirv_tools_root ++ ""source/val/validate_memory_semantics.cpp"", + spirv_tools_root ++ ""source/val/validate_mesh_shading.cpp"", + spirv_tools_root ++ ""source/val/validate_misc.cpp"", + spirv_tools_root ++ ""source/val/validate_mode_setting.cpp"", + spirv_tools_root ++ ""source/val/validate_non_uniform.cpp"", + spirv_tools_root ++ ""source/val/validate_primitives.cpp"", + spirv_tools_root ++ ""source/val/validate_ray_query.cpp"", + spirv_tools_root ++ ""source/val/validate_ray_tracing.cpp"", + spirv_tools_root ++ ""source/val/validate_ray_tracing_reorder.cpp"", + spirv_tools_root ++ ""source/val/validate_scopes.cpp"", + spirv_tools_root ++ ""source/val/validate_small_type_uses.cpp"", + spirv_tools_root ++ ""source/val/validate_type.cpp"", + spirv_tools_root ++ ""source/val/basic_block.cpp"", + spirv_tools_root ++ ""source/val/construct.cpp"", + spirv_tools_root ++ ""source/val/function.cpp"", + spirv_tools_root ++ ""source/val/instruction.cpp"", + spirv_tools_root ++ ""source/val/validation_state.cpp"", + //opt folder + spirv_tools_root ++ ""source/opt/fix_func_call_arguments.cpp"", + spirv_tools_root ++ ""source/opt/aggressive_dead_code_elim_pass.cpp"", + spirv_tools_root ++ ""source/opt/amd_ext_to_khr.cpp"", + spirv_tools_root ++ ""source/opt/analyze_live_input_pass.cpp"", + spirv_tools_root ++ ""source/opt/basic_block.cpp"", + spirv_tools_root ++ ""source/opt/block_merge_pass.cpp"", + spirv_tools_root ++ ""source/opt/block_merge_util.cpp"", + spirv_tools_root ++ ""source/opt/build_module.cpp"", + spirv_tools_root ++ ""source/opt/ccp_pass.cpp"", + spirv_tools_root ++ ""source/opt/cfg_cleanup_pass.cpp"", + spirv_tools_root ++ ""source/opt/cfg.cpp"", + spirv_tools_root ++ ""source/opt/code_sink.cpp"", + spirv_tools_root ++ ""source/opt/combine_access_chains.cpp"", + spirv_tools_root ++ ""source/opt/compact_ids_pass.cpp"", + spirv_tools_root ++ ""source/opt/composite.cpp"", + spirv_tools_root ++ ""source/opt/const_folding_rules.cpp"", + spirv_tools_root ++ ""source/opt/constants.cpp"", + spirv_tools_root ++ ""source/opt/control_dependence.cpp"", + spirv_tools_root ++ ""source/opt/convert_to_sampled_image_pass.cpp"", + spirv_tools_root ++ ""source/opt/convert_to_half_pass.cpp"", + spirv_tools_root ++ ""source/opt/copy_prop_arrays.cpp"", + spirv_tools_root ++ ""source/opt/dataflow.cpp"", + spirv_tools_root ++ ""source/opt/dead_branch_elim_pass.cpp"", + spirv_tools_root ++ ""source/opt/dead_insert_elim_pass.cpp"", + spirv_tools_root ++ ""source/opt/dead_variable_elimination.cpp"", + spirv_tools_root ++ ""source/opt/decoration_manager.cpp"", + spirv_tools_root ++ ""source/opt/debug_info_manager.cpp"", + spirv_tools_root ++ ""source/opt/def_use_manager.cpp"", + spirv_tools_root ++ ""source/opt/desc_sroa.cpp"", + spirv_tools_root ++ ""source/opt/desc_sroa_util.cpp"", + spirv_tools_root ++ ""source/opt/dominator_analysis.cpp"", + spirv_tools_root ++ ""source/opt/dominator_tree.cpp"", + spirv_tools_root ++ ""source/opt/eliminate_dead_constant_pass.cpp"", + spirv_tools_root ++ ""source/opt/eliminate_dead_functions_pass.cpp"", + spirv_tools_root ++ ""source/opt/eliminate_dead_functions_util.cpp"", + spirv_tools_root ++ ""source/opt/eliminate_dead_io_components_pass.cpp"", + spirv_tools_root ++ ""source/opt/eliminate_dead_members_pass.cpp"", + spirv_tools_root ++ ""source/opt/eliminate_dead_output_stores_pass.cpp"", + spirv_tools_root ++ ""source/opt/feature_manager.cpp"", + spirv_tools_root ++ ""source/opt/fix_storage_class.cpp"", + spirv_tools_root ++ ""source/opt/flatten_decoration_pass.cpp"", + spirv_tools_root ++ ""source/opt/fold.cpp"", + spirv_tools_root ++ ""source/opt/folding_rules.cpp"", + spirv_tools_root ++ ""source/opt/fold_spec_constant_op_and_composite_pass.cpp"", + spirv_tools_root ++ ""source/opt/freeze_spec_constant_value_pass.cpp"", + spirv_tools_root ++ ""source/opt/function.cpp"", + spirv_tools_root ++ ""source/opt/graphics_robust_access_pass.cpp"", + spirv_tools_root ++ ""source/opt/if_conversion.cpp"", + spirv_tools_root ++ ""source/opt/inline_exhaustive_pass.cpp"", + spirv_tools_root ++ ""source/opt/inline_opaque_pass.cpp"", + spirv_tools_root ++ ""source/opt/inline_pass.cpp"", + spirv_tools_root ++ ""source/opt/inst_bindless_check_pass.cpp"", + spirv_tools_root ++ ""source/opt/inst_buff_addr_check_pass.cpp"", + spirv_tools_root ++ ""source/opt/inst_debug_printf_pass.cpp"", + spirv_tools_root ++ ""source/opt/instruction.cpp"", + spirv_tools_root ++ ""source/opt/instruction_list.cpp"", + spirv_tools_root ++ ""source/opt/instrument_pass.cpp"", + spirv_tools_root ++ ""source/opt/interface_var_sroa.cpp"", + spirv_tools_root ++ ""source/opt/interp_fixup_pass.cpp"", + spirv_tools_root ++ ""source/opt/ir_context.cpp"", + spirv_tools_root ++ ""source/opt/ir_loader.cpp"", + spirv_tools_root ++ ""source/opt/licm_pass.cpp"", + spirv_tools_root ++ ""source/opt/liveness.cpp"", + spirv_tools_root ++ ""source/opt/local_access_chain_convert_pass.cpp"", + spirv_tools_root ++ ""source/opt/local_redundancy_elimination.cpp"", + spirv_tools_root ++ ""source/opt/local_single_block_elim_pass.cpp"", + spirv_tools_root ++ ""source/opt/local_single_store_elim_pass.cpp"", + spirv_tools_root ++ ""source/opt/loop_dependence.cpp"", + spirv_tools_root ++ ""source/opt/loop_dependence_helpers.cpp"", + spirv_tools_root ++ ""source/opt/loop_descriptor.cpp"", + spirv_tools_root ++ ""source/opt/loop_fission.cpp"", + spirv_tools_root ++ ""source/opt/loop_fusion.cpp"", + spirv_tools_root ++ ""source/opt/loop_fusion_pass.cpp"", + spirv_tools_root ++ ""source/opt/loop_peeling.cpp"", + spirv_tools_root ++ ""source/opt/loop_utils.cpp"", + spirv_tools_root ++ ""source/opt/loop_unroller.cpp"", + spirv_tools_root ++ ""source/opt/loop_unswitch_pass.cpp"", + spirv_tools_root ++ ""source/opt/mem_pass.cpp"", + spirv_tools_root ++ ""source/opt/merge_return_pass.cpp"", + spirv_tools_root ++ ""source/opt/module.cpp"", + spirv_tools_root ++ ""source/opt/optimizer.cpp"", + spirv_tools_root ++ ""source/opt/pass.cpp"", + spirv_tools_root ++ ""source/opt/pass_manager.cpp"", + spirv_tools_root ++ ""source/opt/private_to_local_pass.cpp"", + spirv_tools_root ++ ""source/opt/propagator.cpp"", + spirv_tools_root ++ ""source/opt/reduce_load_size.cpp"", + spirv_tools_root ++ ""source/opt/redundancy_elimination.cpp"", + spirv_tools_root ++ ""source/opt/register_pressure.cpp"", + spirv_tools_root ++ ""source/opt/relax_float_ops_pass.cpp"", + spirv_tools_root ++ ""source/opt/remove_dontinline_pass.cpp"", + spirv_tools_root ++ ""source/opt/remove_duplicates_pass.cpp"", + spirv_tools_root ++ ""source/opt/remove_unused_interface_variables_pass.cpp"", + spirv_tools_root ++ ""source/opt/replace_desc_array_access_using_var_index.cpp"", + spirv_tools_root ++ ""source/opt/replace_invalid_opc.cpp"", + spirv_tools_root ++ ""source/opt/scalar_analysis.cpp"", + spirv_tools_root ++ ""source/opt/scalar_analysis_simplification.cpp"", + spirv_tools_root ++ ""source/opt/scalar_replacement_pass.cpp"", + spirv_tools_root ++ ""source/opt/set_spec_constant_default_value_pass.cpp"", + spirv_tools_root ++ ""source/opt/simplification_pass.cpp"", + spirv_tools_root ++ ""source/opt/spread_volatile_semantics.cpp"", + spirv_tools_root ++ ""source/opt/ssa_rewrite_pass.cpp"", + spirv_tools_root ++ ""source/opt/strength_reduction_pass.cpp"", + spirv_tools_root ++ ""source/opt/strip_debug_info_pass.cpp"", + spirv_tools_root ++ ""source/opt/strip_nonsemantic_info_pass.cpp"", + spirv_tools_root ++ ""source/opt/struct_cfg_analysis.cpp"", + spirv_tools_root ++ ""source/opt/type_manager.cpp"", + spirv_tools_root ++ ""source/opt/types.cpp"", + spirv_tools_root ++ ""source/opt/unify_const_pass.cpp"", + spirv_tools_root ++ ""source/opt/upgrade_memory_model.cpp"", + spirv_tools_root ++ ""source/opt/value_number_table.cpp"", + spirv_tools_root ++ ""source/opt/vector_dce.cpp"", + spirv_tools_root ++ ""source/opt/workaround1209.cpp"", + spirv_tools_root ++ ""source/opt/wrap_opkill.cpp"", + //reduce + spirv_tools_root ++ ""source/reduce/change_operand_reduction_opportunity.cpp"", + spirv_tools_root ++ ""source/reduce/change_operand_to_undef_reduction_opportunity.cpp"", + spirv_tools_root ++ ""source/reduce/conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp"", + spirv_tools_root ++ ""source/reduce/conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp"", + spirv_tools_root ++ ""source/reduce/merge_blocks_reduction_opportunity.cpp"", + spirv_tools_root ++ ""source/reduce/merge_blocks_reduction_opportunity_finder.cpp"", + spirv_tools_root ++ ""source/reduce/operand_to_const_reduction_opportunity_finder.cpp"", + spirv_tools_root ++ ""source/reduce/operand_to_undef_reduction_opportunity_finder.cpp"", + spirv_tools_root ++ ""source/reduce/operand_to_dominating_id_reduction_opportunity_finder.cpp"", + spirv_tools_root ++ ""source/reduce/reducer.cpp"", + spirv_tools_root ++ ""source/reduce/reduction_opportunity.cpp"", + spirv_tools_root ++ ""source/reduce/reduction_opportunity_finder.cpp"", + spirv_tools_root ++ ""source/reduce/reduction_pass.cpp"", + spirv_tools_root ++ ""source/reduce/reduction_util.cpp"", + spirv_tools_root ++ ""source/reduce/remove_block_reduction_opportunity.cpp"", + spirv_tools_root ++ ""source/reduce/remove_block_reduction_opportunity_finder.cpp"", + spirv_tools_root ++ ""source/reduce/remove_function_reduction_opportunity.cpp"", + spirv_tools_root ++ ""source/reduce/remove_function_reduction_opportunity_finder.cpp"", + spirv_tools_root ++ ""source/reduce/remove_instruction_reduction_opportunity.cpp"", + spirv_tools_root ++ ""source/reduce/remove_selection_reduction_opportunity.cpp"", + spirv_tools_root ++ ""source/reduce/remove_selection_reduction_opportunity_finder.cpp"", + spirv_tools_root ++ ""source/reduce/remove_struct_member_reduction_opportunity.cpp"", + spirv_tools_root ++ ""source/reduce/remove_unused_instruction_reduction_opportunity_finder.cpp"", + spirv_tools_root ++ ""source/reduce/remove_unused_struct_member_reduction_opportunity_finder.cpp"", + spirv_tools_root ++ ""source/reduce/simple_conditional_branch_to_branch_opportunity_finder.cpp"", + spirv_tools_root ++ ""source/reduce/simple_conditional_branch_to_branch_reduction_opportunity.cpp"", + spirv_tools_root ++ ""source/reduce/structured_construct_to_block_reduction_opportunity.cpp"", + spirv_tools_root ++ ""source/reduce/structured_construct_to_block_reduction_opportunity_finder.cpp"", + spirv_tools_root ++ ""source/reduce/structured_loop_to_selection_reduction_opportunity.cpp"", + spirv_tools_root ++ ""source/reduce/structured_loop_to_selection_reduction_opportunity_finder.cpp"", + //link + spirv_tools_root ++ ""source/link/linker.cpp"", + //lint + spirv_tools_root ++ ""source/lint/linter.cpp"", + spirv_tools_root ++ ""source/lint/linter.cpp"", + spirv_tools_root ++ ""source/lint/lint_divergent_derivatives.cpp"", + spirv_tools_root ++ ""source/lint/divergence_analysis.cpp"", + //diff + spirv_tools_root ++ ""source/diff/diff.cpp"", + }, + .flags = flags + }); return spirv_tools; } @@ -399,72 +402,78 @@ fn glslang_lib(b: *std.Build, target: std.zig.CrossTarget, optimize: std.builtin glslang.linkLibC(); glslang.linkLibCpp(); - glslang.addIncludePath(root_glslang_path ++ ""Include""); - glslang.addIncludePath(root_glslang_path); + glslang.addIncludePath(.{.path = root_glslang_path ++ ""Include""}); + glslang.addIncludePath(.{.path = root_glslang_path}); glslang.defineCMacro(""ENABLE_HLSL"", ""1""); - glslang.addCSourceFiles(&.{ - root_glslang_path ++ ""glslang/MachineIndependent/glslang_tab.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/attribute.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/Constant.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/iomapper.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/InfoSink.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/Initialize.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/IntermTraverse.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/Intermediate.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/ParseContextBase.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/ParseHelper.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/PoolAlloc.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/RemoveTree.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/Scan.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/ShaderLang.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/SpirvIntrinsics.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/SymbolTable.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/Versions.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/intermOut.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/limits.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/linkValidate.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/parseConst.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/reflection.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/preprocessor/Pp.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/preprocessor/PpAtom.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/preprocessor/PpContext.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/preprocessor/PpScanner.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/preprocessor/PpTokens.cpp"", - root_glslang_path ++ ""glslang/MachineIndependent/propagateNoContraction.cpp"", - root_glslang_path ++ ""glslang/HLSL/hlslAttributes.cpp"", - root_glslang_path ++ ""glslang/HLSL/hlslParseHelper.cpp"", - root_glslang_path ++ ""glslang/HLSL/hlslScanContext.cpp"", - root_glslang_path ++ ""glslang/HLSL/hlslOpMap.cpp"", - root_glslang_path ++ ""glslang/HLSL/hlslTokenStream.cpp"", - root_glslang_path ++ ""glslang/HLSL/hlslGrammar.cpp"", - root_glslang_path ++ ""glslang/HLSL/hlslParseables.cpp"", - root_glslang_path ++ ""glslang/GenericCodeGen/CodeGen.cpp"", - root_glslang_path ++ ""glslang/GenericCodeGen/Link.cpp"", - }, flags); + glslang.addCSourceFiles(.{ + .files = &.{ + root_glslang_path ++ ""glslang/MachineIndependent/glslang_tab.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/attribute.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/Constant.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/iomapper.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/InfoSink.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/Initialize.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/IntermTraverse.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/Intermediate.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/ParseContextBase.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/ParseHelper.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/PoolAlloc.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/RemoveTree.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/Scan.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/ShaderLang.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/SpirvIntrinsics.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/SymbolTable.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/Versions.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/intermOut.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/limits.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/linkValidate.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/parseConst.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/reflection.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/preprocessor/Pp.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/preprocessor/PpAtom.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/preprocessor/PpContext.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/preprocessor/PpScanner.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/preprocessor/PpTokens.cpp"", + root_glslang_path ++ ""glslang/MachineIndependent/propagateNoContraction.cpp"", + root_glslang_path ++ ""glslang/HLSL/hlslAttributes.cpp"", + root_glslang_path ++ ""glslang/HLSL/hlslParseHelper.cpp"", + root_glslang_path ++ ""glslang/HLSL/hlslScanContext.cpp"", + root_glslang_path ++ ""glslang/HLSL/hlslOpMap.cpp"", + root_glslang_path ++ ""glslang/HLSL/hlslTokenStream.cpp"", + root_glslang_path ++ ""glslang/HLSL/hlslGrammar.cpp"", + root_glslang_path ++ ""glslang/HLSL/hlslParseables.cpp"", + root_glslang_path ++ ""glslang/GenericCodeGen/CodeGen.cpp"", + root_glslang_path ++ ""glslang/GenericCodeGen/Link.cpp"", + }, + .flags = flags, + }); if (target.isWindows()) { - glslang.addCSourceFiles(&.{root_glslang_path ++ ""glslang/OSDependent/Windows/ossource.cpp""}, flags); + glslang.addCSourceFiles(.{.files = &.{root_glslang_path ++ ""glslang/OSDependent/Windows/ossource.cpp""}, .flags = flags}); } //This assumption is wrong, but anything that isnt windows is basically unix :^) else { - glslang.addCSourceFiles(&.{root_glslang_path ++ ""glslang/OSDependent/Unix/ossource.cpp""}, flags); + glslang.addCSourceFiles(.{.files = &.{root_glslang_path ++ ""glslang/OSDependent/Unix/ossource.cpp""}, .flags = flags}); } - glslang.addCSourceFiles(&.{root_glslang_path ++ ""OGLCompilersDLL/InitializeDll.cpp""}, flags); - - glslang.addCSourceFiles(&.{ - root_glslang_path ++ ""SPIRV/GlslangToSpv.cpp"", - root_glslang_path ++ ""SPIRV/InReadableOrder.cpp"", - root_glslang_path ++ ""SPIRV/Logger.cpp"", - root_glslang_path ++ ""SPIRV/SpvBuilder.cpp"", - root_glslang_path ++ ""SPIRV/SpvPostProcess.cpp"", - root_glslang_path ++ ""SPIRV/doc.cpp"", - root_glslang_path ++ ""SPIRV/SpvTools.cpp"", - root_glslang_path ++ ""SPIRV/disassemble.cpp"", - root_glslang_path ++ ""SPIRV/CInterface/spirv_c_interface.cpp"", - }, flags); + glslang.addCSourceFiles(.{.files = &.{root_glslang_path ++ ""OGLCompilersDLL/InitializeDll.cpp""}, .flags = flags}); + + glslang.addCSourceFiles(.{ + .files = &.{ + root_glslang_path ++ ""SPIRV/GlslangToSpv.cpp"", + root_glslang_path ++ ""SPIRV/InReadableOrder.cpp"", + root_glslang_path ++ ""SPIRV/Logger.cpp"", + root_glslang_path ++ ""SPIRV/SpvBuilder.cpp"", + root_glslang_path ++ ""SPIRV/SpvPostProcess.cpp"", + root_glslang_path ++ ""SPIRV/doc.cpp"", + root_glslang_path ++ ""SPIRV/SpvTools.cpp"", + root_glslang_path ++ ""SPIRV/disassemble.cpp"", + root_glslang_path ++ ""SPIRV/CInterface/spirv_c_interface.cpp"", + }, + .flags = flags, + }); const generate_build_info = b.addSystemCommand(&.{ ""python3"", @@ -494,26 +503,29 @@ pub fn build(b: *std.Build) void { }); shaderc_util.linkLibC(); shaderc_util.linkLibCpp(); - shaderc_util.addIncludePath(root_path ++ ""libshaderc/include""); - shaderc_util.addIncludePath(root_path ++ ""libshaderc_util/include""); + shaderc_util.addIncludePath(.{.path = root_path ++ ""libshaderc/include""}); + shaderc_util.addIncludePath(.{.path = root_path ++ ""libshaderc_util/include""}); - shaderc_util.addIncludePath(root_path ++ ""third_party/glslang""); - shaderc_util.addIncludePath(root_path ++ ""third_party/spirv-tools/include""); - shaderc_util.addIncludePath(root_path ++ ""third_party/spirv-headers/include/""); + shaderc_util.addIncludePath(.{.path = root_path ++ ""third_party/glslang""}); + shaderc_util.addIncludePath(.{.path = root_path ++ ""third_party/spirv-tools/include""}); + shaderc_util.addIncludePath(.{.path = root_path ++ ""third_party/spirv-headers/include/""}); shaderc_util.defineCMacro(""ENABLE_HLSL"", ""1""); - shaderc_util.addCSourceFiles(&.{ - root_path ++ ""libshaderc_util/src/args.cc"", - root_path ++ ""libshaderc_util/src/compiler.cc"", - root_path ++ ""libshaderc_util/src/file_finder.cc"", - root_path ++ ""libshaderc_util/src/io_shaderc.cc"", - root_path ++ ""libshaderc_util/src/message.cc"", - root_path ++ ""libshaderc_util/src/resources.cc"", - root_path ++ ""libshaderc_util/src/shader_stage.cc"", - root_path ++ ""libshaderc_util/src/spirv_tools_wrapper.cc"", - root_path ++ ""libshaderc_util/src/version_profile.cc"", - }, flags); + shaderc_util.addCSourceFiles(.{ + .files = &.{ + root_path ++ ""libshaderc_util/src/args.cc"", + root_path ++ ""libshaderc_util/src/compiler.cc"", + root_path ++ ""libshaderc_util/src/file_finder.cc"", + root_path ++ ""libshaderc_util/src/io_shaderc.cc"", + root_path ++ ""libshaderc_util/src/message.cc"", + root_path ++ ""libshaderc_util/src/resources.cc"", + root_path ++ ""libshaderc_util/src/shader_stage.cc"", + root_path ++ ""libshaderc_util/src/spirv_tools_wrapper.cc"", + root_path ++ ""libshaderc_util/src/version_profile.cc"", + }, + .flags = flags, + }); const shaderc: *std.build.Step.Compile = b.addSharedLibrary(.{ .name = ""shaderc_shared"", @@ -530,16 +542,19 @@ pub fn build(b: *std.Build) void { shaderc.strip = true; - shaderc.addIncludePath(root_path ++ ""libshaderc/include""); - shaderc.addIncludePath(root_path ++ ""libshaderc_util/include""); + shaderc.addIncludePath(.{.path = root_path ++ ""libshaderc/include""}); + shaderc.addIncludePath(.{.path = root_path ++ ""libshaderc_util/include""}); - shaderc.addIncludePath(root_path ++ ""third_party/glslang""); - shaderc.addIncludePath(root_path ++ ""third_party/spirv-tools/include""); - shaderc.addIncludePath(root_path ++ ""third_party/spirv-headers/include/""); + shaderc.addIncludePath(.{.path = root_path ++ ""third_party/glslang""}); + shaderc.addIncludePath(.{.path = root_path ++ ""third_party/spirv-tools/include""}); + shaderc.addIncludePath(.{.path = root_path ++ ""third_party/spirv-headers/include/""}); - shaderc.addCSourceFiles(&.{ - root_path ++ ""libshaderc/src/shaderc.cc"", - }, flags); + shaderc.addCSourceFiles(.{ + .files = &.{ + root_path ++ ""libshaderc/src/shaderc.cc"", + }, + .flags = flags, + }); b.installArtifact(shaderc); } diff --git a/build/submodules/vkd3d b/build/submodules/vkd3d index 771e442af1..9c2d740607 160000 --- a/build/submodules/vkd3d +++ b/build/submodules/vkd3d @@ -1 +1 @@ -Subproject commit 771e442af16228a977eebba82224f06f6d0202fe +Subproject commit 9c2d740607a3234a5a98c3f084c2326569f6e183 diff --git a/src/Microsoft/Vkd3dCompiler/build.sh b/src/Microsoft/Vkd3dCompiler/build.sh deleted file mode 100755 index 6c9d0c1056..0000000000 --- a/src/Microsoft/Vkd3dCompiler/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -clang lib.c -fno-caret-diagnostics -D__GLIBC_MINOR__=36 -target x86_64-unknown-linux-gnu -fno-spell-checking -isystem /usr/include -Xclang -target-cpu -Xclang x86-64 -Xclang -target-feature -Xclang -16bit-mode -Xclang -target-feature -Xclang -32bit-mode -Xclang -target-feature -Xclang -3dnow -Xclang -target-feature -Xclang -3dnowa -Xclang -target-feature -Xclang +64bit -Xclang -target-feature -Xclang +adx -Xclang -target-feature -Xclang +aes -Xclang -target-feature -Xclang -amx-bf16 -Xclang -target-feature -Xclang -amx-int8 -Xclang -target-feature -Xclang -amx-tile -Xclang -target-feature -Xclang +avx -Xclang -target-feature -Xclang +avx2 -Xclang -target-feature -Xclang -avx512bf16 -Xclang -target-feature -Xclang -avx512bitalg -Xclang -target-feature -Xclang -avx512bw -Xclang -target-feature -Xclang -avx512cd -Xclang -target-feature -Xclang -avx512dq -Xclang -target-feature -Xclang -avx512er -Xclang -target-feature -Xclang -avx512f -Xclang -target-feature -Xclang -avx512fp16 -Xclang -target-feature -Xclang -avx512ifma -Xclang -target-feature -Xclang -avx512pf -Xclang -target-feature -Xclang -avx512vbmi -Xclang -target-feature -Xclang -avx512vbmi2 -Xclang -target-feature -Xclang -avx512vl -Xclang -target-feature -Xclang -avx512vnni -Xclang -target-feature -Xclang -avx512vp2intersect -Xclang -target-feature -Xclang -avx512vpopcntdq -Xclang -target-feature -Xclang -avxvnni -Xclang -target-feature -Xclang +bmi -Xclang -target-feature -Xclang +bmi2 -Xclang -target-feature -Xclang -branchfusion -Xclang -target-feature -Xclang -cldemote -Xclang -target-feature -Xclang +clflushopt -Xclang -target-feature -Xclang +clwb -Xclang -target-feature -Xclang -clzero -Xclang -target-feature -Xclang +cmov -Xclang -target-feature -Xclang -crc32 -Xclang -target-feature -Xclang +cx16 -Xclang -target-feature -Xclang +cx8 -Xclang -target-feature -Xclang -enqcmd -Xclang -target-feature -Xclang -ermsb -Xclang -target-feature -Xclang +f16c -Xclang -target-feature -Xclang -false-deps-getmant -Xclang -target-feature -Xclang -false-deps-lzcnt-tzcnt -Xclang -target-feature -Xclang -false-deps-mulc -Xclang -target-feature -Xclang -false-deps-mullq -Xclang -target-feature -Xclang -false-deps-perm -Xclang -target-feature -Xclang -false-deps-popcnt -Xclang -target-feature -Xclang -false-deps-range -Xclang -target-feature -Xclang -fast-11bytenop -Xclang -target-feature -Xclang -fast-15bytenop -Xclang -target-feature -Xclang -fast-7bytenop -Xclang -target-feature -Xclang -fast-bextr -Xclang -target-feature -Xclang -fast-gather -Xclang -target-feature -Xclang -fast-hops -Xclang -target-feature -Xclang -fast-lzcnt -Xclang -target-feature -Xclang -fast-movbe -Xclang -target-feature -Xclang -fast-scalar-fsqrt -Xclang -target-feature -Xclang -fast-scalar-shift-masks -Xclang -target-feature -Xclang -fast-shld-rotate -Xclang -target-feature -Xclang -fast-variable-crosslane-shuffle -Xclang -target-feature -Xclang -fast-variable-perlane-shuffle -Xclang -target-feature -Xclang -fast-vector-fsqrt -Xclang -target-feature -Xclang -fast-vector-shift-masks -Xclang -target-feature -Xclang +fma -Xclang -target-feature -Xclang -fma4 -Xclang -target-feature -Xclang +fsgsbase -Xclang -target-feature -Xclang -fsrm -Xclang -target-feature -Xclang +fxsr -Xclang -target-feature -Xclang +gfni -Xclang -target-feature -Xclang -harden-sls-ijmp -Xclang -target-feature -Xclang -harden-sls-ret -Xclang -target-feature -Xclang -hreset -Xclang -target-feature -Xclang -idivl-to-divb -Xclang -target-feature -Xclang +idivq-to-divl -Xclang -target-feature -Xclang +invpcid -Xclang -target-feature -Xclang -kl -Xclang -target-feature -Xclang -lea-sp -Xclang -target-feature -Xclang -lea-uses-ag -Xclang -target-feature -Xclang -lvi-cfi -Xclang -target-feature -Xclang -lvi-load-hardening -Xclang -target-feature -Xclang -lwp -Xclang -target-feature -Xclang +lzcnt -Xclang -target-feature -Xclang +macrofusion -Xclang -target-feature -Xclang +mmx -Xclang -target-feature -Xclang +movbe -Xclang -target-feature -Xclang +movdir64b -Xclang -target-feature -Xclang +movdiri -Xclang -target-feature -Xclang -mwaitx -Xclang -target-feature -Xclang +nopl -Xclang -target-feature -Xclang -pad-short-functions -Xclang -target-feature -Xclang +pclmul -Xclang -target-feature -Xclang +pconfig -Xclang -target-feature -Xclang +pku -Xclang -target-feature -Xclang +popcnt -Xclang -target-feature -Xclang -prefer-128-bit -Xclang -target-feature -Xclang -prefer-256-bit -Xclang -target-feature -Xclang -prefer-mask-registers -Xclang -target-feature -Xclang -prefetchwt1 -Xclang -target-feature -Xclang +prfchw -Xclang -target-feature -Xclang +ptwrite -Xclang -target-feature -Xclang +rdpid -Xclang -target-feature -Xclang -rdpru -Xclang -target-feature -Xclang +rdrnd -Xclang -target-feature -Xclang +rdseed -Xclang -target-feature -Xclang -retpoline -Xclang -target-feature -Xclang -retpoline-external-thunk -Xclang -target-feature -Xclang -retpoline-indirect-branches -Xclang -target-feature -Xclang -retpoline-indirect-calls -Xclang -target-feature -Xclang -rtm -Xclang -target-feature -Xclang +sahf -Xclang -target-feature -Xclang -sbb-dep-breaking -Xclang -target-feature -Xclang -serialize -Xclang -target-feature -Xclang -seses -Xclang -target-feature -Xclang -sgx -Xclang -target-feature -Xclang +sha -Xclang -target-feature -Xclang +shstk -Xclang -target-feature -Xclang +slow-3ops-lea -Xclang -target-feature -Xclang +slow-incdec -Xclang -target-feature -Xclang -slow-lea -Xclang -target-feature -Xclang -slow-pmaddwd -Xclang -target-feature -Xclang -slow-pmulld -Xclang -target-feature -Xclang -slow-shld -Xclang -target-feature -Xclang -slow-two-mem-ops -Xclang -target-feature -Xclang -slow-unaligned-mem-16 -Xclang -target-feature -Xclang -slow-unaligned-mem-32 -Xclang -target-feature -Xclang -soft-float -Xclang -target-feature -Xclang +sse -Xclang -target-feature -Xclang +sse2 -Xclang -target-feature -Xclang +sse3 -Xclang -target-feature -Xclang +sse4.1 -Xclang -target-feature -Xclang +sse4.2 -Xclang -target-feature -Xclang -sse4a -Xclang -target-feature -Xclang -sse-unaligned-mem -Xclang -target-feature -Xclang +ssse3 -Xclang -target-feature -Xclang -tagged-globals -Xclang -target-feature -Xclang -tbm -Xclang -target-feature -Xclang -tsxldtrk -Xclang -target-feature -Xclang -uintr -Xclang -target-feature -Xclang -use-glm-div-sqrt-costs -Xclang -target-feature -Xclang -use-slm-arith-costs -Xclang -target-feature -Xclang +vaes -Xclang -target-feature -Xclang +vpclmulqdq -Xclang -target-feature -Xclang +vzeroupper -Xclang -target-feature -Xclang +waitpkg -Xclang -target-feature -Xclang -wbnoinvd -Xclang -target-feature -Xclang -widekl -Xclang -target-feature -Xclang +x87 -Xclang -target-feature -Xclang -xop -Xclang -target-feature -Xclang +xsave -Xclang -target-feature -Xclang +xsavec -Xclang -target-feature -Xclang +xsaveopt -Xclang -target-feature -Xclang +xsaves -mred-zone -fomit-frame-pointer -fno-stack-protector -DNDEBUG -Os -fPIC -fno-unwind-tables -MD -MV -MF ./lib.o.d -isystem /home/beyley/Silk.NET/build/submodules/vkd3d/include -std=c99 -fPIC -c -o ./lib.o - -ld.lld --error-limit=0 -O3 --gc-sections -s -znow -m elf_x86_64 -shared -o libd3dcompile_vkd3d.so /usr/lib/crti.o -L . -L /usr/lib -dynamic-linker /lib64/ld-linux-x86-64.so.2 -soname libd3dcompile_vkd3d.so ./libvkd3d-shader.a ./lib.o --as-needed -lm -lpthread -lc -ldl -lrt -lutil /usr/lib/crtn.o \ No newline at end of file diff --git a/src/Microsoft/Vkd3dCompiler/build.zig b/src/Microsoft/Vkd3dCompiler/build.zig index ead7409829..0f3c795205 100644 --- a/src/Microsoft/Vkd3dCompiler/build.zig +++ b/src/Microsoft/Vkd3dCompiler/build.zig @@ -12,13 +12,13 @@ pub fn build(b: *std.Build) void { }; const vkd3d_compiler: *std.build.LibExeObjStep = b.addSharedLibrary(shared_lib_options); - vkd3d_compiler.addLibraryPath("."); + vkd3d_compiler.addLibraryPath(.{ .path = "." }); vkd3d_compiler.linkSystemLibraryName("vkd3d-shader"); //Since we statically link with vkd3d-shader, we need to dynamically link against SPIRV-Tools ourselves vkd3d_compiler.linkSystemLibraryName("SPIRV-Tools-shared"); vkd3d_compiler.linkLibC(); vkd3d_compiler.addCSourceFiles(&.{"lib.c"}, &.{ "-std=c99", "-fPIC" }); - vkd3d_compiler.addSystemIncludePath("../../../build/submodules/vkd3d/include/"); + vkd3d_compiler.addIncludePath(.{ .path = "../../../build/submodules/vkd3d/include/" }); b.installArtifact(vkd3d_compiler); } diff --git a/src/Microsoft/Vkd3dCompiler/lib.c b/src/Microsoft/Vkd3dCompiler/lib.c index 8f1e17fe14..cbab7cb2ef 100644 --- a/src/Microsoft/Vkd3dCompiler/lib.c +++ b/src/Microsoft/Vkd3dCompiler/lib.c @@ -7,10 +7,48 @@ #define COM_NO_WINDOWS_H /* Macros for COM interfaces */ -# define interface struct -# define BEGIN_INTERFACE -# define END_INTERFACE -# define MIDL_INTERFACE(x) struct +#define interface struct +#define BEGIN_INTERFACE +#define END_INTERFACE +#define MIDL_INTERFACE(x) struct + +#define D3DCOMPILE_DEBUG 0x00000001 +#define D3DCOMPILE_SKIP_VALIDATION 0x00000002 +#define D3DCOMPILE_SKIP_OPTIMIZATION 0x00000004 +#define D3DCOMPILE_PACK_MATRIX_ROW_MAJOR 0x00000008 +#define D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR 0x00000010 +#define D3DCOMPILE_PARTIAL_PRECISION 0x00000020 +#define D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT 0x00000040 +#define D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT 0x00000080 +#define D3DCOMPILE_NO_PRESHADER 0x00000100 +#define D3DCOMPILE_AVOID_FLOW_CONTROL 0x00000200 +#define D3DCOMPILE_PREFER_FLOW_CONTROL 0x00000400 +#define D3DCOMPILE_ENABLE_STRICTNESS 0x00000800 +#define D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY 0x00001000 +#define D3DCOMPILE_IEEE_STRICTNESS 0x00002000 +#define D3DCOMPILE_OPTIMIZATION_LEVEL0 0x00004000 +#define D3DCOMPILE_OPTIMIZATION_LEVEL1 0x00000000 +#define D3DCOMPILE_OPTIMIZATION_LEVEL2 0x0000c000 +#define D3DCOMPILE_OPTIMIZATION_LEVEL3 0x00008000 +#define D3DCOMPILE_RESERVED16 0x00010000 +#define D3DCOMPILE_RESERVED17 0x00020000 +#define D3DCOMPILE_WARNINGS_ARE_ERRORS 0x00040000 +#define D3DCOMPILE_RESOURCES_MAY_ALIAS 0x00080000 +#define D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES 0x00100000 +#define D3DCOMPILE_ALL_RESOURCES_BOUND 0x00200000 +#define D3DCOMPILE_DEBUG_NAME_FOR_SOURCE 0x00400000 +#define D3DCOMPILE_DEBUG_NAME_FOR_BINARY 0x00800000 + +#define D3DCOMPILE_EFFECT_CHILD_EFFECT 0x00000001 +#define D3DCOMPILE_EFFECT_ALLOW_SLOW_OPS 0x00000002 + +#define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_LATEST 0x00000000 +#define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_0 0x00000010 +#define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_1 0x00000020 + +#define D3DCOMPILE_SECDATA_MERGE_UAV_SLOTS 0x00000001 +#define D3DCOMPILE_SECDATA_PRESERVE_TEMPLATE_SLOTS 0x00000002 +#define D3DCOMPILE_SECDATA_REQUIRE_TEMPLATE_MATCH 0x00000004 #include #include @@ -20,15 +58,40 @@ #define D3DCOMPILE_DEBUG 0x00000001 -extern int32_t D3DCompile2(const void *data, void* data_size, const char *filename, - const D3D_SHADER_MACRO *macros, ID3DInclude *include, const char *entry_point, - const char *profile, UINT flags, UINT effect_flags, UINT secondary_flags, - const void *secondary_data, SIZE_T secondary_data_size, ID3DBlob **shader_blob, - ID3DBlob **messages_blob) +static int open_include(const char *filename, bool local, const char *parent_data, void *context, + struct vkd3d_shader_code *code) +{ + ID3DInclude *iface = context; + unsigned int size = 0; + + if (!iface) + return VKD3D_ERROR; + + memset(code, 0, sizeof(*code)); + if (FAILED(ID3DInclude_Open(iface, local ? D3D_INCLUDE_LOCAL : D3D_INCLUDE_SYSTEM, + filename, parent_data, &code->code, &size))) + return VKD3D_ERROR; + + code->size = size; + return VKD3D_OK; +} + +static void close_include(const struct vkd3d_shader_code *code, void *context) +{ + ID3DInclude *iface = context; + + ID3DInclude_Close(iface, code->code); +} + +extern int32_t D3DCompile2(const void *data, void *data_size, const char *filename, + const D3D_SHADER_MACRO *macros, ID3DInclude *include, const char *entry_point, + const char *profile, UINT flags, UINT effect_flags, UINT secondary_flags, + const void *secondary_data, SIZE_T secondary_data_size, ID3DBlob **shader_blob, + ID3DBlob **messages_blob) { struct vkd3d_shader_preprocess_info preprocess_info; struct vkd3d_shader_hlsl_source_info hlsl_info; - struct vkd3d_shader_compile_option options[2]; + struct vkd3d_shader_compile_option options[3]; struct vkd3d_shader_compile_info compile_info; struct vkd3d_shader_compile_option *option; struct vkd3d_shader_code byte_code; @@ -38,49 +101,49 @@ extern int32_t D3DCompile2(const void *data, void* data_size, const char *filena HRESULT hr; int ret; - static const char * const d3dbc_profiles[] = - { - "fx_2_", + static const char *const d3dbc_profiles[] = + { + "fx_2_", - "ps.1.", - "ps.2.", - "ps.3.", + "ps.1.", + "ps.2.", + "ps.3.", - "ps_1_", - "ps_2_", - "ps_3_", + "ps_1_", + "ps_2_", + "ps_3_", - "vs.1.", - "vs.2.", - "vs.3.", + "vs.1.", + "vs.2.", + "vs.3.", - "vs_1_", - "vs_2_", - "vs_3_", + "vs_1_", + "vs_2_", + "vs_3_", - "tx_1_", - }; + "tx_1_", + }; // TRACE("data %p, data_size %lu, filename %s, macros %p, include %p, entry_point %s, " - // "profile %s, flags %#x, effect_flags %#x, secondary_flags %#x, secondary_data %p, " - // "secondary_data_size %lu, shader_blob %p, messages_blob %p.\n", - // data, data_size, debugstr_a(filename), macros, include, debugstr_a(entry_point), - // debugstr_a(profile), flags, effect_flags, secondary_flags, secondary_data, - // secondary_data_size, shader_blob, messages_blob); - - // if (flags & ~D3DCOMPILE_DEBUG) - // FIXME("Ignoring flags %#x.\n", flags); + // "profile %s, flags %#x, effect_flags %#x, secondary_flags %#x, secondary_data %p, " + // "secondary_data_size %lu, shader_blob %p, messages_blob %p.\n", + // data, data_size, debugstr_a(filename), macros, include, debugstr_a(entry_point), + // debugstr_a(profile), flags, effect_flags, secondary_flags, secondary_data, + // secondary_data_size, shader_blob, messages_blob); + + // if (flags & ~(D3DCOMPILE_DEBUG | D3DCOMPILE_PACK_MATRIX_ROW_MAJOR | D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR)) + // FIXME("Ignoring flags %#x.\n", flags); // if (effect_flags) - // FIXME("Ignoring effect flags %#x.\n", effect_flags); + // FIXME("Ignoring effect flags %#x.\n", effect_flags); // if (secondary_flags) - // FIXME("Ignoring secondary flags %#x.\n", secondary_flags); + // FIXME("Ignoring secondary flags %#x.\n", secondary_flags); if (messages_blob) *messages_blob = NULL; option = &options[0]; option->name = VKD3D_SHADER_COMPILE_OPTION_API_VERSION; - option->value = VKD3D_SHADER_API_VERSION_1_6; + option->value = VKD3D_SHADER_API_VERSION_1_9; compile_info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO; compile_info.next = &preprocess_info; @@ -114,8 +177,8 @@ extern int32_t D3DCompile2(const void *data, void* data_size, const char *filena for (macro = macros; macro->Name; ++macro) ++preprocess_info.macro_count; } - preprocess_info.pfn_open_include = NULL; - preprocess_info.pfn_close_include = NULL; + preprocess_info.pfn_open_include = open_include; + preprocess_info.pfn_close_include = close_include; preprocess_info.include_context = include; hlsl_info.type = VKD3D_SHADER_STRUCTURE_TYPE_HLSL_SOURCE_INFO; @@ -132,6 +195,17 @@ extern int32_t D3DCompile2(const void *data, void* data_size, const char *filena option->value = true; } + if (flags & (D3DCOMPILE_PACK_MATRIX_ROW_MAJOR | D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR)) + { + option = &options[compile_info.option_count++]; + option->name = VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_ORDER; + option->value = 0; + if (flags & D3DCOMPILE_PACK_MATRIX_ROW_MAJOR) + option->value |= VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_ROW_MAJOR; + if (flags & D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR) + option->value |= VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_COLUMN_MAJOR; + } + ret = vkd3d_shader_compile(&compile_info, &byte_code, &messages); if (messages && messages_blob) @@ -140,7 +214,6 @@ extern int32_t D3DCompile2(const void *data, void* data_size, const char *filena { vkd3d_shader_free_messages(messages); vkd3d_shader_free_shader_code(&byte_code); - printf("Failed to create blob for messages.\n"); return hr; } messages = NULL; @@ -151,28 +224,27 @@ extern int32_t D3DCompile2(const void *data, void* data_size, const char *filena { if (FAILED(hr = vkd3d_blob_create((void *)byte_code.code, byte_code.size, shader_blob))) { - printf("Failed to create blob for bytecode.\n"); vkd3d_shader_free_shader_code(&byte_code); return hr; } } - printf("got to end?.\n"); return hresult_from_vkd3d_result(ret); } -extern int32_t D3DCompile(void* data, - void* data_size, - void* filename, - const void* macros, - void* include, - void* entrypoint, - void* profile, - int32_t flags, - int32_t effect_flags, - void* shader, - void* error_messages) { +extern int32_t D3DCompile(void *data, + void *data_size, + void *filename, + const void *macros, + void *include, + void *entrypoint, + void *profile, + int32_t flags, + int32_t effect_flags, + void *shader, + void *error_messages) +{ return D3DCompile2(data, data_size, filename, macros, include, entrypoint, profile, flags, - effect_flags, 0, NULL, 0, shader, error_messages); + effect_flags, 0, NULL, 0, shader, error_messages); } \ No newline at end of file diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-arm64/native/libspirv-cross.so b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-arm64/native/libspirv-cross.so index 08fdac4206..b980d4e7d6 100755 Binary files a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-arm64/native/libspirv-cross.so and b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-arm64/native/libspirv-cross.so differ diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-x64/native/libspirv-cross.so b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-x64/native/libspirv-cross.so index df71bfd4c9..db6dea1aed 100755 Binary files a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-x64/native/libspirv-cross.so and b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-x64/native/libspirv-cross.so differ diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-x86/native/libspirv-cross.so b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-x86/native/libspirv-cross.so index 653e2b99b9..52ef263314 100755 Binary files a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-x86/native/libspirv-cross.so and b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/linux-x86/native/libspirv-cross.so differ diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/osx-arm64/native/libspirv-cross.dylib b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/osx-arm64/native/libspirv-cross.dylib index 3bffe61262..6df8a75882 100755 Binary files a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/osx-arm64/native/libspirv-cross.dylib and b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/osx-arm64/native/libspirv-cross.dylib differ diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/osx-x64/native/libspirv-cross.dylib b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/osx-x64/native/libspirv-cross.dylib index 5e17fd58bf..3d3c66762d 100755 Binary files a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/osx-x64/native/libspirv-cross.dylib and b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/osx-x64/native/libspirv-cross.dylib differ diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-arm64/native/spirv-cross.dll b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-arm64/native/spirv-cross.dll index 39f497b436..6dd9a01e56 100755 Binary files a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-arm64/native/spirv-cross.dll and b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-arm64/native/spirv-cross.dll differ diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-x64/native/spirv-cross.dll b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-x64/native/spirv-cross.dll index 036151a4f5..c83ce7d9cb 100755 Binary files a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-x64/native/spirv-cross.dll and b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-x64/native/spirv-cross.dll differ diff --git a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-x86/native/spirv-cross.dll b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-x86/native/spirv-cross.dll index d323f6cdd7..a4113d92d8 100755 Binary files a/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-x86/native/spirv-cross.dll and b/src/Native/Silk.NET.SPIRV.Cross.Native/runtimes/win-x86/native/spirv-cross.dll differ diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-arm64/native/libspirv-reflect.so b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-arm64/native/libspirv-reflect.so index 567b47b810..3727b4477c 100755 Binary files a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-arm64/native/libspirv-reflect.so and b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-arm64/native/libspirv-reflect.so differ diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-x64/native/libspirv-reflect.so b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-x64/native/libspirv-reflect.so index 6d24857209..dc6d19e16f 100755 Binary files a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-x64/native/libspirv-reflect.so and b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-x64/native/libspirv-reflect.so differ diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-x86/native/libspirv-reflect.so b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-x86/native/libspirv-reflect.so index 8946a629ab..5bcbc36067 100755 Binary files a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-x86/native/libspirv-reflect.so and b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/linux-x86/native/libspirv-reflect.so differ diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/osx-arm64/native/libspirv-reflect.dylib b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/osx-arm64/native/libspirv-reflect.dylib index d48d0e1f25..895fe28c69 100755 Binary files a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/osx-arm64/native/libspirv-reflect.dylib and b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/osx-arm64/native/libspirv-reflect.dylib differ diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/osx-x64/native/libspirv-reflect.dylib b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/osx-x64/native/libspirv-reflect.dylib index 7853b99f36..15d4cd7c2d 100755 Binary files a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/osx-x64/native/libspirv-reflect.dylib and b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/osx-x64/native/libspirv-reflect.dylib differ diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-arm64/native/spirv-reflect.dll b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-arm64/native/spirv-reflect.dll index bcd4af65af..32fd42eff2 100755 Binary files a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-arm64/native/spirv-reflect.dll and b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-arm64/native/spirv-reflect.dll differ diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-x64/native/spirv-reflect.dll b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-x64/native/spirv-reflect.dll index d8a3c75d6c..60a4b682be 100755 Binary files a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-x64/native/spirv-reflect.dll and b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-x64/native/spirv-reflect.dll differ diff --git a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-x86/native/spirv-reflect.dll b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-x86/native/spirv-reflect.dll index 3de017fd0b..55bbe80b43 100755 Binary files a/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-x86/native/spirv-reflect.dll and b/src/Native/Silk.NET.SPIRV.Reflect.Native/runtimes/win-x86/native/spirv-reflect.dll differ diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-arm64/native/libshaderc_shared.so b/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-arm64/native/libshaderc_shared.so index 1b1e57902f..d5a03d7f9a 100755 Binary files a/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-arm64/native/libshaderc_shared.so and b/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-arm64/native/libshaderc_shared.so differ diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-x64/native/libshaderc_shared.so b/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-x64/native/libshaderc_shared.so index 532b5384c6..b4da276962 100755 Binary files a/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-x64/native/libshaderc_shared.so and b/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-x64/native/libshaderc_shared.so differ diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-x86/native/libshaderc_shared.so b/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-x86/native/libshaderc_shared.so index 23df88f501..0ef40d34be 100755 Binary files a/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-x86/native/libshaderc_shared.so and b/src/Native/Silk.NET.Shaderc.Native/runtimes/linux-x86/native/libshaderc_shared.so differ diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/osx-arm64/native/libshaderc_shared.dylib b/src/Native/Silk.NET.Shaderc.Native/runtimes/osx-arm64/native/libshaderc_shared.dylib index a9798b002f..4567a1a9c8 100755 Binary files a/src/Native/Silk.NET.Shaderc.Native/runtimes/osx-arm64/native/libshaderc_shared.dylib and b/src/Native/Silk.NET.Shaderc.Native/runtimes/osx-arm64/native/libshaderc_shared.dylib differ diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/osx-x64/native/libshaderc_shared.dylib b/src/Native/Silk.NET.Shaderc.Native/runtimes/osx-x64/native/libshaderc_shared.dylib index 1b375f2548..6447bcb7c6 100755 Binary files a/src/Native/Silk.NET.Shaderc.Native/runtimes/osx-x64/native/libshaderc_shared.dylib and b/src/Native/Silk.NET.Shaderc.Native/runtimes/osx-x64/native/libshaderc_shared.dylib differ diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/win-arm64/native/shaderc_shared.dll b/src/Native/Silk.NET.Shaderc.Native/runtimes/win-arm64/native/shaderc_shared.dll index 3b6acb0cd1..714874e520 100755 Binary files a/src/Native/Silk.NET.Shaderc.Native/runtimes/win-arm64/native/shaderc_shared.dll and b/src/Native/Silk.NET.Shaderc.Native/runtimes/win-arm64/native/shaderc_shared.dll differ diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/win-x64/native/shaderc_shared.dll b/src/Native/Silk.NET.Shaderc.Native/runtimes/win-x64/native/shaderc_shared.dll index ee6b33c3d1..f408ebbf32 100755 Binary files a/src/Native/Silk.NET.Shaderc.Native/runtimes/win-x64/native/shaderc_shared.dll and b/src/Native/Silk.NET.Shaderc.Native/runtimes/win-x64/native/shaderc_shared.dll differ diff --git a/src/Native/Silk.NET.Shaderc.Native/runtimes/win-x86/native/shaderc_shared.dll b/src/Native/Silk.NET.Shaderc.Native/runtimes/win-x86/native/shaderc_shared.dll index 02e6d5d949..203ec35d8d 100755 Binary files a/src/Native/Silk.NET.Shaderc.Native/runtimes/win-x86/native/shaderc_shared.dll and b/src/Native/Silk.NET.Shaderc.Native/runtimes/win-x86/native/shaderc_shared.dll differ diff --git a/src/Native/Silk.NET.Vkd3d.Native/runtimes/linux-x64/native/libSPIRV-Tools-shared.so b/src/Native/Silk.NET.Vkd3d.Native/runtimes/linux-x64/native/libSPIRV-Tools-shared.so index 78d65948f3..ac4cadae59 100755 Binary files a/src/Native/Silk.NET.Vkd3d.Native/runtimes/linux-x64/native/libSPIRV-Tools-shared.so and b/src/Native/Silk.NET.Vkd3d.Native/runtimes/linux-x64/native/libSPIRV-Tools-shared.so differ diff --git a/src/Native/Silk.NET.Vkd3d.Native/runtimes/linux-x64/native/libd3dcompile_vkd3d.so b/src/Native/Silk.NET.Vkd3d.Native/runtimes/linux-x64/native/libd3dcompile_vkd3d.so index 8f03b53b82..28551ea395 100755 Binary files a/src/Native/Silk.NET.Vkd3d.Native/runtimes/linux-x64/native/libd3dcompile_vkd3d.so and b/src/Native/Silk.NET.Vkd3d.Native/runtimes/linux-x64/native/libd3dcompile_vkd3d.so differ