As titles says,
- Essentially pbkit sets up GPU timer using GPU clock.
- This fails when the clock is not stock.
- Overclocking will change GPU PLL freq.
- PBKit expects a fixed value.
- Mismatches and fails.
Potential fix:
- Get rid of "must equal stock PLL" expectation.
- Read actual GPU Clock, validate and calculate PTIMER_NUMERATOR from real GPU Clock.
Read GPU Clock from HW Regs > calculate this > Program timer based off this.
Failure path:
Use a check to make sure PLL calcs are correct for calculating timer else have a failure path.
EDIT:
Looking further into this, keeping the current denominator fixed at 7629 while solving for the numerator based off gpu clock would provide a fix, we could solve for the numerator by potentially rounding((GPU_Clock * DENOM) / Timer Target), giving us the correct figure on overclocked systems.
As titles says,
Potential fix:
Read GPU Clock from HW Regs > calculate this > Program timer based off this.
Failure path:
Use a check to make sure PLL calcs are correct for calculating timer else have a failure path.
EDIT:
Looking further into this, keeping the current denominator fixed at 7629 while solving for the numerator based off gpu clock would provide a fix, we could solve for the numerator by potentially rounding((GPU_Clock * DENOM) / Timer Target), giving us the correct figure on overclocked systems.