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