1 /* 2 * Copyright 2022 Advanced Micro Devices, Inc. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the "Software"), 6 * to deal in the Software without restriction, including without limitation 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 * and/or sell copies of the Software, and to permit persons to whom the 9 * Software is furnished to do so, subject to the following conditions: 10 * 11 * The above copyright notice and this permission notice shall be included in 12 * all copies or substantial portions of the Software. 13 * 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20 * OTHER DEALINGS IN THE SOFTWARE. 21 * 22 * Authors: AMD 23 * 24 */ 25 26 #ifndef __DML_DCN32_DISPLAY_MODE_VBA_UTIL_32_H__ 27 #define __DML_DCN32_DISPLAY_MODE_VBA_UTIL_32_H__ 28 29 #include "../display_mode_enums.h" 30 #include "os_types.h" 31 #include "../dc_features.h" 32 #include "../display_mode_structs.h" 33 #include "dml/display_mode_vba.h" 34 35 unsigned int dml32_dscceComputeDelay( 36 unsigned int bpc, 37 double BPP, 38 unsigned int sliceWidth, 39 unsigned int numSlices, 40 enum output_format_class pixelFormat, 41 enum output_encoder_class Output); 42 43 unsigned int dml32_dscComputeDelay(enum output_format_class pixelFormat, enum output_encoder_class Output); 44 45 bool IsVertical(enum dm_rotation_angle Scan); 46 47 void dml32_CalculateBytePerPixelAndBlockSizes( 48 enum source_format_class SourcePixelFormat, 49 enum dm_swizzle_mode SurfaceTiling, 50 51 /*Output*/ 52 unsigned int *BytePerPixelY, 53 unsigned int *BytePerPixelC, 54 double *BytePerPixelDETY, 55 double *BytePerPixelDETC, 56 unsigned int *BlockHeight256BytesY, 57 unsigned int *BlockHeight256BytesC, 58 unsigned int *BlockWidth256BytesY, 59 unsigned int *BlockWidth256BytesC, 60 unsigned int *MacroTileHeightY, 61 unsigned int *MacroTileHeightC, 62 unsigned int *MacroTileWidthY, 63 unsigned int *MacroTileWidthC); 64 65 void dml32_CalculateSinglePipeDPPCLKAndSCLThroughput( 66 double HRatio, 67 double HRatioChroma, 68 double VRatio, 69 double VRatioChroma, 70 double MaxDCHUBToPSCLThroughput, 71 double MaxPSCLToLBThroughput, 72 double PixelClock, 73 enum source_format_class SourcePixelFormat, 74 unsigned int HTaps, 75 unsigned int HTapsChroma, 76 unsigned int VTaps, 77 unsigned int VTapsChroma, 78 79 /* output */ 80 double *PSCL_THROUGHPUT, 81 double *PSCL_THROUGHPUT_CHROMA, 82 double *DPPCLKUsingSingleDPP); 83 84 void dml32_CalculateSwathAndDETConfiguration( 85 unsigned int DETSizeOverride[], 86 enum dm_use_mall_for_pstate_change_mode UseMALLForPStateChange[], 87 unsigned int ConfigReturnBufferSizeInKByte, 88 unsigned int MaxTotalDETInKByte, 89 unsigned int MinCompressedBufferSizeInKByte, 90 double ForceSingleDPP, 91 unsigned int NumberOfActiveSurfaces, 92 unsigned int nomDETInKByte, 93 enum unbounded_requesting_policy UseUnboundedRequestingFinal, 94 bool DisableUnboundRequestIfCompBufReservedSpaceNeedAdjustment, 95 unsigned int PixelChunkSizeKBytes, 96 unsigned int ROBSizeKBytes, 97 unsigned int CompressedBufferSegmentSizeInkByteFinal, 98 enum output_encoder_class Output[], 99 double ReadBandwidthLuma[], 100 double ReadBandwidthChroma[], 101 double MaximumSwathWidthLuma[], 102 double MaximumSwathWidthChroma[], 103 enum dm_rotation_angle SourceRotation[], 104 bool ViewportStationary[], 105 enum source_format_class SourcePixelFormat[], 106 enum dm_swizzle_mode SurfaceTiling[], 107 unsigned int ViewportWidth[], 108 unsigned int ViewportHeight[], 109 unsigned int ViewportXStart[], 110 unsigned int ViewportYStart[], 111 unsigned int ViewportXStartC[], 112 unsigned int ViewportYStartC[], 113 unsigned int SurfaceWidthY[], 114 unsigned int SurfaceWidthC[], 115 unsigned int SurfaceHeightY[], 116 unsigned int SurfaceHeightC[], 117 unsigned int Read256BytesBlockHeightY[], 118 unsigned int Read256BytesBlockHeightC[], 119 unsigned int Read256BytesBlockWidthY[], 120 unsigned int Read256BytesBlockWidthC[], 121 enum odm_combine_mode ODMMode[], 122 unsigned int BlendingAndTiming[], 123 unsigned int BytePerPixY[], 124 unsigned int BytePerPixC[], 125 double BytePerPixDETY[], 126 double BytePerPixDETC[], 127 unsigned int HActive[], 128 double HRatio[], 129 double HRatioChroma[], 130 unsigned int DPPPerSurface[], 131 132 /* Output */ 133 unsigned int swath_width_luma_ub[], 134 unsigned int swath_width_chroma_ub[], 135 double SwathWidth[], 136 double SwathWidthChroma[], 137 unsigned int SwathHeightY[], 138 unsigned int SwathHeightC[], 139 unsigned int DETBufferSizeInKByte[], 140 unsigned int DETBufferSizeY[], 141 unsigned int DETBufferSizeC[], 142 bool *UnboundedRequestEnabled, 143 unsigned int *CompressedBufferSizeInkByte, 144 unsigned int *CompBufReservedSpaceKBytes, 145 bool *CompBufReservedSpaceNeedAdjustment, 146 bool ViewportSizeSupportPerSurface[], 147 bool *ViewportSizeSupport); 148 149 void dml32_CalculateSwathWidth( 150 bool ForceSingleDPP, 151 unsigned int NumberOfActiveSurfaces, 152 enum source_format_class SourcePixelFormat[], 153 enum dm_rotation_angle SourceScan[], 154 bool ViewportStationary[], 155 unsigned int ViewportWidth[], 156 unsigned int ViewportHeight[], 157 unsigned int ViewportXStart[], 158 unsigned int ViewportYStart[], 159 unsigned int ViewportXStartC[], 160 unsigned int ViewportYStartC[], 161 unsigned int SurfaceWidthY[], 162 unsigned int SurfaceWidthC[], 163 unsigned int SurfaceHeightY[], 164 unsigned int SurfaceHeightC[], 165 enum odm_combine_mode ODMMode[], 166 unsigned int BytePerPixY[], 167 unsigned int BytePerPixC[], 168 unsigned int Read256BytesBlockHeightY[], 169 unsigned int Read256BytesBlockHeightC[], 170 unsigned int Read256BytesBlockWidthY[], 171 unsigned int Read256BytesBlockWidthC[], 172 unsigned int BlendingAndTiming[], 173 unsigned int HActive[], 174 double HRatio[], 175 unsigned int DPPPerSurface[], 176 177 /* Output */ 178 double SwathWidthdoubleDPPY[], 179 double SwathWidthdoubleDPPC[], 180 double SwathWidthY[], // per-pipe 181 double SwathWidthC[], // per-pipe 182 unsigned int MaximumSwathHeightY[], 183 unsigned int MaximumSwathHeightC[], 184 unsigned int swath_width_luma_ub[], // per-pipe 185 unsigned int swath_width_chroma_ub[]); 186 187 bool dml32_UnboundedRequest(enum unbounded_requesting_policy UseUnboundedRequestingFinal, 188 unsigned int TotalNumberOfActiveDPP, 189 bool NoChroma, 190 enum output_encoder_class Output, 191 enum dm_swizzle_mode SurfaceTiling, 192 bool CompBufReservedSpaceNeedAdjustment, 193 bool DisableUnboundRequestIfCompBufReservedSpaceNeedAdjustment); 194 195 void dml32_CalculateDETBufferSize( 196 unsigned int DETSizeOverride[], 197 enum dm_use_mall_for_pstate_change_mode UseMALLForPStateChange[], 198 bool ForceSingleDPP, 199 unsigned int NumberOfActiveSurfaces, 200 bool UnboundedRequestEnabled, 201 unsigned int nomDETInKByte, 202 unsigned int MaxTotalDETInKByte, 203 unsigned int ConfigReturnBufferSizeInKByte, 204 unsigned int MinCompressedBufferSizeInKByte, 205 unsigned int CompressedBufferSegmentSizeInkByteFinal, 206 enum source_format_class SourcePixelFormat[], 207 double ReadBandwidthLuma[], 208 double ReadBandwidthChroma[], 209 unsigned int RoundedUpMaxSwathSizeBytesY[], 210 unsigned int RoundedUpMaxSwathSizeBytesC[], 211 unsigned int DPPPerSurface[], 212 /* Output */ 213 unsigned int DETBufferSizeInKByte[], 214 unsigned int *CompressedBufferSizeInkByte); 215 216 void dml32_CalculateODMMode( 217 unsigned int MaximumPixelsPerLinePerDSCUnit, 218 unsigned int HActive, 219 enum output_format_class OutFormat, 220 enum output_encoder_class Output, 221 enum odm_combine_policy ODMUse, 222 double StateDispclk, 223 double MaxDispclk, 224 bool DSCEnable, 225 unsigned int TotalNumberOfActiveDPP, 226 unsigned int MaxNumDPP, 227 double PixelClock, 228 double DISPCLKDPPCLKDSCCLKDownSpreading, 229 double DISPCLKRampingMargin, 230 double DISPCLKDPPCLKVCOSpeed, 231 unsigned int NumberOfDSCSlices, 232 233 /* Output */ 234 bool *TotalAvailablePipesSupport, 235 unsigned int *NumberOfDPP, 236 enum odm_combine_mode *ODMMode, 237 double *RequiredDISPCLKPerSurface); 238 239 double dml32_CalculateRequiredDispclk( 240 enum odm_combine_mode ODMMode, 241 double PixelClock, 242 double DISPCLKDPPCLKDSCCLKDownSpreading, 243 double DISPCLKRampingMargin, 244 double DISPCLKDPPCLKVCOSpeed, 245 double MaxDispclk); 246 247 double dml32_RoundToDFSGranularity(double Clock, bool round_up, double VCOSpeed); 248 249 void dml32_CalculateOutputLink( 250 double PHYCLKPerState, 251 double PHYCLKD18PerState, 252 double PHYCLKD32PerState, 253 double Downspreading, 254 bool IsMainSurfaceUsingTheIndicatedTiming, 255 enum output_encoder_class Output, 256 enum output_format_class OutputFormat, 257 unsigned int HTotal, 258 unsigned int HActive, 259 double PixelClockBackEnd, 260 double ForcedOutputLinkBPP, 261 unsigned int DSCInputBitPerComponent, 262 unsigned int NumberOfDSCSlices, 263 double AudioSampleRate, 264 unsigned int AudioSampleLayout, 265 enum odm_combine_mode ODMModeNoDSC, 266 enum odm_combine_mode ODMModeDSC, 267 bool DSCEnable, 268 unsigned int OutputLinkDPLanes, 269 enum dm_output_link_dp_rate OutputLinkDPRate, 270 271 /* Output */ 272 bool *RequiresDSC, 273 double *RequiresFEC, 274 double *OutBpp, 275 enum dm_output_type *OutputType, 276 enum dm_output_rate *OutputRate, 277 unsigned int *RequiredSlots); 278 279 void dml32_CalculateDPPCLK( 280 unsigned int NumberOfActiveSurfaces, 281 double DISPCLKDPPCLKDSCCLKDownSpreading, 282 double DISPCLKDPPCLKVCOSpeed, 283 double DPPCLKUsingSingleDPP[], 284 unsigned int DPPPerSurface[], 285 286 /* output */ 287 double *GlobalDPPCLK, 288 double Dppclk[]); 289 290 double dml32_TruncToValidBPP( 291 double LinkBitRate, 292 unsigned int Lanes, 293 unsigned int HTotal, 294 unsigned int HActive, 295 double PixelClock, 296 double DesiredBPP, 297 bool DSCEnable, 298 enum output_encoder_class Output, 299 enum output_format_class Format, 300 unsigned int DSCInputBitPerComponent, 301 unsigned int DSCSlices, 302 unsigned int AudioRate, 303 unsigned int AudioLayout, 304 enum odm_combine_mode ODMModeNoDSC, 305 enum odm_combine_mode ODMModeDSC, 306 /* Output */ 307 unsigned int *RequiredSlots); 308 309 double dml32_RequiredDTBCLK( 310 bool DSCEnable, 311 double PixelClock, 312 enum output_format_class OutputFormat, 313 double OutputBpp, 314 unsigned int DSCSlices, 315 unsigned int HTotal, 316 unsigned int HActive, 317 unsigned int AudioRate, 318 unsigned int AudioLayout); 319 320 unsigned int dml32_DSCDelayRequirement(bool DSCEnabled, 321 enum odm_combine_mode ODMMode, 322 unsigned int DSCInputBitPerComponent, 323 double OutputBpp, 324 unsigned int HActive, 325 unsigned int HTotal, 326 unsigned int NumberOfDSCSlices, 327 enum output_format_class OutputFormat, 328 enum output_encoder_class Output, 329 double PixelClock, 330 double PixelClockBackEnd, 331 double dsc_delay_factor_wa); 332 333 void dml32_CalculateSurfaceSizeInMall( 334 unsigned int NumberOfActiveSurfaces, 335 unsigned int MALLAllocatedForDCN, 336 enum dm_use_mall_for_static_screen_mode UseMALLForStaticScreen[], 337 bool DCCEnable[], 338 bool ViewportStationary[], 339 unsigned int ViewportXStartY[], 340 unsigned int ViewportYStartY[], 341 unsigned int ViewportXStartC[], 342 unsigned int ViewportYStartC[], 343 unsigned int ViewportWidthY[], 344 unsigned int ViewportHeightY[], 345 unsigned int BytesPerPixelY[], 346 unsigned int ViewportWidthC[], 347 unsigned int ViewportHeightC[], 348 unsigned int BytesPerPixelC[], 349 unsigned int SurfaceWidthY[], 350 unsigned int SurfaceWidthC[], 351 unsigned int SurfaceHeightY[], 352 unsigned int SurfaceHeightC[], 353 unsigned int Read256BytesBlockWidthY[], 354 unsigned int Read256BytesBlockWidthC[], 355 unsigned int Read256BytesBlockHeightY[], 356 unsigned int Read256BytesBlockHeightC[], 357 unsigned int ReadBlockWidthY[], 358 unsigned int ReadBlockWidthC[], 359 unsigned int ReadBlockHeightY[], 360 unsigned int ReadBlockHeightC[], 361 362 /* Output */ 363 unsigned int SurfaceSizeInMALL[], 364 bool *ExceededMALLSize); 365 366 void dml32_CalculateVMRowAndSwath( 367 unsigned int NumberOfActiveSurfaces, 368 DmlPipe myPipe[], 369 unsigned int SurfaceSizeInMALL[], 370 unsigned int PTEBufferSizeInRequestsLuma, 371 unsigned int PTEBufferSizeInRequestsChroma, 372 unsigned int DCCMetaBufferSizeBytes, 373 enum dm_use_mall_for_static_screen_mode UseMALLForStaticScreen[], 374 enum dm_use_mall_for_pstate_change_mode UseMALLForPStateChange[], 375 unsigned int MALLAllocatedForDCN, 376 double SwathWidthY[], 377 double SwathWidthC[], 378 bool GPUVMEnable, 379 bool HostVMEnable, 380 unsigned int HostVMMaxNonCachedPageTableLevels, 381 unsigned int GPUVMMaxPageTableLevels, 382 unsigned int GPUVMMinPageSizeKBytes[], 383 unsigned int HostVMMinPageSize, 384 385 /* Output */ 386 bool PTEBufferSizeNotExceeded[], 387 bool DCCMetaBufferSizeNotExceeded[], 388 unsigned int dpte_row_width_luma_ub[], 389 unsigned int dpte_row_width_chroma_ub[], 390 unsigned int dpte_row_height_luma[], 391 unsigned int dpte_row_height_chroma[], 392 unsigned int dpte_row_height_linear_luma[], // VBA_DELTA 393 unsigned int dpte_row_height_linear_chroma[], // VBA_DELTA 394 unsigned int meta_req_width[], 395 unsigned int meta_req_width_chroma[], 396 unsigned int meta_req_height[], 397 unsigned int meta_req_height_chroma[], 398 unsigned int meta_row_width[], 399 unsigned int meta_row_width_chroma[], 400 unsigned int meta_row_height[], 401 unsigned int meta_row_height_chroma[], 402 unsigned int vm_group_bytes[], 403 unsigned int dpte_group_bytes[], 404 unsigned int PixelPTEReqWidthY[], 405 unsigned int PixelPTEReqHeightY[], 406 unsigned int PTERequestSizeY[], 407 unsigned int PixelPTEReqWidthC[], 408 unsigned int PixelPTEReqHeightC[], 409 unsigned int PTERequestSizeC[], 410 unsigned int dpde0_bytes_per_frame_ub_l[], 411 unsigned int meta_pte_bytes_per_frame_ub_l[], 412 unsigned int dpde0_bytes_per_frame_ub_c[], 413 unsigned int meta_pte_bytes_per_frame_ub_c[], 414 double PrefetchSourceLinesY[], 415 double PrefetchSourceLinesC[], 416 double VInitPreFillY[], 417 double VInitPreFillC[], 418 unsigned int MaxNumSwathY[], 419 unsigned int MaxNumSwathC[], 420 double meta_row_bw[], 421 double dpte_row_bw[], 422 double PixelPTEBytesPerRow[], 423 double PDEAndMetaPTEBytesFrame[], 424 double MetaRowByte[], 425 bool use_one_row_for_frame[], 426 bool use_one_row_for_frame_flip[], 427 bool UsesMALLForStaticScreen[], 428 bool PTE_BUFFER_MODE[], 429 unsigned int BIGK_FRAGMENT_SIZE[]); 430 431 unsigned int dml32_CalculateVMAndRowBytes( 432 bool ViewportStationary, 433 bool DCCEnable, 434 unsigned int NumberOfDPPs, 435 unsigned int BlockHeight256Bytes, 436 unsigned int BlockWidth256Bytes, 437 enum source_format_class SourcePixelFormat, 438 unsigned int SurfaceTiling, 439 unsigned int BytePerPixel, 440 enum dm_rotation_angle SourceScan, 441 double SwathWidth, 442 unsigned int ViewportHeight, 443 unsigned int ViewportXStart, 444 unsigned int ViewportYStart, 445 bool GPUVMEnable, 446 bool HostVMEnable, 447 unsigned int HostVMMaxNonCachedPageTableLevels, 448 unsigned int GPUVMMaxPageTableLevels, 449 unsigned int GPUVMMinPageSizeKBytes, 450 unsigned int HostVMMinPageSize, 451 unsigned int PTEBufferSizeInRequests, 452 unsigned int Pitch, 453 unsigned int DCCMetaPitch, 454 unsigned int MacroTileWidth, 455 unsigned int MacroTileHeight, 456 457 /* Output */ 458 unsigned int *MetaRowByte, 459 unsigned int *PixelPTEBytesPerRow, 460 unsigned int *dpte_row_width_ub, 461 unsigned int *dpte_row_height, 462 unsigned int *dpte_row_height_linear, 463 unsigned int *PixelPTEBytesPerRow_one_row_per_frame, 464 unsigned int *dpte_row_width_ub_one_row_per_frame, 465 unsigned int *dpte_row_height_one_row_per_frame, 466 unsigned int *MetaRequestWidth, 467 unsigned int *MetaRequestHeight, 468 unsigned int *meta_row_width, 469 unsigned int *meta_row_height, 470 unsigned int *PixelPTEReqWidth, 471 unsigned int *PixelPTEReqHeight, 472 unsigned int *PTERequestSize, 473 unsigned int *DPDE0BytesFrame, 474 unsigned int *MetaPTEBytesFrame); 475 476 double dml32_CalculatePrefetchSourceLines( 477 double VRatio, 478 unsigned int VTaps, 479 bool Interlace, 480 bool ProgressiveToInterlaceUnitInOPP, 481 unsigned int SwathHeight, 482 enum dm_rotation_angle SourceRotation, 483 bool ViewportStationary, 484 double SwathWidth, 485 unsigned int ViewportHeight, 486 unsigned int ViewportXStart, 487 unsigned int ViewportYStart, 488 489 /* Output */ 490 double *VInitPreFill, 491 unsigned int *MaxNumSwath); 492 493 void dml32_CalculateMALLUseForStaticScreen( 494 unsigned int NumberOfActiveSurfaces, 495 unsigned int MALLAllocatedForDCNFinal, 496 enum dm_use_mall_for_static_screen_mode *UseMALLForStaticScreen, 497 unsigned int SurfaceSizeInMALL[], 498 bool one_row_per_frame_fits_in_buffer[], 499 500 /* output */ 501 bool UsesMALLForStaticScreen[]); 502 503 void dml32_CalculateRowBandwidth( 504 bool GPUVMEnable, 505 enum source_format_class SourcePixelFormat, 506 double VRatio, 507 double VRatioChroma, 508 bool DCCEnable, 509 double LineTime, 510 unsigned int MetaRowByteLuma, 511 unsigned int MetaRowByteChroma, 512 unsigned int meta_row_height_luma, 513 unsigned int meta_row_height_chroma, 514 unsigned int PixelPTEBytesPerRowLuma, 515 unsigned int PixelPTEBytesPerRowChroma, 516 unsigned int dpte_row_height_luma, 517 unsigned int dpte_row_height_chroma, 518 /* Output */ 519 double *meta_row_bw, 520 double *dpte_row_bw); 521 522 double dml32_CalculateUrgentLatency( 523 double UrgentLatencyPixelDataOnly, 524 double UrgentLatencyPixelMixedWithVMData, 525 double UrgentLatencyVMDataOnly, 526 bool DoUrgentLatencyAdjustment, 527 double UrgentLatencyAdjustmentFabricClockComponent, 528 double UrgentLatencyAdjustmentFabricClockReference, 529 double FabricClock); 530 531 void dml32_CalculateUrgentBurstFactor( 532 enum dm_use_mall_for_pstate_change_mode UseMALLForPStateChange, 533 unsigned int swath_width_luma_ub, 534 unsigned int swath_width_chroma_ub, 535 unsigned int SwathHeightY, 536 unsigned int SwathHeightC, 537 double LineTime, 538 double UrgentLatency, 539 double CursorBufferSize, 540 unsigned int CursorWidth, 541 unsigned int CursorBPP, 542 double VRatio, 543 double VRatioC, 544 double BytePerPixelInDETY, 545 double BytePerPixelInDETC, 546 unsigned int DETBufferSizeY, 547 unsigned int DETBufferSizeC, 548 /* Output */ 549 double *UrgentBurstFactorCursor, 550 double *UrgentBurstFactorLuma, 551 double *UrgentBurstFactorChroma, 552 bool *NotEnoughUrgentLatencyHiding); 553 554 void dml32_CalculateDCFCLKDeepSleep( 555 unsigned int NumberOfActiveSurfaces, 556 unsigned int BytePerPixelY[], 557 unsigned int BytePerPixelC[], 558 double VRatio[], 559 double VRatioChroma[], 560 double SwathWidthY[], 561 double SwathWidthC[], 562 unsigned int DPPPerSurface[], 563 double HRatio[], 564 double HRatioChroma[], 565 double PixelClock[], 566 double PSCL_THROUGHPUT[], 567 double PSCL_THROUGHPUT_CHROMA[], 568 double Dppclk[], 569 double ReadBandwidthLuma[], 570 double ReadBandwidthChroma[], 571 unsigned int ReturnBusWidth, 572 573 /* Output */ 574 double *DCFClkDeepSleep); 575 576 double dml32_CalculateWriteBackDelay( 577 enum source_format_class WritebackPixelFormat, 578 double WritebackHRatio, 579 double WritebackVRatio, 580 unsigned int WritebackVTaps, 581 unsigned int WritebackDestinationWidth, 582 unsigned int WritebackDestinationHeight, 583 unsigned int WritebackSourceHeight, 584 unsigned int HTotal); 585 586 void dml32_UseMinimumDCFCLK( 587 enum dm_use_mall_for_pstate_change_mode UseMALLForPStateChange[], 588 bool DRRDisplay[], 589 bool SynchronizeDRRDisplaysForUCLKPStateChangeFinal, 590 unsigned int MaxInterDCNTileRepeaters, 591 unsigned int MaxPrefetchMode, 592 double DRAMClockChangeLatencyFinal, 593 double FCLKChangeLatency, 594 double SREnterPlusExitTime, 595 unsigned int ReturnBusWidth, 596 unsigned int RoundTripPingLatencyCycles, 597 unsigned int ReorderingBytes, 598 unsigned int PixelChunkSizeInKByte, 599 unsigned int MetaChunkSize, 600 bool GPUVMEnable, 601 unsigned int GPUVMMaxPageTableLevels, 602 bool HostVMEnable, 603 unsigned int NumberOfActiveSurfaces, 604 double HostVMMinPageSize, 605 unsigned int HostVMMaxNonCachedPageTableLevels, 606 bool DynamicMetadataVMEnabled, 607 bool ImmediateFlipRequirement, 608 bool ProgressiveToInterlaceUnitInOPP, 609 double MaxAveragePercentOfIdealSDPPortBWDisplayCanUseInNormalSystemOperation, 610 double PercentOfIdealSDPPortBWReceivedAfterUrgLatency, 611 unsigned int VTotal[], 612 unsigned int VActive[], 613 unsigned int DynamicMetadataTransmittedBytes[], 614 unsigned int DynamicMetadataLinesBeforeActiveRequired[], 615 bool Interlace[], 616 double RequiredDPPCLKPerSurface[][2][DC__NUM_DPP__MAX], 617 double RequiredDISPCLK[][2], 618 double UrgLatency[], 619 unsigned int NoOfDPP[][2][DC__NUM_DPP__MAX], 620 double ProjectedDCFClkDeepSleep[][2], 621 double MaximumVStartup[][2][DC__NUM_DPP__MAX], 622 unsigned int TotalNumberOfActiveDPP[][2], 623 unsigned int TotalNumberOfDCCActiveDPP[][2], 624 unsigned int dpte_group_bytes[], 625 double PrefetchLinesY[][2][DC__NUM_DPP__MAX], 626 double PrefetchLinesC[][2][DC__NUM_DPP__MAX], 627 unsigned int swath_width_luma_ub_all_states[][2][DC__NUM_DPP__MAX], 628 unsigned int swath_width_chroma_ub_all_states[][2][DC__NUM_DPP__MAX], 629 unsigned int BytePerPixelY[], 630 unsigned int BytePerPixelC[], 631 unsigned int HTotal[], 632 double PixelClock[], 633 double PDEAndMetaPTEBytesPerFrame[][2][DC__NUM_DPP__MAX], 634 double DPTEBytesPerRow[][2][DC__NUM_DPP__MAX], 635 double MetaRowBytes[][2][DC__NUM_DPP__MAX], 636 bool DynamicMetadataEnable[], 637 double ReadBandwidthLuma[], 638 double ReadBandwidthChroma[], 639 double DCFCLKPerState[], 640 /* Output */ 641 double DCFCLKState[][2]); 642 643 unsigned int dml32_CalculateExtraLatencyBytes(unsigned int ReorderingBytes, 644 unsigned int TotalNumberOfActiveDPP, 645 unsigned int PixelChunkSizeInKByte, 646 unsigned int TotalNumberOfDCCActiveDPP, 647 unsigned int MetaChunkSize, 648 bool GPUVMEnable, 649 bool HostVMEnable, 650 unsigned int NumberOfActiveSurfaces, 651 unsigned int NumberOfDPP[], 652 unsigned int dpte_group_bytes[], 653 double HostVMInefficiencyFactor, 654 double HostVMMinPageSize, 655 unsigned int HostVMMaxNonCachedPageTableLevels); 656 657 void dml32_CalculateVUpdateAndDynamicMetadataParameters( 658 unsigned int MaxInterDCNTileRepeaters, 659 double Dppclk, 660 double Dispclk, 661 double DCFClkDeepSleep, 662 double PixelClock, 663 unsigned int HTotal, 664 unsigned int VBlank, 665 unsigned int DynamicMetadataTransmittedBytes, 666 unsigned int DynamicMetadataLinesBeforeActiveRequired, 667 unsigned int InterlaceEnable, 668 bool ProgressiveToInterlaceUnitInOPP, 669 double *TSetup, 670 double *Tdmbf, 671 double *Tdmec, 672 double *Tdmsks, 673 unsigned int *VUpdateOffsetPix, 674 double *VUpdateWidthPix, 675 double *VReadyOffsetPix); 676 677 double dml32_CalculateTWait( 678 unsigned int PrefetchMode, 679 enum dm_use_mall_for_pstate_change_mode UseMALLForPStateChange, 680 bool SynchronizeDRRDisplaysForUCLKPStateChangeFinal, 681 bool DRRDisplay, 682 double DRAMClockChangeLatency, 683 double FCLKChangeLatency, 684 double UrgentLatency, 685 double SREnterPlusExitTime); 686 687 double dml32_get_return_bw_mbps(const soc_bounding_box_st *soc, 688 const int VoltageLevel, 689 const bool HostVMEnable, 690 const double DCFCLK, 691 const double FabricClock, 692 const double DRAMSpeed); 693 694 double dml32_get_return_bw_mbps_vm_only(const soc_bounding_box_st *soc, 695 const int VoltageLevel, 696 const double DCFCLK, 697 const double FabricClock, 698 const double DRAMSpeed); 699 700 double dml32_CalculateExtraLatency( 701 unsigned int RoundTripPingLatencyCycles, 702 unsigned int ReorderingBytes, 703 double DCFCLK, 704 unsigned int TotalNumberOfActiveDPP, 705 unsigned int PixelChunkSizeInKByte, 706 unsigned int TotalNumberOfDCCActiveDPP, 707 unsigned int MetaChunkSize, 708 double ReturnBW, 709 bool GPUVMEnable, 710 bool HostVMEnable, 711 unsigned int NumberOfActiveSurfaces, 712 unsigned int NumberOfDPP[], 713 unsigned int dpte_group_bytes[], 714 double HostVMInefficiencyFactor, 715 double HostVMMinPageSize, 716 unsigned int HostVMMaxNonCachedPageTableLevels); 717 718 bool dml32_CalculatePrefetchSchedule( 719 struct vba_vars_st *v, 720 unsigned int k, 721 double HostVMInefficiencyFactor, 722 DmlPipe *myPipe, 723 unsigned int DSCDelay, 724 unsigned int DPP_RECOUT_WIDTH, 725 unsigned int VStartup, 726 unsigned int MaxVStartup, 727 double UrgentLatency, 728 double UrgentExtraLatency, 729 double TCalc, 730 unsigned int PDEAndMetaPTEBytesFrame, 731 unsigned int MetaRowByte, 732 unsigned int PixelPTEBytesPerRow, 733 double PrefetchSourceLinesY, 734 unsigned int SwathWidthY, 735 unsigned int VInitPreFillY, 736 unsigned int MaxNumSwathY, 737 double PrefetchSourceLinesC, 738 unsigned int SwathWidthC, 739 unsigned int VInitPreFillC, 740 unsigned int MaxNumSwathC, 741 unsigned int swath_width_luma_ub, 742 unsigned int swath_width_chroma_ub, 743 unsigned int SwathHeightY, 744 unsigned int SwathHeightC, 745 double TWait, 746 /* Output */ 747 double *DSTXAfterScaler, 748 double *DSTYAfterScaler, 749 double *DestinationLinesForPrefetch, 750 double *PrefetchBandwidth, 751 double *DestinationLinesToRequestVMInVBlank, 752 double *DestinationLinesToRequestRowInVBlank, 753 double *VRatioPrefetchY, 754 double *VRatioPrefetchC, 755 double *RequiredPrefetchPixDataBWLuma, 756 double *RequiredPrefetchPixDataBWChroma, 757 bool *NotEnoughTimeForDynamicMetadata, 758 double *Tno_bw, 759 double *prefetch_vmrow_bw, 760 double *Tdmdl_vm, 761 double *Tdmdl, 762 double *TSetup, 763 unsigned int *VUpdateOffsetPix, 764 double *VUpdateWidthPix, 765 double *VReadyOffsetPix); 766 767 void dml32_CalculateFlipSchedule( 768 double HostVMInefficiencyFactor, 769 double UrgentExtraLatency, 770 double UrgentLatency, 771 unsigned int GPUVMMaxPageTableLevels, 772 bool HostVMEnable, 773 unsigned int HostVMMaxNonCachedPageTableLevels, 774 bool GPUVMEnable, 775 double HostVMMinPageSize, 776 double PDEAndMetaPTEBytesPerFrame, 777 double MetaRowBytes, 778 double DPTEBytesPerRow, 779 double BandwidthAvailableForImmediateFlip, 780 unsigned int TotImmediateFlipBytes, 781 enum source_format_class SourcePixelFormat, 782 double LineTime, 783 double VRatio, 784 double VRatioChroma, 785 double Tno_bw, 786 bool DCCEnable, 787 unsigned int dpte_row_height, 788 unsigned int meta_row_height, 789 unsigned int dpte_row_height_chroma, 790 unsigned int meta_row_height_chroma, 791 bool use_one_row_for_frame_flip, 792 793 /* Output */ 794 double *DestinationLinesToRequestVMInImmediateFlip, 795 double *DestinationLinesToRequestRowInImmediateFlip, 796 double *final_flip_bw, 797 bool *ImmediateFlipSupportedForPipe); 798 799 void dml32_CalculateWatermarksMALLUseAndDRAMSpeedChangeSupport( 800 struct vba_vars_st *v, 801 unsigned int PrefetchMode, 802 double DCFCLK, 803 double ReturnBW, 804 SOCParametersList mmSOCParameters, 805 double SOCCLK, 806 double DCFClkDeepSleep, 807 unsigned int DETBufferSizeY[], 808 unsigned int DETBufferSizeC[], 809 unsigned int SwathHeightY[], 810 unsigned int SwathHeightC[], 811 double SwathWidthY[], 812 double SwathWidthC[], 813 unsigned int DPPPerSurface[], 814 double BytePerPixelDETY[], 815 double BytePerPixelDETC[], 816 double DSTXAfterScaler[], 817 double DSTYAfterScaler[], 818 bool UnboundedRequestEnabled, 819 unsigned int CompressedBufferSizeInkByte, 820 821 /* Output */ 822 enum clock_change_support *DRAMClockChangeSupport, 823 double MaxActiveDRAMClockChangeLatencySupported[], 824 unsigned int SubViewportLinesNeededInMALL[], 825 enum dm_fclock_change_support *FCLKChangeSupport, 826 double *MinActiveFCLKChangeLatencySupported, 827 bool *USRRetrainingSupport, 828 double ActiveDRAMClockChangeLatencyMargin[]); 829 830 double dml32_CalculateWriteBackDISPCLK( 831 enum source_format_class WritebackPixelFormat, 832 double PixelClock, 833 double WritebackHRatio, 834 double WritebackVRatio, 835 unsigned int WritebackHTaps, 836 unsigned int WritebackVTaps, 837 unsigned int WritebackSourceWidth, 838 unsigned int WritebackDestinationWidth, 839 unsigned int HTotal, 840 unsigned int WritebackLineBufferSize, 841 double DISPCLKDPPCLKVCOSpeed); 842 843 void dml32_CalculateMinAndMaxPrefetchMode( 844 enum dm_prefetch_modes AllowForPStateChangeOrStutterInVBlankFinal, 845 unsigned int *MinPrefetchMode, 846 unsigned int *MaxPrefetchMode); 847 848 void dml32_CalculatePixelDeliveryTimes( 849 unsigned int NumberOfActiveSurfaces, 850 double VRatio[], 851 double VRatioChroma[], 852 double VRatioPrefetchY[], 853 double VRatioPrefetchC[], 854 unsigned int swath_width_luma_ub[], 855 unsigned int swath_width_chroma_ub[], 856 unsigned int DPPPerSurface[], 857 double HRatio[], 858 double HRatioChroma[], 859 double PixelClock[], 860 double PSCL_THROUGHPUT[], 861 double PSCL_THROUGHPUT_CHROMA[], 862 double Dppclk[], 863 unsigned int BytePerPixelC[], 864 enum dm_rotation_angle SourceRotation[], 865 unsigned int NumberOfCursors[], 866 unsigned int CursorWidth[][DC__NUM_CURSOR__MAX], 867 unsigned int CursorBPP[][DC__NUM_CURSOR__MAX], 868 unsigned int BlockWidth256BytesY[], 869 unsigned int BlockHeight256BytesY[], 870 unsigned int BlockWidth256BytesC[], 871 unsigned int BlockHeight256BytesC[], 872 873 /* Output */ 874 double DisplayPipeLineDeliveryTimeLuma[], 875 double DisplayPipeLineDeliveryTimeChroma[], 876 double DisplayPipeLineDeliveryTimeLumaPrefetch[], 877 double DisplayPipeLineDeliveryTimeChromaPrefetch[], 878 double DisplayPipeRequestDeliveryTimeLuma[], 879 double DisplayPipeRequestDeliveryTimeChroma[], 880 double DisplayPipeRequestDeliveryTimeLumaPrefetch[], 881 double DisplayPipeRequestDeliveryTimeChromaPrefetch[], 882 double CursorRequestDeliveryTime[], 883 double CursorRequestDeliveryTimePrefetch[]); 884 885 void dml32_CalculateMetaAndPTETimes( 886 bool use_one_row_for_frame[], 887 unsigned int NumberOfActiveSurfaces, 888 bool GPUVMEnable, 889 unsigned int MetaChunkSize, 890 unsigned int MinMetaChunkSizeBytes, 891 unsigned int HTotal[], 892 double VRatio[], 893 double VRatioChroma[], 894 double DestinationLinesToRequestRowInVBlank[], 895 double DestinationLinesToRequestRowInImmediateFlip[], 896 bool DCCEnable[], 897 double PixelClock[], 898 unsigned int BytePerPixelY[], 899 unsigned int BytePerPixelC[], 900 enum dm_rotation_angle SourceRotation[], 901 unsigned int dpte_row_height[], 902 unsigned int dpte_row_height_chroma[], 903 unsigned int meta_row_width[], 904 unsigned int meta_row_width_chroma[], 905 unsigned int meta_row_height[], 906 unsigned int meta_row_height_chroma[], 907 unsigned int meta_req_width[], 908 unsigned int meta_req_width_chroma[], 909 unsigned int meta_req_height[], 910 unsigned int meta_req_height_chroma[], 911 unsigned int dpte_group_bytes[], 912 unsigned int PTERequestSizeY[], 913 unsigned int PTERequestSizeC[], 914 unsigned int PixelPTEReqWidthY[], 915 unsigned int PixelPTEReqHeightY[], 916 unsigned int PixelPTEReqWidthC[], 917 unsigned int PixelPTEReqHeightC[], 918 unsigned int dpte_row_width_luma_ub[], 919 unsigned int dpte_row_width_chroma_ub[], 920 921 /* Output */ 922 double DST_Y_PER_PTE_ROW_NOM_L[], 923 double DST_Y_PER_PTE_ROW_NOM_C[], 924 double DST_Y_PER_META_ROW_NOM_L[], 925 double DST_Y_PER_META_ROW_NOM_C[], 926 double TimePerMetaChunkNominal[], 927 double TimePerChromaMetaChunkNominal[], 928 double TimePerMetaChunkVBlank[], 929 double TimePerChromaMetaChunkVBlank[], 930 double TimePerMetaChunkFlip[], 931 double TimePerChromaMetaChunkFlip[], 932 double time_per_pte_group_nom_luma[], 933 double time_per_pte_group_vblank_luma[], 934 double time_per_pte_group_flip_luma[], 935 double time_per_pte_group_nom_chroma[], 936 double time_per_pte_group_vblank_chroma[], 937 double time_per_pte_group_flip_chroma[]); 938 939 void dml32_CalculateVMGroupAndRequestTimes( 940 unsigned int NumberOfActiveSurfaces, 941 bool GPUVMEnable, 942 unsigned int GPUVMMaxPageTableLevels, 943 unsigned int HTotal[], 944 unsigned int BytePerPixelC[], 945 double DestinationLinesToRequestVMInVBlank[], 946 double DestinationLinesToRequestVMInImmediateFlip[], 947 bool DCCEnable[], 948 double PixelClock[], 949 unsigned int dpte_row_width_luma_ub[], 950 unsigned int dpte_row_width_chroma_ub[], 951 unsigned int vm_group_bytes[], 952 unsigned int dpde0_bytes_per_frame_ub_l[], 953 unsigned int dpde0_bytes_per_frame_ub_c[], 954 unsigned int meta_pte_bytes_per_frame_ub_l[], 955 unsigned int meta_pte_bytes_per_frame_ub_c[], 956 957 /* Output */ 958 double TimePerVMGroupVBlank[], 959 double TimePerVMGroupFlip[], 960 double TimePerVMRequestVBlank[], 961 double TimePerVMRequestFlip[]); 962 963 void dml32_CalculateDCCConfiguration( 964 bool DCCEnabled, 965 bool DCCProgrammingAssumesScanDirectionUnknown, 966 enum source_format_class SourcePixelFormat, 967 unsigned int SurfaceWidthLuma, 968 unsigned int SurfaceWidthChroma, 969 unsigned int SurfaceHeightLuma, 970 unsigned int SurfaceHeightChroma, 971 unsigned int nomDETInKByte, 972 unsigned int RequestHeight256ByteLuma, 973 unsigned int RequestHeight256ByteChroma, 974 enum dm_swizzle_mode TilingFormat, 975 unsigned int BytePerPixelY, 976 unsigned int BytePerPixelC, 977 double BytePerPixelDETY, 978 double BytePerPixelDETC, 979 enum dm_rotation_angle SourceRotation, 980 /* Output */ 981 unsigned int *MaxUncompressedBlockLuma, 982 unsigned int *MaxUncompressedBlockChroma, 983 unsigned int *MaxCompressedBlockLuma, 984 unsigned int *MaxCompressedBlockChroma, 985 unsigned int *IndependentBlockLuma, 986 unsigned int *IndependentBlockChroma); 987 988 void dml32_CalculateStutterEfficiency( 989 unsigned int CompressedBufferSizeInkByte, 990 enum dm_use_mall_for_pstate_change_mode UseMALLForPStateChange[], 991 bool UnboundedRequestEnabled, 992 unsigned int MetaFIFOSizeInKEntries, 993 unsigned int ZeroSizeBufferEntries, 994 unsigned int PixelChunkSizeInKByte, 995 unsigned int NumberOfActiveSurfaces, 996 unsigned int ROBBufferSizeInKByte, 997 double TotalDataReadBandwidth, 998 double DCFCLK, 999 double ReturnBW, 1000 unsigned int CompbufReservedSpace64B, 1001 unsigned int CompbufReservedSpaceZs, 1002 double SRExitTime, 1003 double SRExitZ8Time, 1004 bool SynchronizeTimingsFinal, 1005 unsigned int BlendingAndTiming[], 1006 double StutterEnterPlusExitWatermark, 1007 double Z8StutterEnterPlusExitWatermark, 1008 bool ProgressiveToInterlaceUnitInOPP, 1009 bool Interlace[], 1010 double MinTTUVBlank[], 1011 unsigned int DPPPerSurface[], 1012 unsigned int DETBufferSizeY[], 1013 unsigned int BytePerPixelY[], 1014 double BytePerPixelDETY[], 1015 double SwathWidthY[], 1016 unsigned int SwathHeightY[], 1017 unsigned int SwathHeightC[], 1018 double NetDCCRateLuma[], 1019 double NetDCCRateChroma[], 1020 double DCCFractionOfZeroSizeRequestsLuma[], 1021 double DCCFractionOfZeroSizeRequestsChroma[], 1022 unsigned int HTotal[], 1023 unsigned int VTotal[], 1024 double PixelClock[], 1025 double VRatio[], 1026 enum dm_rotation_angle SourceRotation[], 1027 unsigned int BlockHeight256BytesY[], 1028 unsigned int BlockWidth256BytesY[], 1029 unsigned int BlockHeight256BytesC[], 1030 unsigned int BlockWidth256BytesC[], 1031 unsigned int DCCYMaxUncompressedBlock[], 1032 unsigned int DCCCMaxUncompressedBlock[], 1033 unsigned int VActive[], 1034 bool DCCEnable[], 1035 bool WritebackEnable[], 1036 double ReadBandwidthSurfaceLuma[], 1037 double ReadBandwidthSurfaceChroma[], 1038 double meta_row_bw[], 1039 double dpte_row_bw[], 1040 1041 /* Output */ 1042 double *StutterEfficiencyNotIncludingVBlank, 1043 double *StutterEfficiency, 1044 unsigned int *NumberOfStutterBurstsPerFrame, 1045 double *Z8StutterEfficiencyNotIncludingVBlank, 1046 double *Z8StutterEfficiency, 1047 unsigned int *Z8NumberOfStutterBurstsPerFrame, 1048 double *StutterPeriod, 1049 bool *DCHUBBUB_ARB_CSTATE_MAX_CAP_MODE); 1050 1051 void dml32_CalculateMaxDETAndMinCompressedBufferSize( 1052 unsigned int ConfigReturnBufferSizeInKByte, 1053 unsigned int ROBBufferSizeInKByte, 1054 unsigned int MaxNumDPP, 1055 bool nomDETInKByteOverrideEnable, // VBA_DELTA, allow DV to override default DET size 1056 unsigned int nomDETInKByteOverrideValue, // VBA_DELTA 1057 1058 /* Output */ 1059 unsigned int *MaxTotalDETInKByte, 1060 unsigned int *nomDETInKByte, 1061 unsigned int *MinCompressedBufferSizeInKByte); 1062 1063 bool dml32_CalculateVActiveBandwithSupport(unsigned int NumberOfActiveSurfaces, 1064 double ReturnBW, 1065 bool NotUrgentLatencyHiding[], 1066 double ReadBandwidthLuma[], 1067 double ReadBandwidthChroma[], 1068 double cursor_bw[], 1069 double meta_row_bandwidth[], 1070 double dpte_row_bandwidth[], 1071 unsigned int NumberOfDPP[], 1072 double UrgentBurstFactorLuma[], 1073 double UrgentBurstFactorChroma[], 1074 double UrgentBurstFactorCursor[]); 1075 1076 void dml32_CalculatePrefetchBandwithSupport(unsigned int NumberOfActiveSurfaces, 1077 double ReturnBW, 1078 bool NotUrgentLatencyHiding[], 1079 double ReadBandwidthLuma[], 1080 double ReadBandwidthChroma[], 1081 double PrefetchBandwidthLuma[], 1082 double PrefetchBandwidthChroma[], 1083 double cursor_bw[], 1084 double meta_row_bandwidth[], 1085 double dpte_row_bandwidth[], 1086 double cursor_bw_pre[], 1087 double prefetch_vmrow_bw[], 1088 unsigned int NumberOfDPP[], 1089 double UrgentBurstFactorLuma[], 1090 double UrgentBurstFactorChroma[], 1091 double UrgentBurstFactorCursor[], 1092 double UrgentBurstFactorLumaPre[], 1093 double UrgentBurstFactorChromaPre[], 1094 double UrgentBurstFactorCursorPre[], 1095 1096 /* output */ 1097 double *PrefetchBandwidth, 1098 double *FractionOfUrgentBandwidth, 1099 bool *PrefetchBandwidthSupport); 1100 1101 double dml32_CalculateBandwidthAvailableForImmediateFlip(unsigned int NumberOfActiveSurfaces, 1102 double ReturnBW, 1103 double ReadBandwidthLuma[], 1104 double ReadBandwidthChroma[], 1105 double PrefetchBandwidthLuma[], 1106 double PrefetchBandwidthChroma[], 1107 double cursor_bw[], 1108 double cursor_bw_pre[], 1109 unsigned int NumberOfDPP[], 1110 double UrgentBurstFactorLuma[], 1111 double UrgentBurstFactorChroma[], 1112 double UrgentBurstFactorCursor[], 1113 double UrgentBurstFactorLumaPre[], 1114 double UrgentBurstFactorChromaPre[], 1115 double UrgentBurstFactorCursorPre[]); 1116 1117 void dml32_CalculateImmediateFlipBandwithSupport(unsigned int NumberOfActiveSurfaces, 1118 double ReturnBW, 1119 enum immediate_flip_requirement ImmediateFlipRequirement[], 1120 double final_flip_bw[], 1121 double ReadBandwidthLuma[], 1122 double ReadBandwidthChroma[], 1123 double PrefetchBandwidthLuma[], 1124 double PrefetchBandwidthChroma[], 1125 double cursor_bw[], 1126 double meta_row_bandwidth[], 1127 double dpte_row_bandwidth[], 1128 double cursor_bw_pre[], 1129 double prefetch_vmrow_bw[], 1130 unsigned int NumberOfDPP[], 1131 double UrgentBurstFactorLuma[], 1132 double UrgentBurstFactorChroma[], 1133 double UrgentBurstFactorCursor[], 1134 double UrgentBurstFactorLumaPre[], 1135 double UrgentBurstFactorChromaPre[], 1136 double UrgentBurstFactorCursorPre[], 1137 1138 /* output */ 1139 double *TotalBandwidth, 1140 double *FractionOfUrgentBandwidth, 1141 bool *ImmediateFlipBandwidthSupport); 1142 1143 #endif 1144