mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-10-06 00:02:44 +02:00
Updates sirit to our fork's latest version w/ SPIRV Headers included (end goal is to remove spirv-headers entirely, as spirv-tools-ci should include them inline as well) Adds a sirit CI on our fork for all platforms (saves a bit of compile time) My CI spec has changed a little bit, and now there is no need for an additional CMake file after the initial CMakeLists.txt (since targets are now global imported). Plus, UNIX amd64 now has the amd64 suffix like aarch64 and windows Updates SDL2 to 2.32.10 and OpenSSL to 3.6.0 Finally, on Solaris all CI packages (sans FFmpeg) are now built with OmniOS, which should in theory be fully compatible with OpenIndiana (our recommended Sun-based target) but obviously will need testing Need testing: - [ ] Make sure I didn't nuke shader emission - [ ] Make sure FreeBSD, OpenBSD, and OpenIndiana work fine with bundled sirit (check linking especially) - [ ] Make sure SDL2, OpenSSL work with OpenIndiana now - [ ] SDL2 on all platforms (input, etc) Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2655
273 lines
12 KiB
CMake
273 lines
12 KiB
CMake
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
add_library(shader_recompiler STATIC
|
|
backend/bindings.h
|
|
backend/glasm/emit_glasm.cpp
|
|
backend/glasm/emit_glasm.h
|
|
backend/glasm/emit_glasm_barriers.cpp
|
|
backend/glasm/emit_glasm_bitwise_conversion.cpp
|
|
backend/glasm/emit_glasm_composite.cpp
|
|
backend/glasm/emit_glasm_context_get_set.cpp
|
|
backend/glasm/emit_glasm_control_flow.cpp
|
|
backend/glasm/emit_glasm_convert.cpp
|
|
backend/glasm/emit_glasm_floating_point.cpp
|
|
backend/glasm/emit_glasm_image.cpp
|
|
backend/glasm/emit_glasm_instructions.h
|
|
backend/glasm/emit_glasm_integer.cpp
|
|
backend/glasm/emit_glasm_logical.cpp
|
|
backend/glasm/emit_glasm_memory.cpp
|
|
backend/glasm/emit_glasm_not_implemented.cpp
|
|
backend/glasm/emit_glasm_select.cpp
|
|
backend/glasm/emit_glasm_shared_memory.cpp
|
|
backend/glasm/emit_glasm_special.cpp
|
|
backend/glasm/emit_glasm_undefined.cpp
|
|
backend/glasm/emit_glasm_warp.cpp
|
|
backend/glasm/glasm_emit_context.cpp
|
|
backend/glasm/glasm_emit_context.h
|
|
backend/glasm/reg_alloc.cpp
|
|
backend/glasm/reg_alloc.h
|
|
backend/glsl/emit_glsl.cpp
|
|
backend/glsl/emit_glsl.h
|
|
backend/glsl/emit_glsl_atomic.cpp
|
|
backend/glsl/emit_glsl_barriers.cpp
|
|
backend/glsl/emit_glsl_bitwise_conversion.cpp
|
|
backend/glsl/emit_glsl_composite.cpp
|
|
backend/glsl/emit_glsl_context_get_set.cpp
|
|
backend/glsl/emit_glsl_control_flow.cpp
|
|
backend/glsl/emit_glsl_convert.cpp
|
|
backend/glsl/emit_glsl_floating_point.cpp
|
|
backend/glsl/emit_glsl_image.cpp
|
|
backend/glsl/emit_glsl_instructions.h
|
|
backend/glsl/emit_glsl_integer.cpp
|
|
backend/glsl/emit_glsl_logical.cpp
|
|
backend/glsl/emit_glsl_memory.cpp
|
|
backend/glsl/emit_glsl_not_implemented.cpp
|
|
backend/glsl/emit_glsl_select.cpp
|
|
backend/glsl/emit_glsl_shared_memory.cpp
|
|
backend/glsl/emit_glsl_special.cpp
|
|
backend/glsl/emit_glsl_undefined.cpp
|
|
backend/glsl/emit_glsl_warp.cpp
|
|
backend/glsl/glsl_emit_context.cpp
|
|
backend/glsl/glsl_emit_context.h
|
|
backend/glsl/var_alloc.cpp
|
|
backend/glsl/var_alloc.h
|
|
backend/spirv/emit_spirv.cpp
|
|
backend/spirv/emit_spirv.h
|
|
backend/spirv/emit_spirv_atomic.cpp
|
|
backend/spirv/emit_spirv_barriers.cpp
|
|
backend/spirv/emit_spirv_bitwise_conversion.cpp
|
|
backend/spirv/emit_spirv_composite.cpp
|
|
backend/spirv/emit_spirv_context_get_set.cpp
|
|
backend/spirv/emit_spirv_control_flow.cpp
|
|
backend/spirv/emit_spirv_convert.cpp
|
|
backend/spirv/emit_spirv_floating_point.cpp
|
|
backend/spirv/emit_spirv_image.cpp
|
|
backend/spirv/emit_spirv_image_atomic.cpp
|
|
backend/spirv/emit_spirv_instructions.h
|
|
backend/spirv/emit_spirv_integer.cpp
|
|
backend/spirv/emit_spirv_logical.cpp
|
|
backend/spirv/emit_spirv_memory.cpp
|
|
backend/spirv/emit_spirv_select.cpp
|
|
backend/spirv/emit_spirv_shared_memory.cpp
|
|
backend/spirv/emit_spirv_special.cpp
|
|
backend/spirv/emit_spirv_undefined.cpp
|
|
backend/spirv/emit_spirv_warp.cpp
|
|
backend/spirv/spirv_emit_context.cpp
|
|
backend/spirv/spirv_emit_context.h
|
|
environment.h
|
|
exception.h
|
|
frontend/ir/abstract_syntax_list.h
|
|
frontend/ir/attribute.cpp
|
|
frontend/ir/attribute.h
|
|
frontend/ir/basic_block.cpp
|
|
frontend/ir/basic_block.h
|
|
frontend/ir/breadth_first_search.h
|
|
frontend/ir/condition.cpp
|
|
frontend/ir/condition.h
|
|
frontend/ir/flow_test.cpp
|
|
frontend/ir/flow_test.h
|
|
frontend/ir/ir_emitter.cpp
|
|
frontend/ir/ir_emitter.h
|
|
frontend/ir/microinstruction.cpp
|
|
frontend/ir/modifiers.h
|
|
frontend/ir/opcodes.cpp
|
|
frontend/ir/opcodes.h
|
|
frontend/ir/opcodes.inc
|
|
frontend/ir/patch.cpp
|
|
frontend/ir/patch.h
|
|
frontend/ir/post_order.cpp
|
|
frontend/ir/post_order.h
|
|
frontend/ir/pred.h
|
|
frontend/ir/program.cpp
|
|
frontend/ir/program.h
|
|
frontend/ir/reg.h
|
|
frontend/ir/type.cpp
|
|
frontend/ir/type.h
|
|
frontend/ir/value.cpp
|
|
frontend/ir/value.h
|
|
frontend/maxwell/control_flow.cpp
|
|
frontend/maxwell/control_flow.h
|
|
frontend/maxwell/decode.cpp
|
|
frontend/maxwell/decode.h
|
|
frontend/maxwell/indirect_branch_table_track.cpp
|
|
frontend/maxwell/indirect_branch_table_track.h
|
|
frontend/maxwell/instruction.h
|
|
frontend/maxwell/location.h
|
|
frontend/maxwell/maxwell.inc
|
|
frontend/maxwell/opcodes.cpp
|
|
frontend/maxwell/opcodes.h
|
|
frontend/maxwell/structured_control_flow.cpp
|
|
frontend/maxwell/structured_control_flow.h
|
|
frontend/maxwell/translate/impl/atomic_operations_global_memory.cpp
|
|
frontend/maxwell/translate/impl/atomic_operations_shared_memory.cpp
|
|
frontend/maxwell/translate/impl/attribute_memory_to_physical.cpp
|
|
frontend/maxwell/translate/impl/barrier_operations.cpp
|
|
frontend/maxwell/translate/impl/bitfield_extract.cpp
|
|
frontend/maxwell/translate/impl/bitfield_insert.cpp
|
|
frontend/maxwell/translate/impl/branch_indirect.cpp
|
|
frontend/maxwell/translate/impl/common_encoding.h
|
|
frontend/maxwell/translate/impl/common_funcs.cpp
|
|
frontend/maxwell/translate/impl/common_funcs.h
|
|
frontend/maxwell/translate/impl/condition_code_set.cpp
|
|
frontend/maxwell/translate/impl/double_add.cpp
|
|
frontend/maxwell/translate/impl/double_compare_and_set.cpp
|
|
frontend/maxwell/translate/impl/double_fused_multiply_add.cpp
|
|
frontend/maxwell/translate/impl/double_min_max.cpp
|
|
frontend/maxwell/translate/impl/double_multiply.cpp
|
|
frontend/maxwell/translate/impl/double_set_predicate.cpp
|
|
frontend/maxwell/translate/impl/exit_program.cpp
|
|
frontend/maxwell/translate/impl/find_leading_one.cpp
|
|
frontend/maxwell/translate/impl/floating_point_add.cpp
|
|
frontend/maxwell/translate/impl/floating_point_compare.cpp
|
|
frontend/maxwell/translate/impl/floating_point_compare_and_set.cpp
|
|
frontend/maxwell/translate/impl/floating_point_conversion_floating_point.cpp
|
|
frontend/maxwell/translate/impl/floating_point_conversion_integer.cpp
|
|
frontend/maxwell/translate/impl/floating_point_fused_multiply_add.cpp
|
|
frontend/maxwell/translate/impl/floating_point_min_max.cpp
|
|
frontend/maxwell/translate/impl/floating_point_multi_function.cpp
|
|
frontend/maxwell/translate/impl/floating_point_multiply.cpp
|
|
frontend/maxwell/translate/impl/floating_point_range_reduction.cpp
|
|
frontend/maxwell/translate/impl/floating_point_set_predicate.cpp
|
|
frontend/maxwell/translate/impl/floating_point_swizzled_add.cpp
|
|
frontend/maxwell/translate/impl/half_floating_point_add.cpp
|
|
frontend/maxwell/translate/impl/half_floating_point_fused_multiply_add.cpp
|
|
frontend/maxwell/translate/impl/half_floating_point_helper.cpp
|
|
frontend/maxwell/translate/impl/half_floating_point_helper.h
|
|
frontend/maxwell/translate/impl/half_floating_point_multiply.cpp
|
|
frontend/maxwell/translate/impl/half_floating_point_set.cpp
|
|
frontend/maxwell/translate/impl/half_floating_point_set_predicate.cpp
|
|
frontend/maxwell/translate/impl/impl.cpp
|
|
frontend/maxwell/translate/impl/impl.h
|
|
frontend/maxwell/translate/impl/integer_add.cpp
|
|
frontend/maxwell/translate/impl/integer_add_three_input.cpp
|
|
frontend/maxwell/translate/impl/integer_compare.cpp
|
|
frontend/maxwell/translate/impl/integer_compare_and_set.cpp
|
|
frontend/maxwell/translate/impl/integer_floating_point_conversion.cpp
|
|
frontend/maxwell/translate/impl/integer_funnel_shift.cpp
|
|
frontend/maxwell/translate/impl/integer_minimum_maximum.cpp
|
|
frontend/maxwell/translate/impl/integer_popcount.cpp
|
|
frontend/maxwell/translate/impl/integer_scaled_add.cpp
|
|
frontend/maxwell/translate/impl/integer_set_predicate.cpp
|
|
frontend/maxwell/translate/impl/integer_shift_left.cpp
|
|
frontend/maxwell/translate/impl/integer_shift_right.cpp
|
|
frontend/maxwell/translate/impl/integer_short_multiply_add.cpp
|
|
frontend/maxwell/translate/impl/integer_to_integer_conversion.cpp
|
|
frontend/maxwell/translate/impl/internal_stage_buffer_entry_read.cpp
|
|
frontend/maxwell/translate/impl/load_constant.cpp
|
|
frontend/maxwell/translate/impl/load_constant.h
|
|
frontend/maxwell/translate/impl/load_effective_address.cpp
|
|
frontend/maxwell/translate/impl/load_store_attribute.cpp
|
|
frontend/maxwell/translate/impl/load_store_local_shared.cpp
|
|
frontend/maxwell/translate/impl/load_store_memory.cpp
|
|
frontend/maxwell/translate/impl/logic_operation.cpp
|
|
frontend/maxwell/translate/impl/logic_operation_three_input.cpp
|
|
frontend/maxwell/translate/impl/move_predicate_to_register.cpp
|
|
frontend/maxwell/translate/impl/move_register.cpp
|
|
frontend/maxwell/translate/impl/move_register_to_predicate.cpp
|
|
frontend/maxwell/translate/impl/move_special_register.cpp
|
|
frontend/maxwell/translate/impl/not_implemented.cpp
|
|
frontend/maxwell/translate/impl/output_geometry.cpp
|
|
frontend/maxwell/translate/impl/pixel_load.cpp
|
|
frontend/maxwell/translate/impl/predicate_set_predicate.cpp
|
|
frontend/maxwell/translate/impl/predicate_set_register.cpp
|
|
frontend/maxwell/translate/impl/select_source_with_predicate.cpp
|
|
frontend/maxwell/translate/impl/surface_atomic_operations.cpp
|
|
frontend/maxwell/translate/impl/surface_load_store.cpp
|
|
frontend/maxwell/translate/impl/texture_fetch.cpp
|
|
frontend/maxwell/translate/impl/texture_fetch_swizzled.cpp
|
|
frontend/maxwell/translate/impl/texture_gather.cpp
|
|
frontend/maxwell/translate/impl/texture_gather_swizzled.cpp
|
|
frontend/maxwell/translate/impl/texture_gradient.cpp
|
|
frontend/maxwell/translate/impl/texture_load.cpp
|
|
frontend/maxwell/translate/impl/texture_load_swizzled.cpp
|
|
frontend/maxwell/translate/impl/texture_mipmap_level.cpp
|
|
frontend/maxwell/translate/impl/texture_query.cpp
|
|
frontend/maxwell/translate/impl/video_helper.cpp
|
|
frontend/maxwell/translate/impl/video_helper.h
|
|
frontend/maxwell/translate/impl/video_minimum_maximum.cpp
|
|
frontend/maxwell/translate/impl/video_multiply_add.cpp
|
|
frontend/maxwell/translate/impl/video_set_predicate.cpp
|
|
frontend/maxwell/translate/impl/vote.cpp
|
|
frontend/maxwell/translate/impl/warp_shuffle.cpp
|
|
frontend/maxwell/translate/translate.cpp
|
|
frontend/maxwell/translate/translate.h
|
|
frontend/maxwell/translate_program.cpp
|
|
frontend/maxwell/translate_program.h
|
|
host_translate_info.h
|
|
ir_opt/collect_shader_info_pass.cpp
|
|
ir_opt/conditional_barrier_pass.cpp
|
|
ir_opt/constant_propagation_pass.cpp
|
|
ir_opt/dead_code_elimination_pass.cpp
|
|
ir_opt/dual_vertex_pass.cpp
|
|
ir_opt/global_memory_to_storage_buffer_pass.cpp
|
|
ir_opt/identity_removal_pass.cpp
|
|
ir_opt/layer_pass.cpp
|
|
ir_opt/lower_fp16_to_fp32.cpp
|
|
ir_opt/lower_fp64_to_fp32.cpp
|
|
ir_opt/lower_int64_to_int32.cpp
|
|
ir_opt/passes.h
|
|
ir_opt/position_pass.cpp
|
|
ir_opt/rescaling_pass.cpp
|
|
ir_opt/ssa_rewrite_pass.cpp
|
|
ir_opt/texture_pass.cpp
|
|
ir_opt/vendor_workaround_pass.cpp
|
|
ir_opt/verification_pass.cpp
|
|
object_pool.h
|
|
precompiled_headers.h
|
|
profile.h
|
|
program_header.h
|
|
runtime_info.h
|
|
shader_info.h
|
|
varying_state.h
|
|
|
|
)
|
|
|
|
target_link_libraries(shader_recompiler PUBLIC common fmt::fmt sirit::sirit SPIRV-Tools::SPIRV-Tools)
|
|
|
|
if (MSVC)
|
|
target_compile_options(shader_recompiler PRIVATE
|
|
/we4242 # 'identifier': conversion from 'type1' to 'type2', possible loss of data
|
|
/we4254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data
|
|
/we4800 # Implicit conversion from 'type' to bool. Possible information loss
|
|
)
|
|
else()
|
|
target_compile_options(shader_recompiler PRIVATE
|
|
-Werror=conversion
|
|
|
|
# Bracket depth determines maximum size of a fold expression in Clang since 9c9974c3ccb6.
|
|
# And this in turns limits the size of a std::array.
|
|
$<$<CXX_COMPILER_ID:Clang>:-fbracket-depth=1024>
|
|
$<$<CXX_COMPILER_ID:AppleClang>:-fbracket-depth=1024>
|
|
)
|
|
endif()
|
|
|
|
create_target_directory_groups(shader_recompiler)
|
|
|
|
if (YUZU_USE_PRECOMPILED_HEADERS)
|
|
target_precompile_headers(shader_recompiler PRIVATE precompiled_headers.h)
|
|
endif()
|