/* * Copyright 2017 Advanced Micro Devices, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * * Authors: AMD *
*/
/** * DOC: overview * * Most of the DML code is automatically generated and tested via hardware * description language. Usually, we use the reference _vcs_dpi in the code * where VCS means "Verilog Compiled Simulator" and DPI stands for "Direct * Programmer Interface". In other words, those structs can be used to * interface with Verilog with other languages such as C.
*/
/** * _vcs_dpi_soc_bounding_box_st: SOC definitions * * This struct maintains the SOC Bounding Box information for the ASIC; it * defines things such as clock, voltage, performance, etc. Usually, we load * these values from VBIOS; if something goes wrong, we use some hard-coded * values, which will enable the ASIC to light up with limitations.
*/ struct _vcs_dpi_soc_bounding_box_st { struct _vcs_dpi_voltage_scaling_st clock_limits[DC__VOLTAGE_STATES]; /** * @num_states: It represents the total of Display Power Management * (DPM) supported by the specific ASIC.
*/ unsignedint num_states; double sr_exit_time_us; double sr_enter_plus_exit_time_us; double sr_exit_z8_time_us; double sr_enter_plus_exit_z8_time_us; double urgent_latency_us; double urgent_latency_pixel_data_only_us; double urgent_latency_pixel_mixed_with_vm_data_us; double urgent_latency_vm_data_only_us; double usr_retraining_latency_us; double smn_latency_us; double fclk_change_latency_us; double mall_allocated_for_dcn_mbytes; double pct_ideal_fabric_bw_after_urgent; double pct_ideal_dram_bw_after_urgent_strobe; double max_avg_fabric_bw_use_normal_percent; double max_avg_dram_bw_use_normal_strobe_percent; enum dm_prefetch_modes allow_for_pstate_or_stutter_in_vblank_final; bool dram_clock_change_requirement_final; double writeback_latency_us; double ideal_dram_bw_after_urgent_percent; double pct_ideal_dram_sdp_bw_after_urgent_pixel_only; // PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelDataOnly double pct_ideal_dram_sdp_bw_after_urgent_pixel_and_vm; double pct_ideal_dram_sdp_bw_after_urgent_vm_only; double pct_ideal_sdp_bw_after_urgent; double max_avg_sdp_bw_use_normal_percent; double max_avg_dram_bw_use_normal_percent; unsignedint max_request_size_bytes; double downspread_percent; double dram_page_open_time_ns; double dram_rw_turnaround_time_ns; double dram_return_buffer_per_channel_bytes; double dram_channel_width_bytes; double fabric_datapath_to_dcn_data_return_bytes; double dcn_downspread_percent; double dispclk_dppclk_vco_speed_mhz; double dfs_vco_period_ps; unsignedint urgent_out_of_order_return_per_channel_pixel_only_bytes; unsignedint urgent_out_of_order_return_per_channel_pixel_and_vm_bytes; unsignedint urgent_out_of_order_return_per_channel_vm_only_bytes; unsignedint round_trip_ping_latency_dcfclk_cycles; unsignedint urgent_out_of_order_return_per_channel_bytes; unsignedint channel_interleave_bytes; unsignedint num_banks; unsignedint num_chans; unsignedint vmm_page_size_bytes; unsignedint hostvm_min_page_size_bytes; unsignedint gpuvm_min_page_size_bytes; double dram_clock_change_latency_us; double dummy_pstate_latency_us; double writeback_dram_clock_change_latency_us; unsignedint return_bus_width_bytes; unsignedint voltage_override; double xfc_bus_transport_time_us; double xfc_xbuf_latency_tolerance_us; int use_urgent_burst_bw; double min_dcfclk; bool do_urgent_latency_adjustment; double urgent_latency_adjustment_fabric_clock_component_us; double urgent_latency_adjustment_fabric_clock_reference_mhz; bool disable_dram_clock_change_vactive_support; bool allow_dram_clock_one_display_vactive; enum self_refresh_affinity allow_dram_self_refresh_or_dram_clock_change_in_vblank; double max_vratio_pre;
};
/** * @_vcs_dpi_ip_params_st: IP configuraion for DCN blocks * * In this struct you can find the DCN configuration associated to the specific * ASIC. For example, here we can save how many DPPs the ASIC is using and it * is available. *
*/ struct _vcs_dpi_ip_params_st { bool use_min_dcfclk; bool clamp_min_dcfclk; bool gpuvm_enable; bool hostvm_enable; bool dsc422_native_support; unsignedint gpuvm_max_page_table_levels; unsignedint hostvm_max_page_table_levels; unsignedint hostvm_cached_page_table_levels; unsignedint pte_group_size_bytes; unsignedint max_inter_dcn_tile_repeaters; unsignedint num_dsc; unsignedint odm_capable; unsignedint rob_buffer_size_kbytes; unsignedint det_buffer_size_kbytes; unsignedint min_comp_buffer_size_kbytes; unsignedint dpte_buffer_size_in_pte_reqs_luma; unsignedint dpte_buffer_size_in_pte_reqs_chroma; unsignedint pde_proc_buffer_size_64k_reqs; unsignedint dpp_output_buffer_pixels; unsignedint opp_output_buffer_lines; unsignedint pixel_chunk_size_kbytes; unsignedint alpha_pixel_chunk_size_kbytes; unsignedint min_pixel_chunk_size_bytes; unsignedint dcc_meta_buffer_size_bytes; unsignedchar pte_enable; unsignedint pte_chunk_size_kbytes; unsignedint meta_chunk_size_kbytes; unsignedint min_meta_chunk_size_bytes; unsignedint writeback_chunk_size_kbytes; unsignedint line_buffer_size_bits; unsignedint max_line_buffer_lines; unsignedint writeback_luma_buffer_size_kbytes; unsignedint writeback_chroma_buffer_size_kbytes; unsignedint writeback_chroma_line_buffer_width_pixels;
struct _vcs_dpi_display_pipe_source_params_st { int source_format; double dcc_fraction_of_zs_req_luma; double dcc_fraction_of_zs_req_chroma; unsignedchar dcc; unsignedint dcc_rate; unsignedint dcc_rate_chroma; unsignedchar dcc_use_global; unsignedchar vm; bool unbounded_req_mode; bool gpuvm; // gpuvm enabled bool hostvm; // hostvm enabled bool gpuvm_levels_force_en; unsignedint gpuvm_levels_force; bool hostvm_levels_force_en; unsignedint hostvm_levels_force; int source_scan; int source_rotation; // new in dml32 unsignedint det_size_override; // use to populate DETSizeOverride in vba struct int sw_mode; int macro_tile_size; unsignedint surface_width_y; unsignedint surface_height_y; unsignedint surface_width_c; unsignedint surface_height_c; unsignedint viewport_width; unsignedint viewport_height; unsignedint viewport_y_y; unsignedint viewport_y_c; unsignedint viewport_width_c; unsignedint viewport_height_c; unsignedint viewport_width_max; unsignedint viewport_height_max; unsignedint viewport_x_y; unsignedint viewport_x_c; bool viewport_stationary; unsignedint dcc_rate_luma; unsignedint gpuvm_min_page_size_kbytes; unsignedint use_mall_for_pstate_change; unsignedint use_mall_for_static_screen; bool force_one_row_for_frame; bool pte_buffer_mode; unsignedint data_pitch; unsignedint data_pitch_c; unsignedint meta_pitch; unsignedint meta_pitch_c; unsignedint cur0_src_width; int cur0_bpp; unsignedint cur1_src_width; int cur1_bpp; int num_cursors; unsignedchar is_hsplit; unsignedchar dynamic_metadata_enable; unsignedint dynamic_metadata_lines_before_active; unsignedint dynamic_metadata_xmit_bytes; unsignedint hsplit_grp; unsignedchar xfc_enable; unsignedchar xfc_slave; unsignedchar immediate_flip; struct _vcs_dpi_display_xfc_params_st xfc_params; //for vstartuplines calculation freesync unsignedchar v_total_min; unsignedchar v_total_max;
}; struct writeback_st { int wb_src_height; int wb_src_width; int wb_dst_width; int wb_dst_height; int wb_pixel_format; int wb_htaps_luma; int wb_vtaps_luma; int wb_htaps_chroma; int wb_vtaps_chroma; unsignedint wb_htaps; unsignedint wb_vtaps; double wb_hratio; double wb_vratio;
};
struct display_audio_params_st { unsignedint audio_sample_rate_khz; int audio_sample_layout;
};
struct _vcs_dpi_display_output_params_st { int dp_lanes; double output_bpp; unsignedint dsc_input_bpc; int dsc_enable; int wb_enable; int num_active_wb; int output_type; int is_virtual; int output_format; int dsc_slices; int max_audio_sample_rate; struct writeback_st wb; struct display_audio_params_st audio; unsignedint output_bpc; int dp_rate; unsignedint dp_multistream_id; bool dp_multistream_en;
};
struct _vcs_dpi_display_arb_params_st { int max_req_outstanding; int min_req_outstanding; int sat_level_us; int hvm_min_req_outstand_commit_threshold; int hvm_max_qos_commit_threshold; int compbuf_reserved_space_kbytes;
};
#endif/*__DISPLAY_MODE_STRUCTS_H__*/
Messung V0.5
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.13Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.