| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 |
- using NUnit.Framework;
- using Ryujinx.Audio.Renderer.Server;
- namespace Ryujinx.Tests.Audio.Renderer.Server
- {
- public class BehaviourContextTests
- {
- [Test]
- public void TestCheckFeature()
- {
- int latestRevision = BehaviourContext.BaseRevisionMagic + BehaviourContext.LastRevision;
- int previousRevision = BehaviourContext.BaseRevisionMagic + (BehaviourContext.LastRevision - 1);
- int invalidRevision = BehaviourContext.BaseRevisionMagic + (BehaviourContext.LastRevision + 1);
- Assert.IsTrue(BehaviourContext.CheckFeatureSupported(latestRevision, latestRevision));
- Assert.IsFalse(BehaviourContext.CheckFeatureSupported(previousRevision, latestRevision));
- Assert.IsTrue(BehaviourContext.CheckFeatureSupported(latestRevision, previousRevision));
- // In case we get an invalid revision, this is supposed to auto default to REV1 internally.. idk what the hell Nintendo was thinking here..
- Assert.IsTrue(BehaviourContext.CheckFeatureSupported(invalidRevision, latestRevision));
- }
- [Test]
- public void TestsMemoryPoolForceMappingEnabled()
- {
- BehaviourContext behaviourContext = new BehaviourContext();
- behaviourContext.SetUserRevision(BehaviourContext.BaseRevisionMagic + BehaviourContext.Revision1);
- Assert.IsFalse(behaviourContext.IsMemoryPoolForceMappingEnabled());
- behaviourContext.UpdateFlags(0x1);
- Assert.IsTrue(behaviourContext.IsMemoryPoolForceMappingEnabled());
- }
- [Test]
- public void TestRevision1()
- {
- BehaviourContext behaviourContext = new BehaviourContext();
- behaviourContext.SetUserRevision(BehaviourContext.BaseRevisionMagic + BehaviourContext.Revision1);
- Assert.IsFalse(behaviourContext.IsAdpcmLoopContextBugFixed());
- Assert.IsFalse(behaviourContext.IsSplitterSupported());
- Assert.IsFalse(behaviourContext.IsLongSizePreDelaySupported());
- Assert.IsFalse(behaviourContext.IsAudioUsbDeviceOutputSupported());
- Assert.IsFalse(behaviourContext.IsFlushVoiceWaveBuffersSupported());
- Assert.IsFalse(behaviourContext.IsSplitterBugFixed());
- Assert.IsFalse(behaviourContext.IsElapsedFrameCountSupported());
- Assert.IsFalse(behaviourContext.IsDecodingBehaviourFlagSupported());
- Assert.IsFalse(behaviourContext.IsBiquadFilterEffectStateClearBugFixed());
- Assert.IsFalse(behaviourContext.IsMixInParameterDirtyOnlyUpdateSupported());
- Assert.IsFalse(behaviourContext.IsWaveBufferVersion2Supported());
- Assert.IsFalse(behaviourContext.IsEffectInfoVersion2Supported());
- Assert.IsFalse(behaviourContext.IsBiquadFilterGroupedOptimizationSupported());
- Assert.AreEqual(0.70f, behaviourContext.GetAudioRendererProcessingTimeLimit());
- Assert.AreEqual(1, behaviourContext.GetCommandProcessingTimeEstimatorVersion());
- Assert.AreEqual(1, behaviourContext.GetPerformanceMetricsDataFormat());
- }
- [Test]
- public void TestRevision2()
- {
- BehaviourContext behaviourContext = new BehaviourContext();
- behaviourContext.SetUserRevision(BehaviourContext.BaseRevisionMagic + BehaviourContext.Revision2);
- Assert.IsTrue(behaviourContext.IsAdpcmLoopContextBugFixed());
- Assert.IsTrue(behaviourContext.IsSplitterSupported());
- Assert.IsFalse(behaviourContext.IsLongSizePreDelaySupported());
- Assert.IsFalse(behaviourContext.IsAudioUsbDeviceOutputSupported());
- Assert.IsFalse(behaviourContext.IsFlushVoiceWaveBuffersSupported());
- Assert.IsFalse(behaviourContext.IsSplitterBugFixed());
- Assert.IsFalse(behaviourContext.IsElapsedFrameCountSupported());
- Assert.IsFalse(behaviourContext.IsDecodingBehaviourFlagSupported());
- Assert.IsFalse(behaviourContext.IsBiquadFilterEffectStateClearBugFixed());
- Assert.IsFalse(behaviourContext.IsMixInParameterDirtyOnlyUpdateSupported());
- Assert.IsFalse(behaviourContext.IsWaveBufferVersion2Supported());
- Assert.IsFalse(behaviourContext.IsEffectInfoVersion2Supported());
- Assert.IsFalse(behaviourContext.IsBiquadFilterGroupedOptimizationSupported());
- Assert.AreEqual(0.70f, behaviourContext.GetAudioRendererProcessingTimeLimit());
- Assert.AreEqual(1, behaviourContext.GetCommandProcessingTimeEstimatorVersion());
- Assert.AreEqual(1, behaviourContext.GetPerformanceMetricsDataFormat());
- }
- [Test]
- public void TestRevision3()
- {
- BehaviourContext behaviourContext = new BehaviourContext();
- behaviourContext.SetUserRevision(BehaviourContext.BaseRevisionMagic + BehaviourContext.Revision3);
- Assert.IsTrue(behaviourContext.IsAdpcmLoopContextBugFixed());
- Assert.IsTrue(behaviourContext.IsSplitterSupported());
- Assert.IsTrue(behaviourContext.IsLongSizePreDelaySupported());
- Assert.IsFalse(behaviourContext.IsAudioUsbDeviceOutputSupported());
- Assert.IsFalse(behaviourContext.IsFlushVoiceWaveBuffersSupported());
- Assert.IsFalse(behaviourContext.IsSplitterBugFixed());
- Assert.IsFalse(behaviourContext.IsElapsedFrameCountSupported());
- Assert.IsFalse(behaviourContext.IsDecodingBehaviourFlagSupported());
- Assert.IsFalse(behaviourContext.IsBiquadFilterEffectStateClearBugFixed());
- Assert.IsFalse(behaviourContext.IsMixInParameterDirtyOnlyUpdateSupported());
- Assert.IsFalse(behaviourContext.IsWaveBufferVersion2Supported());
- Assert.IsFalse(behaviourContext.IsEffectInfoVersion2Supported());
- Assert.IsFalse(behaviourContext.IsBiquadFilterGroupedOptimizationSupported());
- Assert.AreEqual(0.70f, behaviourContext.GetAudioRendererProcessingTimeLimit());
- Assert.AreEqual(1, behaviourContext.GetCommandProcessingTimeEstimatorVersion());
- Assert.AreEqual(1, behaviourContext.GetPerformanceMetricsDataFormat());
- }
- [Test]
- public void TestRevision4()
- {
- BehaviourContext behaviourContext = new BehaviourContext();
- behaviourContext.SetUserRevision(BehaviourContext.BaseRevisionMagic + BehaviourContext.Revision4);
- Assert.IsTrue(behaviourContext.IsAdpcmLoopContextBugFixed());
- Assert.IsTrue(behaviourContext.IsSplitterSupported());
- Assert.IsTrue(behaviourContext.IsLongSizePreDelaySupported());
- Assert.IsTrue(behaviourContext.IsAudioUsbDeviceOutputSupported());
- Assert.IsFalse(behaviourContext.IsFlushVoiceWaveBuffersSupported());
- Assert.IsFalse(behaviourContext.IsSplitterBugFixed());
- Assert.IsFalse(behaviourContext.IsElapsedFrameCountSupported());
- Assert.IsFalse(behaviourContext.IsDecodingBehaviourFlagSupported());
- Assert.IsFalse(behaviourContext.IsBiquadFilterEffectStateClearBugFixed());
- Assert.IsFalse(behaviourContext.IsMixInParameterDirtyOnlyUpdateSupported());
- Assert.IsFalse(behaviourContext.IsWaveBufferVersion2Supported());
- Assert.IsFalse(behaviourContext.IsEffectInfoVersion2Supported());
- Assert.IsFalse(behaviourContext.IsBiquadFilterGroupedOptimizationSupported());
- Assert.AreEqual(0.75f, behaviourContext.GetAudioRendererProcessingTimeLimit());
- Assert.AreEqual(1, behaviourContext.GetCommandProcessingTimeEstimatorVersion());
- Assert.AreEqual(1, behaviourContext.GetPerformanceMetricsDataFormat());
- }
- [Test]
- public void TestRevision5()
- {
- BehaviourContext behaviourContext = new BehaviourContext();
- behaviourContext.SetUserRevision(BehaviourContext.BaseRevisionMagic + BehaviourContext.Revision5);
- Assert.IsTrue(behaviourContext.IsAdpcmLoopContextBugFixed());
- Assert.IsTrue(behaviourContext.IsSplitterSupported());
- Assert.IsTrue(behaviourContext.IsLongSizePreDelaySupported());
- Assert.IsTrue(behaviourContext.IsAudioUsbDeviceOutputSupported());
- Assert.IsTrue(behaviourContext.IsFlushVoiceWaveBuffersSupported());
- Assert.IsTrue(behaviourContext.IsSplitterBugFixed());
- Assert.IsTrue(behaviourContext.IsElapsedFrameCountSupported());
- Assert.IsTrue(behaviourContext.IsDecodingBehaviourFlagSupported());
- Assert.IsFalse(behaviourContext.IsBiquadFilterEffectStateClearBugFixed());
- Assert.IsFalse(behaviourContext.IsMixInParameterDirtyOnlyUpdateSupported());
- Assert.IsFalse(behaviourContext.IsWaveBufferVersion2Supported());
- Assert.IsFalse(behaviourContext.IsEffectInfoVersion2Supported());
- Assert.IsFalse(behaviourContext.IsBiquadFilterGroupedOptimizationSupported());
- Assert.AreEqual(0.80f, behaviourContext.GetAudioRendererProcessingTimeLimit());
- Assert.AreEqual(2, behaviourContext.GetCommandProcessingTimeEstimatorVersion());
- Assert.AreEqual(2, behaviourContext.GetPerformanceMetricsDataFormat());
- }
- [Test]
- public void TestRevision6()
- {
- BehaviourContext behaviourContext = new BehaviourContext();
- behaviourContext.SetUserRevision(BehaviourContext.BaseRevisionMagic + BehaviourContext.Revision6);
- Assert.IsTrue(behaviourContext.IsAdpcmLoopContextBugFixed());
- Assert.IsTrue(behaviourContext.IsSplitterSupported());
- Assert.IsTrue(behaviourContext.IsLongSizePreDelaySupported());
- Assert.IsTrue(behaviourContext.IsAudioUsbDeviceOutputSupported());
- Assert.IsTrue(behaviourContext.IsFlushVoiceWaveBuffersSupported());
- Assert.IsTrue(behaviourContext.IsSplitterBugFixed());
- Assert.IsTrue(behaviourContext.IsElapsedFrameCountSupported());
- Assert.IsTrue(behaviourContext.IsDecodingBehaviourFlagSupported());
- Assert.IsTrue(behaviourContext.IsBiquadFilterEffectStateClearBugFixed());
- Assert.IsFalse(behaviourContext.IsMixInParameterDirtyOnlyUpdateSupported());
- Assert.IsFalse(behaviourContext.IsWaveBufferVersion2Supported());
- Assert.IsFalse(behaviourContext.IsEffectInfoVersion2Supported());
- Assert.IsFalse(behaviourContext.IsBiquadFilterGroupedOptimizationSupported());
- Assert.AreEqual(0.80f, behaviourContext.GetAudioRendererProcessingTimeLimit());
- Assert.AreEqual(2, behaviourContext.GetCommandProcessingTimeEstimatorVersion());
- Assert.AreEqual(2, behaviourContext.GetPerformanceMetricsDataFormat());
- }
- [Test]
- public void TestRevision7()
- {
- BehaviourContext behaviourContext = new BehaviourContext();
- behaviourContext.SetUserRevision(BehaviourContext.BaseRevisionMagic + BehaviourContext.Revision7);
- Assert.IsTrue(behaviourContext.IsAdpcmLoopContextBugFixed());
- Assert.IsTrue(behaviourContext.IsSplitterSupported());
- Assert.IsTrue(behaviourContext.IsLongSizePreDelaySupported());
- Assert.IsTrue(behaviourContext.IsAudioUsbDeviceOutputSupported());
- Assert.IsTrue(behaviourContext.IsFlushVoiceWaveBuffersSupported());
- Assert.IsTrue(behaviourContext.IsSplitterBugFixed());
- Assert.IsTrue(behaviourContext.IsElapsedFrameCountSupported());
- Assert.IsTrue(behaviourContext.IsDecodingBehaviourFlagSupported());
- Assert.IsTrue(behaviourContext.IsBiquadFilterEffectStateClearBugFixed());
- Assert.IsTrue(behaviourContext.IsMixInParameterDirtyOnlyUpdateSupported());
- Assert.IsFalse(behaviourContext.IsWaveBufferVersion2Supported());
- Assert.IsFalse(behaviourContext.IsEffectInfoVersion2Supported());
- Assert.IsFalse(behaviourContext.IsBiquadFilterGroupedOptimizationSupported());
- Assert.AreEqual(0.80f, behaviourContext.GetAudioRendererProcessingTimeLimit());
- Assert.AreEqual(2, behaviourContext.GetCommandProcessingTimeEstimatorVersion());
- Assert.AreEqual(2, behaviourContext.GetPerformanceMetricsDataFormat());
- }
- [Test]
- public void TestRevision8()
- {
- BehaviourContext behaviourContext = new BehaviourContext();
- behaviourContext.SetUserRevision(BehaviourContext.BaseRevisionMagic + BehaviourContext.Revision8);
- Assert.IsTrue(behaviourContext.IsAdpcmLoopContextBugFixed());
- Assert.IsTrue(behaviourContext.IsSplitterSupported());
- Assert.IsTrue(behaviourContext.IsLongSizePreDelaySupported());
- Assert.IsTrue(behaviourContext.IsAudioUsbDeviceOutputSupported());
- Assert.IsTrue(behaviourContext.IsFlushVoiceWaveBuffersSupported());
- Assert.IsTrue(behaviourContext.IsSplitterBugFixed());
- Assert.IsTrue(behaviourContext.IsElapsedFrameCountSupported());
- Assert.IsTrue(behaviourContext.IsDecodingBehaviourFlagSupported());
- Assert.IsTrue(behaviourContext.IsBiquadFilterEffectStateClearBugFixed());
- Assert.IsTrue(behaviourContext.IsMixInParameterDirtyOnlyUpdateSupported());
- Assert.IsTrue(behaviourContext.IsWaveBufferVersion2Supported());
- Assert.IsFalse(behaviourContext.IsEffectInfoVersion2Supported());
- Assert.IsFalse(behaviourContext.IsBiquadFilterGroupedOptimizationSupported());
- Assert.AreEqual(0.80f, behaviourContext.GetAudioRendererProcessingTimeLimit());
- Assert.AreEqual(3, behaviourContext.GetCommandProcessingTimeEstimatorVersion());
- Assert.AreEqual(2, behaviourContext.GetPerformanceMetricsDataFormat());
- }
- [Test]
- public void TestRevision9()
- {
- BehaviourContext behaviourContext = new BehaviourContext();
- behaviourContext.SetUserRevision(BehaviourContext.BaseRevisionMagic + BehaviourContext.Revision9);
- Assert.IsTrue(behaviourContext.IsAdpcmLoopContextBugFixed());
- Assert.IsTrue(behaviourContext.IsSplitterSupported());
- Assert.IsTrue(behaviourContext.IsLongSizePreDelaySupported());
- Assert.IsTrue(behaviourContext.IsAudioUsbDeviceOutputSupported());
- Assert.IsTrue(behaviourContext.IsFlushVoiceWaveBuffersSupported());
- Assert.IsTrue(behaviourContext.IsSplitterBugFixed());
- Assert.IsTrue(behaviourContext.IsElapsedFrameCountSupported());
- Assert.IsTrue(behaviourContext.IsDecodingBehaviourFlagSupported());
- Assert.IsTrue(behaviourContext.IsBiquadFilterEffectStateClearBugFixed());
- Assert.IsTrue(behaviourContext.IsMixInParameterDirtyOnlyUpdateSupported());
- Assert.IsTrue(behaviourContext.IsWaveBufferVersion2Supported());
- Assert.IsTrue(behaviourContext.IsEffectInfoVersion2Supported());
- Assert.IsFalse(behaviourContext.IsBiquadFilterGroupedOptimizationSupported());
- Assert.AreEqual(0.80f, behaviourContext.GetAudioRendererProcessingTimeLimit());
- Assert.AreEqual(3, behaviourContext.GetCommandProcessingTimeEstimatorVersion());
- Assert.AreEqual(2, behaviourContext.GetPerformanceMetricsDataFormat());
- }
- [Test]
- public void TestRevision10()
- {
- BehaviourContext behaviourContext = new BehaviourContext();
- behaviourContext.SetUserRevision(BehaviourContext.BaseRevisionMagic + BehaviourContext.Revision10);
- Assert.IsTrue(behaviourContext.IsAdpcmLoopContextBugFixed());
- Assert.IsTrue(behaviourContext.IsSplitterSupported());
- Assert.IsTrue(behaviourContext.IsLongSizePreDelaySupported());
- Assert.IsTrue(behaviourContext.IsAudioUsbDeviceOutputSupported());
- Assert.IsTrue(behaviourContext.IsFlushVoiceWaveBuffersSupported());
- Assert.IsTrue(behaviourContext.IsSplitterBugFixed());
- Assert.IsTrue(behaviourContext.IsElapsedFrameCountSupported());
- Assert.IsTrue(behaviourContext.IsDecodingBehaviourFlagSupported());
- Assert.IsTrue(behaviourContext.IsBiquadFilterEffectStateClearBugFixed());
- Assert.IsTrue(behaviourContext.IsMixInParameterDirtyOnlyUpdateSupported());
- Assert.IsTrue(behaviourContext.IsWaveBufferVersion2Supported());
- Assert.IsTrue(behaviourContext.IsEffectInfoVersion2Supported());
- Assert.IsTrue(behaviourContext.IsBiquadFilterGroupedOptimizationSupported());
- Assert.AreEqual(0.80f, behaviourContext.GetAudioRendererProcessingTimeLimit());
- Assert.AreEqual(4, behaviourContext.GetCommandProcessingTimeEstimatorVersion());
- Assert.AreEqual(2, behaviourContext.GetPerformanceMetricsDataFormat());
- }
- }
- }
|