forked from Mirror/Ryujinx
a33dc2f491
* Logger class changes only Now compile-time checking is possible with the help of Nullable Value types. * Misc formatting * Manual optimizations PrintGuestLog PrintGuestStackTrace Surfaceflinger DequeueBuffer * Reduce SendVibrationXX log level to Debug * Add Notice log level This level is always enabled and used to print system info, etc... Also, rewrite LogColor to switch expression as colors are static * Unify unhandled exception event handlers * Print enabled LogLevels during init * Re-add App Exit disposes in proper order nit: switch case spacing * Revert PrintGuestStackTrace to Info logs due to #1407 PrintGuestStackTrace is now called in some critical error handlers so revert to old behavior as KThread isn't part of Guest. * Batch replace Logger statements
30 lines
No EOL
1.1 KiB
C#
30 lines
No EOL
1.1 KiB
C#
using Ryujinx.Common.Logging;
|
|
|
|
namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
|
|
{
|
|
static class PerformanceManager
|
|
{
|
|
public static long GetRequiredBufferSizeForPerformanceMetricsPerFrame(BehaviorInfo behaviorInfo, AudioRendererParameter parameters)
|
|
{
|
|
int performanceMetricsDataFormat = behaviorInfo.GetPerformanceMetricsDataFormat();
|
|
|
|
if (performanceMetricsDataFormat == 2)
|
|
{
|
|
return 24 * (parameters.VoiceCount +
|
|
parameters.EffectCount +
|
|
parameters.SubMixCount +
|
|
parameters.SinkCount + 1) + 0x990;
|
|
}
|
|
|
|
if (performanceMetricsDataFormat != 1)
|
|
{
|
|
Logger.Warning?.Print(LogClass.ServiceAudio, $"PerformanceMetricsDataFormat: {performanceMetricsDataFormat} is not supported!");
|
|
}
|
|
|
|
return (((parameters.VoiceCount +
|
|
parameters.EffectCount +
|
|
parameters.SubMixCount +
|
|
parameters.SinkCount + 1) << 32) >> 0x1C) + 0x658;
|
|
}
|
|
}
|
|
} |