summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-05-23 03:47:24 -0300
committerGravatar ameerj2021-07-22 21:51:29 -0400
commita46d91b1efa7136b5a4304ae1f13183b8a579b49 (patch)
treed1238c67d3417c00745de67abcd615d04e5434a1
parentshader: Remove shader util (diff)
downloadyuzu-a46d91b1efa7136b5a4304ae1f13183b8a579b49.tar.gz
yuzu-a46d91b1efa7136b5a4304ae1f13183b8a579b49.tar.xz
yuzu-a46d91b1efa7136b5a4304ae1f13183b8a579b49.zip
shader: Add OpenGL shader profile options
-rw-r--r--src/shader_recompiler/profile.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/shader_recompiler/profile.h b/src/shader_recompiler/profile.h
index 08242184f..12699511a 100644
--- a/src/shader_recompiler/profile.h
+++ b/src/shader_recompiler/profile.h
@@ -61,6 +61,9 @@ struct Profile {
61 u32 supported_spirv{0x00010000}; 61 u32 supported_spirv{0x00010000};
62 62
63 bool unified_descriptor_binding{}; 63 bool unified_descriptor_binding{};
64 bool support_descriptor_aliasing{};
65 bool support_int8{};
66 bool support_int16{};
64 bool support_vertex_instance_id{}; 67 bool support_vertex_instance_id{};
65 bool support_float_controls{}; 68 bool support_float_controls{};
66 bool support_separate_denorm_behavior{}; 69 bool support_separate_denorm_behavior{};
@@ -77,11 +80,19 @@ struct Profile {
77 bool support_viewport_index_layer_non_geometry{}; 80 bool support_viewport_index_layer_non_geometry{};
78 bool support_viewport_mask{}; 81 bool support_viewport_mask{};
79 bool support_typeless_image_loads{}; 82 bool support_typeless_image_loads{};
83 bool support_demote_to_helper_invocation{};
80 bool warp_size_potentially_larger_than_guest{}; 84 bool warp_size_potentially_larger_than_guest{};
81 bool support_int64_atomics{}; 85 bool support_int64_atomics{};
86 bool lower_left_origin_mode{};
82 87
83 // FClamp is broken and OpFMax + OpFMin should be used instead 88 // FClamp is broken and OpFMax + OpFMin should be used instead
84 bool has_broken_spirv_clamp{}; 89 bool has_broken_spirv_clamp{};
90 // Offset image operands with an unsigned type do not work
91 bool has_broken_unsigned_image_offsets{};
92 // Signed instructions with unsigned data types are misinterpreted
93 bool has_broken_signed_operations{};
94 // Ignores SPIR-V ordered vs unordered using GLSL semantics
95 bool ignore_nan_fp_comparisons{};
85 96
86 std::array<AttributeType, 32> generic_input_types{}; 97 std::array<AttributeType, 32> generic_input_types{};
87 bool convert_depth_mode{}; 98 bool convert_depth_mode{};