1c349dbc7Sjsg /* 2c349dbc7Sjsg * Copyright 2016 Advanced Micro Devices, Inc. 3c349dbc7Sjsg * 4c349dbc7Sjsg * Permission is hereby granted, free of charge, to any person obtaining a 5c349dbc7Sjsg * copy of this software and associated documentation files (the "Software"), 6c349dbc7Sjsg * to deal in the Software without restriction, including without limitation 7c349dbc7Sjsg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8c349dbc7Sjsg * and/or sell copies of the Software, and to permit persons to whom the 9c349dbc7Sjsg * Software is furnished to do so, subject to the following conditions: 10c349dbc7Sjsg * 11c349dbc7Sjsg * The above copyright notice and this permission notice shall be included in 12c349dbc7Sjsg * all copies or substantial portions of the Software. 13c349dbc7Sjsg * 14c349dbc7Sjsg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15c349dbc7Sjsg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16c349dbc7Sjsg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17c349dbc7Sjsg * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 18c349dbc7Sjsg * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19c349dbc7Sjsg * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20c349dbc7Sjsg * OTHER DEALINGS IN THE SOFTWARE. 21c349dbc7Sjsg * 22c349dbc7Sjsg * Authors: AMD 23c349dbc7Sjsg * 24c349dbc7Sjsg */ 25c349dbc7Sjsg 26c349dbc7Sjsg #ifndef MOD_SHARED_H_ 27c349dbc7Sjsg #define MOD_SHARED_H_ 28c349dbc7Sjsg 29c349dbc7Sjsg enum color_transfer_func { 30c349dbc7Sjsg TRANSFER_FUNC_UNKNOWN, 31c349dbc7Sjsg TRANSFER_FUNC_SRGB, 32c349dbc7Sjsg TRANSFER_FUNC_BT709, 33c349dbc7Sjsg TRANSFER_FUNC_PQ2084, 34c349dbc7Sjsg TRANSFER_FUNC_PQ2084_INTERIM, 35c349dbc7Sjsg TRANSFER_FUNC_LINEAR_0_1, 36c349dbc7Sjsg TRANSFER_FUNC_LINEAR_0_125, 37c349dbc7Sjsg TRANSFER_FUNC_GAMMA_22, 38c349dbc7Sjsg TRANSFER_FUNC_GAMMA_26 39c349dbc7Sjsg }; 40c349dbc7Sjsg 41c349dbc7Sjsg enum vrr_packet_type { 42c349dbc7Sjsg PACKET_TYPE_VRR, 43*ad8b1aafSjsg PACKET_TYPE_FS_V1, 44*ad8b1aafSjsg PACKET_TYPE_FS_V2, 45*ad8b1aafSjsg PACKET_TYPE_FS_V3, 46c349dbc7Sjsg PACKET_TYPE_VTEM 47c349dbc7Sjsg }; 48c349dbc7Sjsg 49c349dbc7Sjsg union lut3d_control_flags { 50c349dbc7Sjsg unsigned int raw; 51c349dbc7Sjsg struct { 52c349dbc7Sjsg unsigned int do_chroma_scale :1; 53c349dbc7Sjsg unsigned int spec_version :3; 54c349dbc7Sjsg unsigned int use_zero_display_black :1; 55c349dbc7Sjsg unsigned int use_zero_source_black :1; 56c349dbc7Sjsg unsigned int force_display_black :6; 57c349dbc7Sjsg unsigned int apply_display_gamma :1; 58c349dbc7Sjsg unsigned int exp_shaper_max :6; 59c349dbc7Sjsg unsigned int unity_3dlut :1; 60c349dbc7Sjsg unsigned int bypass_3dlut :1; 61c349dbc7Sjsg unsigned int use_3dlut :1; 62c349dbc7Sjsg unsigned int less_than_dcip3 :1; 63c349dbc7Sjsg unsigned int override_lum :1; 64c349dbc7Sjsg unsigned int use_gamut_map_lib :1; 65c349dbc7Sjsg unsigned int chromatic_adaptation_src :1; 66c349dbc7Sjsg unsigned int chromatic_adaptation_dst :1; 67c349dbc7Sjsg unsigned int do_blender_lut_degamma :1; 68c349dbc7Sjsg unsigned int reseved :4; 69c349dbc7Sjsg } bits; 70c349dbc7Sjsg }; 71c349dbc7Sjsg 72c349dbc7Sjsg enum tm_show_option_internal { 73c349dbc7Sjsg tm_show_option_internal_single_file = 0,/*flags2 not in use*/ 74c349dbc7Sjsg tm_show_option_internal_duplicate_file, /*use flags2*/ 75c349dbc7Sjsg tm_show_option_internal_duplicate_sidebyside/*use flags2*/ 76c349dbc7Sjsg }; 77c349dbc7Sjsg 78c349dbc7Sjsg enum lut3d_control_gamut_map { 79c349dbc7Sjsg lut3d_control_gamut_map_none = 0, 80c349dbc7Sjsg lut3d_control_gamut_map_tonemap, 81c349dbc7Sjsg lut3d_control_gamut_map_chto, 82c349dbc7Sjsg lut3d_control_gamut_map_chso, 83c349dbc7Sjsg lut3d_control_gamut_map_chci 84c349dbc7Sjsg }; 85c349dbc7Sjsg 86c349dbc7Sjsg enum lut3d_control_rotation_mode { 87c349dbc7Sjsg lut3d_control_rotation_mode_none = 0, 88c349dbc7Sjsg lut3d_control_rotation_mode_hue, 89c349dbc7Sjsg lut3d_control_rotation_mode_cc, 90c349dbc7Sjsg lut3d_control_rotation_mode_hue_cc 91c349dbc7Sjsg }; 92c349dbc7Sjsg 93c349dbc7Sjsg struct lut3d_settings { 94c349dbc7Sjsg unsigned char version; 95c349dbc7Sjsg union lut3d_control_flags flags; 96c349dbc7Sjsg union lut3d_control_flags flags2; 97c349dbc7Sjsg enum tm_show_option_internal option; 98c349dbc7Sjsg unsigned int min_lum;/*multiplied by 100*/ 99c349dbc7Sjsg unsigned int max_lum; 100c349dbc7Sjsg unsigned int min_lum2; 101c349dbc7Sjsg unsigned int max_lum2; 102c349dbc7Sjsg enum lut3d_control_gamut_map map; 103c349dbc7Sjsg enum lut3d_control_rotation_mode rotation; 104c349dbc7Sjsg enum lut3d_control_gamut_map map2; 105c349dbc7Sjsg enum lut3d_control_rotation_mode rotation2; 106c349dbc7Sjsg }; 107c349dbc7Sjsg 108c349dbc7Sjsg #endif /* MOD_SHARED_H_ */ 109