// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include "common/types.h" namespace Shader { struct Profile { u64 max_ubo_size{}; u32 max_viewport_width{}; u32 max_viewport_height{}; u32 max_shared_memory_size{}; u32 supported_spirv{0x00010000}; u32 subgroup_size{}; bool support_int8{}; bool support_int16{}; bool support_int64{}; bool support_float16{}; bool support_float64{}; bool support_fp32_denorm_preserve{}; bool support_fp32_denorm_flush{}; bool support_fp32_round_to_zero{}; bool support_legacy_vertex_attributes{}; bool supports_image_load_store_lod{}; bool supports_native_cube_calc{}; bool supports_trinary_minmax{}; bool supports_robust_buffer_access{}; bool supports_buffer_fp32_atomic_min_max{}; bool supports_image_fp32_atomic_min_max{}; bool supports_buffer_int64_atomics{}; bool supports_shared_int64_atomics{}; bool supports_workgroup_explicit_memory_layout{}; bool supports_amd_shader_explicit_vertex_parameter{}; bool supports_fragment_shader_barycentric{}; bool has_incomplete_fragment_shader_barycentric{}; bool has_broken_spirv_clamp{}; bool lower_left_origin_mode{}; bool needs_manual_interpolation{}; bool needs_lds_barriers{}; bool needs_buffer_offsets{}; bool needs_unorm_fixup{}; bool _pad0{}; }; } // namespace Shader