diff --git a/repos/ports/lib/mk/virtualbox5-common.inc b/repos/ports/lib/mk/virtualbox5-common.inc index d098c808a1..c7a88e43b5 100644 --- a/repos/ports/lib/mk/virtualbox5-common.inc +++ b/repos/ports/lib/mk/virtualbox5-common.inc @@ -62,7 +62,7 @@ VBOX_CC_OPT += -DVBOX_WITH_GUEST_PROPS VIRTUALBOX_VERSION_MAJOR := $(shell cat $(VIRTUALBOX_DIR)/Config.kmk 2>/dev/null | grep "VBOX_VERSION_MAJOR = " | grep -v "'VBOX_VERSION_MAJOR" | sed "s/^.*= //") VIRTUALBOX_VERSION_MINOR := $(shell cat $(VIRTUALBOX_DIR)/Config.kmk 2>/dev/null | grep "VBOX_VERSION_MINOR = " | grep -v "'VBOX_VERSION_MINOR" | sed "s/^.*= //") -VIRTUALBOX_VERSION_BUILD := $(shell cat $(VIRTUALBOX_DIR)/Config.kmk 2>/dev/null | grep "VBOX_VERSION_BUILD = " | grep -v "'VBOX_VERSION_BUILD" | sed "s/^.*= //") +VIRTUALBOX_VERSION_BUILD := $(shell cat $(VIRTUALBOX_DIR)/Config.kmk 2>/dev/null | grep "VBOX_VERSION_BUILD = " | grep -v "'VBOX_VERSION_BUILD" | sed "s/^.*= *//") ifeq ($(VBOX_MACH),x86_32) VIRTUALBOX_PACKAGE_STRING = GenodeOS_32BIT_GENERIC diff --git a/repos/ports/lib/mk/virtualbox5-devices.mk b/repos/ports/lib/mk/virtualbox5-devices.mk index efef2dcb24..ece8c50ee8 100644 --- a/repos/ports/lib/mk/virtualbox5-devices.mk +++ b/repos/ports/lib/mk/virtualbox5-devices.mk @@ -51,6 +51,7 @@ SRC_CC += Devices/Audio/DevHDA.cpp SRC_CC += Devices/Audio/DevIchAc97.cpp SRC_CC += Devices/Audio/DrvAudioCommon.cpp SRC_CC += Devices/Audio/HDACodec.cpp +SRC_CC += Devices/Audio/HDAStreamPeriod.cpp SRC_CC += Devices/USB/DevOHCI.cpp SRC_CC += Devices/USB/USBProxyDevice.cpp SRC_CC += Devices/USB/VUSBBufferedPipe.cpp diff --git a/repos/ports/ports/virtualbox5.hash b/repos/ports/ports/virtualbox5.hash index 2f6645fd92..464811e63a 100644 --- a/repos/ports/ports/virtualbox5.hash +++ b/repos/ports/ports/virtualbox5.hash @@ -1 +1 @@ -585d9e845521cbdc189dbc37f7639b9d3428c125 +8866cdf82e328b96fea75a7c7798b24d42f4257e diff --git a/repos/ports/ports/virtualbox5.port b/repos/ports/ports/virtualbox5.port index 5ccaf42870..c42946bfdf 100644 --- a/repos/ports/ports/virtualbox5.port +++ b/repos/ports/ports/virtualbox5.port @@ -1,17 +1,17 @@ LICENSE := GPLv2 -VERSION := 5.1.22 +VERSION := 5.1.24 DOWNLOADS := virtualbox.archive virtualbox_sdk.archive VIRTUALBOX_TBZ2 := VirtualBox-$(VERSION).tar.bz2 -VIRTUALBOX_SDK_ZIP := VirtualBoxSDK-$(VERSION)-115126.zip +VIRTUALBOX_SDK_ZIP := VirtualBoxSDK-$(VERSION)-117012.zip URL(virtualbox) := http://download.virtualbox.org/virtualbox/$(VERSION)/$(VIRTUALBOX_TBZ2) DIR(virtualbox) := src/app/virtualbox -SHA(virtualbox) := 57e6f73f62af7d5ddb670972ba0417b6fcb43950 +SHA(virtualbox) := ed7d807ac89455517ec2c32cf83e931b16b2b4b8 URL(virtualbox_sdk) := http://download.virtualbox.org/virtualbox/$(VERSION)/$(VIRTUALBOX_SDK_ZIP) DIR(virtualbox_sdk) := src/app/virtualbox_sdk -SHA(virtualbox_sdk) := 21b45da69214b32cf7f7115ef53e0c1d77ae2434 +SHA(virtualbox_sdk) := 1cb99cb6f24dd17e7ff2ea2f1e079f41e5d99293 PATCHES_DIR := src/virtualbox5/patches PATCHES_DIR_VBOX4 := src/virtualbox/patches diff --git a/repos/ports/src/virtualbox5/audio.cc b/repos/ports/src/virtualbox5/audio.cc index f40f66217a..9b3fee334e 100644 --- a/repos/ports/src/virtualbox5/audio.cc +++ b/repos/ports/src/virtualbox5/audio.cc @@ -146,7 +146,7 @@ static uint32_t write_samples(GenodeVoiceOut *out, Audio_out::Connection * const c = &*out->audio[0]; /* samples in byte available for sending out */ - uint32_t samples = RT_MIN(AudioMixBufAvail(mixer_buf), + uint32_t samples = RT_MIN(AudioMixBufLive(mixer_buf), OUT_SAMPLES - out->sample_pos); uint32_t written_samples = 0; @@ -211,7 +211,7 @@ static uint32_t write_samples(GenodeVoiceOut *out, } /* check for additional samples */ - samples = RT_MIN(AudioMixBufAvail(mixer_buf), + samples = RT_MIN(AudioMixBufLive(mixer_buf), OUT_SAMPLES - out->sample_pos); } diff --git a/repos/ports/src/virtualbox5/patches/audio.patch b/repos/ports/src/virtualbox5/patches/audio.patch new file mode 100644 index 0000000000..ba0643606d --- /dev/null +++ b/repos/ports/src/virtualbox5/patches/audio.patch @@ -0,0 +1,48 @@ +--- a/src/app/virtualbox/src/VBox/Devices/Audio/HDAStreamPeriod.cpp ++++ b/src/app/virtualbox/src/VBox/Devices/Audio/HDAStreamPeriod.cpp +@@ -167,7 +167,9 @@ + */ + void hdaStreamPeriodEnd(PHDASTREAMPERIOD pPeriod) + { ++#ifdef DEBUG + Log3Func(("[SD%RU8] Took %zuus\n", pPeriod->u8SD, (RTTimeNanoTS() - pPeriod->Dbg.tsStartNs) / 1000)); ++#endif + + if (!(pPeriod->fStatus & HDASTREAMPERIOD_FLAG_ACTIVE)) + return; +--- a/src/app/virtualbox/src/VBox/Devices/Audio/DrvAudio.cpp ++++ b/src/app/virtualbox/src/VBox/Devices/Audio/DrvAudio.cpp +@@ -1584,8 +1584,10 @@ + #endif + uint32_t cbAvail = AUDIOMIXBUF_S2B(&pHstStrmOut->MixBuf, AudioMixBufUsed(&pHstStrmOut->MixBuf)); + ++#ifdef DEBUG + Log2Func(("[%s] %RU64ms (%zu bytes) elapsed, %zu bytes available\n", + pHstStrmOut->MixBuf.pszName, tsLastPlayedDeltaMs, cbElapsed, cbAvail)); ++#endif + + if (!cbAvail) /* Nothing to play back? Skip. */ + continue; +--- a/src/app/virtualbox/src/VBox/Devices/Audio/DevHDA.cpp ++++ b/src/app/virtualbox/src/VBox/Devices/Audio/DevHDA.cpp +@@ -1273,9 +1273,9 @@ + pszSource, tsAssertedElapsedNs / 1000, + avgAssertedUs, + (pThis->Dbg.IRQ.tsDeassertedNs - pThis->Dbg.IRQ.tsAssertedNs) / 1000)); +-#endif + Log3Func(("Asserted (%s): %RU64us between alternation (WALCLK=%RU64)\n", + pszSource, tsLastElapsedNs / 1000, pThis->u64WalClk)); ++#endif + + PDMDevHlpPCISetIrq(pThis->CTX_SUFF(pDevIns), 0, 1 /* Assert */); + pThis->u8IRQL = 1; +@@ -4021,7 +4021,9 @@ + uint32_t csPerPeriod = (int)((strmProps.cChannels * cTicksElapsed * 48000 /* Hz */ + cTicksPerSec) / cTicksPerSec / 2); + uint32_t cbPerPeriod = csPerPeriod << strmProps.cShift; + ++#ifdef DEBUG + Log3Func(("[SD%RU8] %RU64ms (%zu samples, %zu bytes) elapsed\n", pStream->u8SD, cMsElapsed, csPerPeriod, cbPerPeriod)); ++#endif + + return cbPerPeriod; + } diff --git a/repos/ports/src/virtualbox5/patches/series b/repos/ports/src/virtualbox5/patches/series index b559af1b29..93c48641fa 100644 --- a/repos/ports/src/virtualbox5/patches/series +++ b/repos/ports/src/virtualbox5/patches/series @@ -11,3 +11,4 @@ vm.patch mm.patch substr.patch vusburb.patch +audio.patch diff --git a/repos/ports/src/virtualbox5/sup.cc b/repos/ports/src/virtualbox5/sup.cc index e3bc7bf9f2..f4c241c6ea 100644 --- a/repos/ports/src/virtualbox5/sup.cc +++ b/repos/ports/src/virtualbox5/sup.cc @@ -212,6 +212,11 @@ SUPR3DECL(int) SUPR3PageFreeEx(void *pvPages, size_t cPages) } +int SUPR3QueryMicrocodeRev(uint32_t *puMicrocodeRev) +{ + return E_FAIL; +} + uint32_t SUPSemEventMultiGetResolution(PSUPDRVSESSION) { return 100000*10; /* called by 'vmR3HaltGlobal1Init' */