fix(libSceVideoOut): take 64-bit VRR peg arguments and test peg and unpeg
This commit is contained in:
parent
9021735022
commit
da642e807b
|
|
@ -26,6 +26,8 @@ int APS5_VABI sceVideoOutLatencyControlWaitBeforeInput(int handle);
|
|||
int APS5_VABI sceVideoOutLatencyMeasureSetStartPoint(int handle, uint32_t point);
|
||||
int APS5_VABI sceVideoOutColorSettingsSetGamma(VideoOutColorSettings* settings, float gamma);
|
||||
int APS5_VABI sceVideoOutAdjustColor(int handle, const VideoOutColorSettings* settings);
|
||||
int APS5_VABI sceVideoOutVrrPegToFixedRate(int handle, uint64_t arg1, uint64_t arg2);
|
||||
int APS5_VABI sceVideoOutVrrUnpegFromFixedRate(int handle);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include <cmath>
|
||||
|
||||
#include "SceTypes.hpp"
|
||||
#include "prx/libSceVideoOut/include/Output.hpp"
|
||||
#include "prx/libc/include/General.hpp"
|
||||
#include "prx/libSceVideoOut/include/VideoOutDriver.hpp"
|
||||
|
||||
|
|
@ -310,7 +311,7 @@ int APS5_VABI sceVideoOutVrrUnpegFromFixedRate(int handle) try {
|
|||
LibcAwaitExit_nid_postfix();
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutVrrPegToFixedRate(int handle, int32_t arg1, int32_t arg2) try {
|
||||
int APS5_VABI sceVideoOutVrrPegToFixedRate(int handle, uint64_t arg1, uint64_t arg2) try {
|
||||
if (VideoOutDriver::Get().GetConfig(handle) == nullptr) {
|
||||
throw std::runtime_error(std::string(__func__) + ": VIDEO_OUT_ERROR_INVALID_HANDLE");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -340,7 +340,15 @@ void testControls() {
|
|||
vrrStatus.ident = VIDEO_OUT_EVENT_VRR_STATUS;
|
||||
vrrStatus.filter = EVFILT_VIDEO_OUT;
|
||||
check(sceVideoOutGetEventId(&vrrStatus) == VIDEO_OUT_EVENT_VRR_STATUS, "VRR status event id rejected");
|
||||
check(sceVideoOutVrrPegToFixedRate(handle, 0, 0) == 0, "VRR peg on an open handle failed");
|
||||
check(sceVideoOutVrrUnpegFromFixedRate(handle) == 0, "VRR unpeg on an open handle failed");
|
||||
expectFailure([&] { sceVideoOutVrrPegToFixedRate(handle, 1, 0); });
|
||||
expectFailure([&] { sceVideoOutVrrPegToFixedRate(handle, 0, 1); });
|
||||
expectFailure([&] { sceVideoOutVrrPegToFixedRate(handle, 0x100000000ull, 0); });
|
||||
expectFailure([&] { sceVideoOutVrrPegToFixedRate(handle, 0, 0x100000000ull); });
|
||||
sceVideoOutClose(handle);
|
||||
expectFailure([&] { sceVideoOutVrrPegToFixedRate(handle, 0, 0); });
|
||||
expectFailure([&] { sceVideoOutVrrUnpegFromFixedRate(handle); });
|
||||
check(owner->GetTriggeredEvents(&event, 1) == 0, "closed port retained pending events");
|
||||
check(sceKernelDeleteEqueue(queue) == 0, "event queue deletion failed");
|
||||
LibcRunShutdown_nid_postfix();
|
||||
|
|
|
|||
Loading…
Reference in New Issue