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 332 void dml32_CalculateSurfaceSizeInMall( 333 unsigned int NumberOfActiveSurfaces, 334 unsigned int MALLAllocatedForDCN, 335 enum dm_use_mall_for_static_screen_mode UseMALLForStaticScreen[], 336 bool DCCEnable[], 337 bool ViewportStationary[], 338 unsigned int ViewportXStartY[], 339 unsigned int ViewportYStartY[], 340 unsigned int ViewportXStartC[], 341 unsigned int ViewportYStartC[], 342 unsigned int ViewportWidthY[], 343 unsigned int ViewportHeightY[], 344 unsigned int BytesPerPixelY[], 345 unsigned int ViewportWidthC[], 346 unsigned int ViewportHeightC[], 347 unsigned int BytesPerPixelC[], 348 unsigned int SurfaceWidthY[], 349 unsigned int SurfaceWidthC[], 350 unsigned int SurfaceHeightY[], 351 unsigned int SurfaceHeightC[], 352 unsigned int Read256BytesBlockWidthY[], 353 unsigned int Read256BytesBlockWidthC[], 354 unsigned int Read256BytesBlockHeightY[], 355 unsigned int Read256BytesBlockHeightC[], 356 unsigned int ReadBlockWidthY[], 357 unsigned int ReadBlockWidthC[], 358 unsigned int ReadBlockHeightY[], 359 unsigned int ReadBlockHeightC[], 360 361 /* Output */ 362 unsigned int SurfaceSizeInMALL[], 363 bool *ExceededMALLSize); 364 365 void dml32_CalculateVMRowAndSwath( 366 unsigned int NumberOfActiveSurfaces, 367 DmlPipe myPipe[], 368 unsigned int SurfaceSizeInMALL[], 369 unsigned int PTEBufferSizeInRequestsLuma, 370 unsigned int PTEBufferSizeInRequestsChroma, 371 unsigned int DCCMetaBufferSizeBytes, 372 enum dm_use_mall_for_static_screen_mode UseMALLForStaticScreen[], 373 enum dm_use_mall_for_pstate_change_mode UseMALLForPStateChange[], 374 unsigned int MALLAllocatedForDCN, 375 double SwathWidthY[], 376 double SwathWidthC[], 377 bool GPUVMEnable, 378 bool HostVMEnable, 379 unsigned int HostVMMaxNonCachedPageTableLevels, 380 unsigned int GPUVMMaxPageTableLevels, 381 unsigned int GPUVMMinPageSizeKBytes[], 382 unsigned int HostVMMinPageSize, 383 384 /* Output */ 385 bool PTEBufferSizeNotExceeded[], 386 bool DCCMetaBufferSizeNotExceeded[], 387 unsigned int dpte_row_width_luma_ub[], 388 unsigned int dpte_row_width_chroma_ub[], 389 unsigned int dpte_row_height_luma[], 390 unsigned int dpte_row_height_chroma[], 391 unsigned int dpte_row_height_linear_luma[], // VBA_DELTA 392 unsigned int dpte_row_height_linear_chroma[], // VBA_DELTA 393 unsigned int meta_req_width[], 394 unsigned int meta_req_width_chroma[], 395 unsigned int meta_req_height[], 396 unsigned int meta_req_height_chroma[], 397 unsigned int meta_row_width[], 398 unsigned int meta_row_width_chroma[], 399 unsigned int meta_row_height[], 400 unsigned int meta_row_height_chroma[], 401 unsigned int vm_group_bytes[], 402 unsigned int dpte_group_bytes[], 403 unsigned int PixelPTEReqWidthY[], 404 unsigned int PixelPTEReqHeightY[], 405 unsigned int PTERequestSizeY[], 406 unsigned int PixelPTEReqWidthC[], 407 unsigned int PixelPTEReqHeightC[], 408 unsigned int PTERequestSizeC[], 409 unsigned int dpde0_bytes_per_frame_ub_l[], 410 unsigned int meta_pte_bytes_per_frame_ub_l[], 411 unsigned int dpde0_bytes_per_frame_ub_c[], 412 unsigned int meta_pte_bytes_per_frame_ub_c[], 413 double PrefetchSourceLinesY[], 414 double PrefetchSourceLinesC[], 415 double VInitPreFillY[], 416 double VInitPreFillC[], 417 unsigned int MaxNumSwathY[], 418 unsigned int MaxNumSwathC[], 419 double meta_row_bw[], 420 double dpte_row_bw[], 421 double PixelPTEBytesPerRow[], 422 double PDEAndMetaPTEBytesFrame[], 423 double MetaRowByte[], 424 bool use_one_row_for_frame[], 425 bool use_one_row_for_frame_flip[], 426 bool UsesMALLForStaticScreen[], 427 bool PTE_BUFFER_MODE[], 428 unsigned int BIGK_FRAGMENT_SIZE[]); 429 430 unsigned int dml32_CalculateVMAndRowBytes( 431 bool ViewportStationary, 432 bool DCCEnable, 433 unsigned int NumberOfDPPs, 434 unsigned int BlockHeight256Bytes, 435 unsigned int BlockWidth256Bytes, 436 enum source_format_class SourcePixelFormat, 437 unsigned int SurfaceTiling, 438 unsigned int BytePerPixel, 439 enum dm_rotation_angle SourceScan, 440 double SwathWidth, 441 unsigned int ViewportHeight, 442 unsigned int ViewportXStart, 443 unsigned int ViewportYStart, 444 bool GPUVMEnable, 445 bool HostVMEnable, 446 unsigned int HostVMMaxNonCachedPageTableLevels, 447 unsigned int GPUVMMaxPageTableLevels, 448 unsigned int GPUVMMinPageSizeKBytes, 449 unsigned int HostVMMinPageSize, 450 unsigned int PTEBufferSizeInRequests, 451 unsigned int Pitch, 452 unsigned int DCCMetaPitch, 453 unsigned int MacroTileWidth, 454 unsigned int MacroTileHeight, 455 456 /* Output */ 457 unsigned int *MetaRowByte, 458 unsigned int *PixelPTEBytesPerRow, 459 unsigned int *dpte_row_width_ub, 460 unsigned int *dpte_row_height, 461 unsigned int *dpte_row_height_linear, 462 unsigned int *PixelPTEBytesPerRow_one_row_per_frame, 463 unsigned int *dpte_row_width_ub_one_row_per_frame, 464 unsigned int *dpte_row_height_one_row_per_frame, 465 unsigned int *MetaRequestWidth, 466 unsigned int *MetaRequestHeight, 467 unsigned int *meta_row_width, 468 unsigned int *meta_row_height, 469 unsigned int *PixelPTEReqWidth, 470 unsigned int *PixelPTEReqHeight, 471 unsigned int *PTERequestSize, 472 unsigned int *DPDE0BytesFrame, 473 unsigned int *MetaPTEBytesFrame); 474 475 double dml32_CalculatePrefetchSourceLines( 476 double VRatio, 477 unsigned int VTaps, 478 bool Interlace, 479 bool ProgressiveToInterlaceUnitInOPP, 480 unsigned int SwathHeight, 481 enum dm_rotation_angle SourceRotation, 482 bool ViewportStationary, 483 double SwathWidth, 484 unsigned int ViewportHeight, 485 unsigned int ViewportXStart, 486 unsigned int ViewportYStart, 487 488 /* Output */ 489 double *VInitPreFill, 490 unsigned int *MaxNumSwath); 491 492 void dml32_CalculateMALLUseForStaticScreen( 493 unsigned int NumberOfActiveSurfaces, 494 unsigned int MALLAllocatedForDCNFinal, 495 enum dm_use_mall_for_static_screen_mode *UseMALLForStaticScreen, 496 unsigned int SurfaceSizeInMALL[], 497 bool one_row_per_frame_fits_in_buffer[], 498 499 /* output */ 500 bool UsesMALLForStaticScreen[]); 501 502 void dml32_CalculateRowBandwidth( 503 bool GPUVMEnable, 504 enum source_format_class SourcePixelFormat, 505 double VRatio, 506 double VRatioChroma, 507 bool DCCEnable, 508 double LineTime, 509 unsigned int MetaRowByteLuma, 510 unsigned int MetaRowByteChroma, 511 unsigned int meta_row_height_luma, 512 unsigned int meta_row_height_chroma, 513 unsigned int PixelPTEBytesPerRowLuma, 514 unsigned int PixelPTEBytesPerRowChroma, 515 unsigned int dpte_row_height_luma, 516 unsigned int dpte_row_height_chroma, 517 /* Output */ 518 double *meta_row_bw, 519 double *dpte_row_bw); 520 521 double dml32_CalculateUrgentLatency( 522 double UrgentLatencyPixelDataOnly, 523 double UrgentLatencyPixelMixedWithVMData, 524 double UrgentLatencyVMDataOnly, 525 bool DoUrgentLatencyAdjustment, 526 double UrgentLatencyAdjustmentFabricClockComponent, 527 double UrgentLatencyAdjustmentFabricClockReference, 528 double FabricClock); 529 530 void dml32_CalculateUrgentBurstFactor( 531 enum dm_use_mall_for_pstate_change_mode UseMALLForPStateChange, 532 unsigned int swath_width_luma_ub, 533 unsigned int swath_width_chroma_ub, 534 unsigned int SwathHeightY, 535 unsigned int SwathHeightC, 536 double LineTime, 537 double UrgentLatency, 538 double CursorBufferSize, 539 unsigned int CursorWidth, 540 unsigned int CursorBPP, 541 double VRatio, 542 double VRatioC, 543 double BytePerPixelInDETY, 544 double BytePerPixelInDETC, 545 unsigned int DETBufferSizeY, 546 unsigned int DETBufferSizeC, 547 /* Output */ 548 double *UrgentBurstFactorCursor, 549 double *UrgentBurstFactorLuma, 550 double *UrgentBurstFactorChroma, 551 bool *NotEnoughUrgentLatencyHiding); 552 553 void dml32_CalculateDCFCLKDeepSleep( 554 unsigned int NumberOfActiveSurfaces, 555 unsigned int BytePerPixelY[], 556 unsigned int BytePerPixelC[], 557 double VRatio[], 558 double VRatioChroma[], 559 double SwathWidthY[], 560 double SwathWidthC[], 561 unsigned int DPPPerSurface[], 562 double HRatio[], 563 double HRatioChroma[], 564 double PixelClock[], 565 double PSCL_THROUGHPUT[], 566 double PSCL_THROUGHPUT_CHROMA[], 567 double Dppclk[], 568 double ReadBandwidthLuma[], 569 double ReadBandwidthChroma[], 570 unsigned int ReturnBusWidth, 571 572 /* Output */ 573 double *DCFClkDeepSleep); 574 575 double dml32_CalculateWriteBackDelay( 576 enum source_format_class WritebackPixelFormat, 577 double WritebackHRatio, 578 double WritebackVRatio, 579 unsigned int WritebackVTaps, 580 unsigned int WritebackDestinationWidth, 581 unsigned int WritebackDestinationHeight, 582 unsigned int WritebackSourceHeight, 583 unsigned int HTotal); 584 585 void dml32_UseMinimumDCFCLK( 586 enum dm_use_mall_for_pstate_change_mode UseMALLForPStateChange[], 587 bool DRRDisplay[], 588 bool SynchronizeDRRDisplaysForUCLKPStateChangeFinal, 589 unsigned int MaxInterDCNTileRepeaters, 590 unsigned int MaxPrefetchMode, 591 double DRAMClockChangeLatencyFinal, 592 double FCLKChangeLatency, 593 double SREnterPlusExitTime, 594 unsigned int ReturnBusWidth, 595 unsigned int RoundTripPingLatencyCycles, 596 unsigned int ReorderingBytes, 597 unsigned int PixelChunkSizeInKByte, 598 unsigned int MetaChunkSize, 599 bool GPUVMEnable, 600 unsigned int GPUVMMaxPageTableLevels, 601 bool HostVMEnable, 602 unsigned int NumberOfActiveSurfaces, 603 double HostVMMinPageSize, 604 unsigned int HostVMMaxNonCachedPageTableLevels, 605 bool DynamicMetadataVMEnabled, 606 bool ImmediateFlipRequirement, 607 bool ProgressiveToInterlaceUnitInOPP, 608 double MaxAveragePercentOfIdealSDPPortBWDisplayCanUseInNormalSystemOperation, 609 double PercentOfIdealSDPPortBWReceivedAfterUrgLatency, 610 unsigned int VTotal[], 611 unsigned int VActive[], 612 unsigned int DynamicMetadataTransmittedBytes[], 613 unsigned int DynamicMetadataLinesBeforeActiveRequired[], 614 bool Interlace[], 615 double RequiredDPPCLKPerSurface[][2][DC__NUM_DPP__MAX], 616 double RequiredDISPCLK[][2], 617 double UrgLatency[], 618 unsigned int NoOfDPP[][2][DC__NUM_DPP__MAX], 619 double ProjectedDCFClkDeepSleep[][2], 620 double MaximumVStartup[][2][DC__NUM_DPP__MAX], 621 unsigned int TotalNumberOfActiveDPP[][2], 622 unsigned int TotalNumberOfDCCActiveDPP[][2], 623 unsigned int dpte_group_bytes[], 624 double PrefetchLinesY[][2][DC__NUM_DPP__MAX], 625 double PrefetchLinesC[][2][DC__NUM_DPP__MAX], 626 unsigned int swath_width_luma_ub_all_states[][2][DC__NUM_DPP__MAX], 627 unsigned int swath_width_chroma_ub_all_states[][2][DC__NUM_DPP__MAX], 628 unsigned int BytePerPixelY[], 629 unsigned int BytePerPixelC[], 630 unsigned int HTotal[], 631 double PixelClock[], 632 double PDEAndMetaPTEBytesPerFrame[][2][DC__NUM_DPP__MAX], 633 double DPTEBytesPerRow[][2][DC__NUM_DPP__MAX], 634 double MetaRowBytes[][2][DC__NUM_DPP__MAX], 635 bool DynamicMetadataEnable[], 636 double ReadBandwidthLuma[], 637 double ReadBandwidthChroma[], 638 double DCFCLKPerState[], 639 /* Output */ 640 double DCFCLKState[][2]); 641 642 unsigned int dml32_CalculateExtraLatencyBytes(unsigned int ReorderingBytes, 643 unsigned int TotalNumberOfActiveDPP, 644 unsigned int PixelChunkSizeInKByte, 645 unsigned int TotalNumberOfDCCActiveDPP, 646 unsigned int MetaChunkSize, 647 bool GPUVMEnable, 648 bool HostVMEnable, 649 unsigned int NumberOfActiveSurfaces, 650 unsigned int NumberOfDPP[], 651 unsigned int dpte_group_bytes[], 652 double HostVMInefficiencyFactor, 653 double HostVMMinPageSize, 654 unsigned int HostVMMaxNonCachedPageTableLevels); 655 656 void dml32_CalculateVUpdateAndDynamicMetadataParameters( 657 unsigned int MaxInterDCNTileRepeaters, 658 double Dppclk, 659 double Dispclk, 660 double DCFClkDeepSleep, 661 double PixelClock, 662 unsigned int HTotal, 663 unsigned int VBlank, 664 unsigned int DynamicMetadataTransmittedBytes, 665 unsigned int DynamicMetadataLinesBeforeActiveRequired, 666 unsigned int InterlaceEnable, 667 bool ProgressiveToInterlaceUnitInOPP, 668 double *TSetup, 669 double *Tdmbf, 670 double *Tdmec, 671 double *Tdmsks, 672 unsigned int *VUpdateOffsetPix, 673 double *VUpdateWidthPix, 674 double *VReadyOffsetPix); 675 676 double dml32_CalculateTWait( 677 unsigned int PrefetchMode, 678 enum dm_use_mall_for_pstate_change_mode UseMALLForPStateChange, 679 bool SynchronizeDRRDisplaysForUCLKPStateChangeFinal, 680 bool DRRDisplay, 681 double DRAMClockChangeLatency, 682 double FCLKChangeLatency, 683 double UrgentLatency, 684 double SREnterPlusExitTime); 685 686 double dml32_get_return_bw_mbps(const soc_bounding_box_st *soc, 687 const int VoltageLevel, 688 const bool HostVMEnable, 689 const double DCFCLK, 690 const double FabricClock, 691 const double DRAMSpeed); 692 693 double dml32_get_return_bw_mbps_vm_only(const soc_bounding_box_st *soc, 694 const int VoltageLevel, 695 const double DCFCLK, 696 const double FabricClock, 697 const double DRAMSpeed); 698 699 double dml32_CalculateExtraLatency( 700 unsigned int RoundTripPingLatencyCycles, 701 unsigned int ReorderingBytes, 702 double DCFCLK, 703 unsigned int TotalNumberOfActiveDPP, 704 unsigned int PixelChunkSizeInKByte, 705 unsigned int TotalNumberOfDCCActiveDPP, 706 unsigned int MetaChunkSize, 707 double ReturnBW, 708 bool GPUVMEnable, 709 bool HostVMEnable, 710 unsigned int NumberOfActiveSurfaces, 711 unsigned int NumberOfDPP[], 712 unsigned int dpte_group_bytes[], 713 double HostVMInefficiencyFactor, 714 double HostVMMinPageSize, 715 unsigned int HostVMMaxNonCachedPageTableLevels); 716 717 bool dml32_CalculatePrefetchSchedule( 718 struct vba_vars_st *v, 719 unsigned int k, 720 double HostVMInefficiencyFactor, 721 DmlPipe *myPipe, 722 unsigned int DSCDelay, 723 unsigned int DPP_RECOUT_WIDTH, 724 unsigned int VStartup, 725 unsigned int MaxVStartup, 726 double UrgentLatency, 727 double UrgentExtraLatency, 728 double TCalc, 729 unsigned int PDEAndMetaPTEBytesFrame, 730 unsigned int MetaRowByte, 731 unsigned int PixelPTEBytesPerRow, 732 double PrefetchSourceLinesY, 733 unsigned int SwathWidthY, 734 unsigned int VInitPreFillY, 735 unsigned int MaxNumSwathY, 736 double PrefetchSourceLinesC, 737 unsigned int SwathWidthC, 738 unsigned int VInitPreFillC, 739 unsigned int MaxNumSwathC, 740 unsigned int swath_width_luma_ub, 741 unsigned int swath_width_chroma_ub, 742 unsigned int SwathHeightY, 743 unsigned int SwathHeightC, 744 double TWait, 745 /* Output */ 746 double *DSTXAfterScaler, 747 double *DSTYAfterScaler, 748 double *DestinationLinesForPrefetch, 749 double *PrefetchBandwidth, 750 double *DestinationLinesToRequestVMInVBlank, 751 double *DestinationLinesToRequestRowInVBlank, 752 double *VRatioPrefetchY, 753 double *VRatioPrefetchC, 754 double *RequiredPrefetchPixDataBWLuma, 755 double *RequiredPrefetchPixDataBWChroma, 756 bool *NotEnoughTimeForDynamicMetadata, 757 double *Tno_bw, 758 double *prefetch_vmrow_bw, 759 double *Tdmdl_vm, 760 double *Tdmdl, 761 double *TSetup, 762 unsigned int *VUpdateOffsetPix, 763 double *VUpdateWidthPix, 764 double *VReadyOffsetPix); 765 766 void dml32_CalculateFlipSchedule( 767 double HostVMInefficiencyFactor, 768 double UrgentExtraLatency, 769 double UrgentLatency, 770 unsigned int GPUVMMaxPageTableLevels, 771 bool HostVMEnable, 772 unsigned int HostVMMaxNonCachedPageTableLevels, 773 bool GPUVMEnable, 774 double HostVMMinPageSize, 775 double PDEAndMetaPTEBytesPerFrame, 776 double MetaRowBytes, 777 double DPTEBytesPerRow, 778 double BandwidthAvailableForImmediateFlip, 779 unsigned int TotImmediateFlipBytes, 780 enum source_format_class SourcePixelFormat, 781 double LineTime, 782 double VRatio, 783 double VRatioChroma, 784 double Tno_bw, 785 bool DCCEnable, 786 unsigned int dpte_row_height, 787 unsigned int meta_row_height, 788 unsigned int dpte_row_height_chroma, 789 unsigned int meta_row_height_chroma, 790 bool use_one_row_for_frame_flip, 791 792 /* Output */ 793 double *DestinationLinesToRequestVMInImmediateFlip, 794 double *DestinationLinesToRequestRowInImmediateFlip, 795 double *final_flip_bw, 796 bool *ImmediateFlipSupportedForPipe); 797 798 void dml32_CalculateWatermarksMALLUseAndDRAMSpeedChangeSupport( 799 struct vba_vars_st *v, 800 unsigned int PrefetchMode, 801 double DCFCLK, 802 double ReturnBW, 803 SOCParametersList mmSOCParameters, 804 double SOCCLK, 805 double DCFClkDeepSleep, 806 unsigned int DETBufferSizeY[], 807 unsigned int DETBufferSizeC[], 808 unsigned int SwathHeightY[], 809 unsigned int SwathHeightC[], 810 double SwathWidthY[], 811 double SwathWidthC[], 812 unsigned int DPPPerSurface[], 813 double BytePerPixelDETY[], 814 double BytePerPixelDETC[], 815 double DSTXAfterScaler[], 816 double DSTYAfterScaler[], 817 bool UnboundedRequestEnabled, 818 unsigned int CompressedBufferSizeInkByte, 819 820 /* Output */ 821 enum clock_change_support *DRAMClockChangeSupport, 822 double MaxActiveDRAMClockChangeLatencySupported[], 823 unsigned int SubViewportLinesNeededInMALL[], 824 enum dm_fclock_change_support *FCLKChangeSupport, 825 double *MinActiveFCLKChangeLatencySupported, 826 bool *USRRetrainingSupport, 827 double ActiveDRAMClockChangeLatencyMargin[]); 828 829 double dml32_CalculateWriteBackDISPCLK( 830 enum source_format_class WritebackPixelFormat, 831 double PixelClock, 832 double WritebackHRatio, 833 double WritebackVRatio, 834 unsigned int WritebackHTaps, 835 unsigned int WritebackVTaps, 836 unsigned int WritebackSourceWidth, 837 unsigned int WritebackDestinationWidth, 838 unsigned int HTotal, 839 unsigned int WritebackLineBufferSize, 840 double DISPCLKDPPCLKVCOSpeed); 841 842 void dml32_CalculateMinAndMaxPrefetchMode( 843 enum dm_prefetch_modes AllowForPStateChangeOrStutterInVBlankFinal, 844 unsigned int *MinPrefetchMode, 845 unsigned int *MaxPrefetchMode); 846 847 void dml32_CalculatePixelDeliveryTimes( 848 unsigned int NumberOfActiveSurfaces, 849 double VRatio[], 850 double VRatioChroma[], 851 double VRatioPrefetchY[], 852 double VRatioPrefetchC[], 853 unsigned int swath_width_luma_ub[], 854 unsigned int swath_width_chroma_ub[], 855 unsigned int DPPPerSurface[], 856 double HRatio[], 857 double HRatioChroma[], 858 double PixelClock[], 859 double PSCL_THROUGHPUT[], 860 double PSCL_THROUGHPUT_CHROMA[], 861 double Dppclk[], 862 unsigned int BytePerPixelC[], 863 enum dm_rotation_angle SourceRotation[], 864 unsigned int NumberOfCursors[], 865 unsigned int CursorWidth[][DC__NUM_CURSOR__MAX], 866 unsigned int CursorBPP[][DC__NUM_CURSOR__MAX], 867 unsigned int BlockWidth256BytesY[], 868 unsigned int BlockHeight256BytesY[], 869 unsigned int BlockWidth256BytesC[], 870 unsigned int BlockHeight256BytesC[], 871 872 /* Output */ 873 double DisplayPipeLineDeliveryTimeLuma[], 874 double DisplayPipeLineDeliveryTimeChroma[], 875 double DisplayPipeLineDeliveryTimeLumaPrefetch[], 876 double DisplayPipeLineDeliveryTimeChromaPrefetch[], 877 double DisplayPipeRequestDeliveryTimeLuma[], 878 double DisplayPipeRequestDeliveryTimeChroma[], 879 double DisplayPipeRequestDeliveryTimeLumaPrefetch[], 880 double DisplayPipeRequestDeliveryTimeChromaPrefetch[], 881 double CursorRequestDeliveryTime[], 882 double CursorRequestDeliveryTimePrefetch[]); 883 884 void dml32_CalculateMetaAndPTETimes( 885 bool use_one_row_for_frame[], 886 unsigned int NumberOfActiveSurfaces, 887 bool GPUVMEnable, 888 unsigned int MetaChunkSize, 889 unsigned int MinMetaChunkSizeBytes, 890 unsigned int HTotal[], 891 double VRatio[], 892 double VRatioChroma[], 893 double DestinationLinesToRequestRowInVBlank[], 894 double DestinationLinesToRequestRowInImmediateFlip[], 895 bool DCCEnable[], 896 double PixelClock[], 897 unsigned int BytePerPixelY[], 898 unsigned int BytePerPixelC[], 899 enum dm_rotation_angle SourceRotation[], 900 unsigned int dpte_row_height[], 901 unsigned int dpte_row_height_chroma[], 902 unsigned int meta_row_width[], 903 unsigned int meta_row_width_chroma[], 904 unsigned int meta_row_height[], 905 unsigned int meta_row_height_chroma[], 906 unsigned int meta_req_width[], 907 unsigned int meta_req_width_chroma[], 908 unsigned int meta_req_height[], 909 unsigned int meta_req_height_chroma[], 910 unsigned int dpte_group_bytes[], 911 unsigned int PTERequestSizeY[], 912 unsigned int PTERequestSizeC[], 913 unsigned int PixelPTEReqWidthY[], 914 unsigned int PixelPTEReqHeightY[], 915 unsigned int PixelPTEReqWidthC[], 916 unsigned int PixelPTEReqHeightC[], 917 unsigned int dpte_row_width_luma_ub[], 918 unsigned int dpte_row_width_chroma_ub[], 919 920 /* Output */ 921 double DST_Y_PER_PTE_ROW_NOM_L[], 922 double DST_Y_PER_PTE_ROW_NOM_C[], 923 double DST_Y_PER_META_ROW_NOM_L[], 924 double DST_Y_PER_META_ROW_NOM_C[], 925 double TimePerMetaChunkNominal[], 926 double TimePerChromaMetaChunkNominal[], 927 double TimePerMetaChunkVBlank[], 928 double TimePerChromaMetaChunkVBlank[], 929 double TimePerMetaChunkFlip[], 930 double TimePerChromaMetaChunkFlip[], 931 double time_per_pte_group_nom_luma[], 932 double time_per_pte_group_vblank_luma[], 933 double time_per_pte_group_flip_luma[], 934 double time_per_pte_group_nom_chroma[], 935 double time_per_pte_group_vblank_chroma[], 936 double time_per_pte_group_flip_chroma[]); 937 938 void dml32_CalculateVMGroupAndRequestTimes( 939 unsigned int NumberOfActiveSurfaces, 940 bool GPUVMEnable, 941 unsigned int GPUVMMaxPageTableLevels, 942 unsigned int HTotal[], 943 unsigned int BytePerPixelC[], 944 double DestinationLinesToRequestVMInVBlank[], 945 double DestinationLinesToRequestVMInImmediateFlip[], 946 bool DCCEnable[], 947 double PixelClock[], 948 unsigned int dpte_row_width_luma_ub[], 949 unsigned int dpte_row_width_chroma_ub[], 950 unsigned int vm_group_bytes[], 951 unsigned int dpde0_bytes_per_frame_ub_l[], 952 unsigned int dpde0_bytes_per_frame_ub_c[], 953 unsigned int meta_pte_bytes_per_frame_ub_l[], 954 unsigned int meta_pte_bytes_per_frame_ub_c[], 955 956 /* Output */ 957 double TimePerVMGroupVBlank[], 958 double TimePerVMGroupFlip[], 959 double TimePerVMRequestVBlank[], 960 double TimePerVMRequestFlip[]); 961 962 void dml32_CalculateDCCConfiguration( 963 bool DCCEnabled, 964 bool DCCProgrammingAssumesScanDirectionUnknown, 965 enum source_format_class SourcePixelFormat, 966 unsigned int SurfaceWidthLuma, 967 unsigned int SurfaceWidthChroma, 968 unsigned int SurfaceHeightLuma, 969 unsigned int SurfaceHeightChroma, 970 unsigned int nomDETInKByte, 971 unsigned int RequestHeight256ByteLuma, 972 unsigned int RequestHeight256ByteChroma, 973 enum dm_swizzle_mode TilingFormat, 974 unsigned int BytePerPixelY, 975 unsigned int BytePerPixelC, 976 double BytePerPixelDETY, 977 double BytePerPixelDETC, 978 enum dm_rotation_angle SourceRotation, 979 /* Output */ 980 unsigned int *MaxUncompressedBlockLuma, 981 unsigned int *MaxUncompressedBlockChroma, 982 unsigned int *MaxCompressedBlockLuma, 983 unsigned int *MaxCompressedBlockChroma, 984 unsigned int *IndependentBlockLuma, 985 unsigned int *IndependentBlockChroma); 986 987 void dml32_CalculateStutterEfficiency( 988 unsigned int CompressedBufferSizeInkByte, 989 enum dm_use_mall_for_pstate_change_mode UseMALLForPStateChange[], 990 bool UnboundedRequestEnabled, 991 unsigned int MetaFIFOSizeInKEntries, 992 unsigned int ZeroSizeBufferEntries, 993 unsigned int PixelChunkSizeInKByte, 994 unsigned int NumberOfActiveSurfaces, 995 unsigned int ROBBufferSizeInKByte, 996 double TotalDataReadBandwidth, 997 double DCFCLK, 998 double ReturnBW, 999 unsigned int CompbufReservedSpace64B, 1000 unsigned int CompbufReservedSpaceZs, 1001 double SRExitTime, 1002 double SRExitZ8Time, 1003 bool SynchronizeTimingsFinal, 1004 unsigned int BlendingAndTiming[], 1005 double StutterEnterPlusExitWatermark, 1006 double Z8StutterEnterPlusExitWatermark, 1007 bool ProgressiveToInterlaceUnitInOPP, 1008 bool Interlace[], 1009 double MinTTUVBlank[], 1010 unsigned int DPPPerSurface[], 1011 unsigned int DETBufferSizeY[], 1012 unsigned int BytePerPixelY[], 1013 double BytePerPixelDETY[], 1014 double SwathWidthY[], 1015 unsigned int SwathHeightY[], 1016 unsigned int SwathHeightC[], 1017 double NetDCCRateLuma[], 1018 double NetDCCRateChroma[], 1019 double DCCFractionOfZeroSizeRequestsLuma[], 1020 double DCCFractionOfZeroSizeRequestsChroma[], 1021 unsigned int HTotal[], 1022 unsigned int VTotal[], 1023 double PixelClock[], 1024 double VRatio[], 1025 enum dm_rotation_angle SourceRotation[], 1026 unsigned int BlockHeight256BytesY[], 1027 unsigned int BlockWidth256BytesY[], 1028 unsigned int BlockHeight256BytesC[], 1029 unsigned int BlockWidth256BytesC[], 1030 unsigned int DCCYMaxUncompressedBlock[], 1031 unsigned int DCCCMaxUncompressedBlock[], 1032 unsigned int VActive[], 1033 bool DCCEnable[], 1034 bool WritebackEnable[], 1035 double ReadBandwidthSurfaceLuma[], 1036 double ReadBandwidthSurfaceChroma[], 1037 double meta_row_bw[], 1038 double dpte_row_bw[], 1039 1040 /* Output */ 1041 double *StutterEfficiencyNotIncludingVBlank, 1042 double *StutterEfficiency, 1043 unsigned int *NumberOfStutterBurstsPerFrame, 1044 double *Z8StutterEfficiencyNotIncludingVBlank, 1045 double *Z8StutterEfficiency, 1046 unsigned int *Z8NumberOfStutterBurstsPerFrame, 1047 double *StutterPeriod, 1048 bool *DCHUBBUB_ARB_CSTATE_MAX_CAP_MODE); 1049 1050 void dml32_CalculateMaxDETAndMinCompressedBufferSize( 1051 unsigned int ConfigReturnBufferSizeInKByte, 1052 unsigned int ROBBufferSizeInKByte, 1053 unsigned int MaxNumDPP, 1054 bool nomDETInKByteOverrideEnable, // VBA_DELTA, allow DV to override default DET size 1055 unsigned int nomDETInKByteOverrideValue, // VBA_DELTA 1056 1057 /* Output */ 1058 unsigned int *MaxTotalDETInKByte, 1059 unsigned int *nomDETInKByte, 1060 unsigned int *MinCompressedBufferSizeInKByte); 1061 1062 bool dml32_CalculateVActiveBandwithSupport(unsigned int NumberOfActiveSurfaces, 1063 double ReturnBW, 1064 bool NotUrgentLatencyHiding[], 1065 double ReadBandwidthLuma[], 1066 double ReadBandwidthChroma[], 1067 double cursor_bw[], 1068 double meta_row_bandwidth[], 1069 double dpte_row_bandwidth[], 1070 unsigned int NumberOfDPP[], 1071 double UrgentBurstFactorLuma[], 1072 double UrgentBurstFactorChroma[], 1073 double UrgentBurstFactorCursor[]); 1074 1075 void dml32_CalculatePrefetchBandwithSupport(unsigned int NumberOfActiveSurfaces, 1076 double ReturnBW, 1077 bool NotUrgentLatencyHiding[], 1078 double ReadBandwidthLuma[], 1079 double ReadBandwidthChroma[], 1080 double PrefetchBandwidthLuma[], 1081 double PrefetchBandwidthChroma[], 1082 double cursor_bw[], 1083 double meta_row_bandwidth[], 1084 double dpte_row_bandwidth[], 1085 double cursor_bw_pre[], 1086 double prefetch_vmrow_bw[], 1087 unsigned int NumberOfDPP[], 1088 double UrgentBurstFactorLuma[], 1089 double UrgentBurstFactorChroma[], 1090 double UrgentBurstFactorCursor[], 1091 double UrgentBurstFactorLumaPre[], 1092 double UrgentBurstFactorChromaPre[], 1093 double UrgentBurstFactorCursorPre[], 1094 1095 /* output */ 1096 double *PrefetchBandwidth, 1097 double *FractionOfUrgentBandwidth, 1098 bool *PrefetchBandwidthSupport); 1099 1100 double dml32_CalculateBandwidthAvailableForImmediateFlip(unsigned int NumberOfActiveSurfaces, 1101 double ReturnBW, 1102 double ReadBandwidthLuma[], 1103 double ReadBandwidthChroma[], 1104 double PrefetchBandwidthLuma[], 1105 double PrefetchBandwidthChroma[], 1106 double cursor_bw[], 1107 double cursor_bw_pre[], 1108 unsigned int NumberOfDPP[], 1109 double UrgentBurstFactorLuma[], 1110 double UrgentBurstFactorChroma[], 1111 double UrgentBurstFactorCursor[], 1112 double UrgentBurstFactorLumaPre[], 1113 double UrgentBurstFactorChromaPre[], 1114 double UrgentBurstFactorCursorPre[]); 1115 1116 void dml32_CalculateImmediateFlipBandwithSupport(unsigned int NumberOfActiveSurfaces, 1117 double ReturnBW, 1118 enum immediate_flip_requirement ImmediateFlipRequirement[], 1119 double final_flip_bw[], 1120 double ReadBandwidthLuma[], 1121 double ReadBandwidthChroma[], 1122 double PrefetchBandwidthLuma[], 1123 double PrefetchBandwidthChroma[], 1124 double cursor_bw[], 1125 double meta_row_bandwidth[], 1126 double dpte_row_bandwidth[], 1127 double cursor_bw_pre[], 1128 double prefetch_vmrow_bw[], 1129 unsigned int NumberOfDPP[], 1130 double UrgentBurstFactorLuma[], 1131 double UrgentBurstFactorChroma[], 1132 double UrgentBurstFactorCursor[], 1133 double UrgentBurstFactorLumaPre[], 1134 double UrgentBurstFactorChromaPre[], 1135 double UrgentBurstFactorCursorPre[], 1136 1137 /* output */ 1138 double *TotalBandwidth, 1139 double *FractionOfUrgentBandwidth, 1140 bool *ImmediateFlipBandwidthSupport); 1141 1142 #endif 1143