From 989e726f1a48235871ffd4e7f29a6b04330c8e5e Mon Sep 17 00:00:00 2001 From: red-prig Date: Sun, 9 Oct 2022 00:16:44 +0300 Subject: [PATCH] + --- kernel/ps4_libkernel.pas | 1 + kernel/ps4_time.pas | 10 ++++++++++ vulkan/vCmdBuffer.pas | 4 +++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/kernel/ps4_libkernel.pas b/kernel/ps4_libkernel.pas index 8a024197..e0e372df 100644 --- a/kernel/ps4_libkernel.pas +++ b/kernel/ps4_libkernel.pas @@ -1179,6 +1179,7 @@ begin lib^.set_proc($C92F14D931827B50,@ps4_nanosleep); lib^.set_proc($41CB5E4706EC9D5D,@ps4_usleep); lib^.set_proc($D637D72D15738AC7,@ps4_sceKernelUsleep); + lib^.set_proc($FD947E846EDA0C7C,@ps4_sceKernelSleep); lib^.set_proc($FE8E6E103A4DFA86,@ps4_sceKernelConvertUtcToLocaltime); lib^.set_proc($D0D4C737534A38D2,@ps4_sceKernelConvertLocaltimeToUtc); diff --git a/kernel/ps4_time.pas b/kernel/ps4_time.pas index 5d45482a..900fe5e1 100644 --- a/kernel/ps4_time.pas +++ b/kernel/ps4_time.pas @@ -52,6 +52,7 @@ function ps4_sceKernelGetProcessTimeCounter:QWORD; SysV_ABI_CDecl; //microsecond function ps4_nanosleep(req,rem:Ptimespec):Integer; SysV_ABI_CDecl; function ps4_usleep(usec:DWORD):Integer; SysV_ABI_CDecl; //microseconds function ps4_sceKernelUsleep(usec:DWORD):Integer; SysV_ABI_CDecl; //microseconds +function ps4_sceKernelSleep(sec:Integer):Integer; SysV_ABI_CDecl; type ptimesec=^timesec; @@ -475,6 +476,15 @@ begin Result:=0; end; +function ps4_sceKernelSleep(sec:Integer):Integer; SysV_ABI_CDecl; +var + ft:TLargeInteger; +begin + ft:=-(10000000*sec); //in 100ns + SwDelayExecution(False,@ft); + Result:=0; +end; + // function ps4_sceKernelConvertUtcToLocaltime(_time:time_t; diff --git a/vulkan/vCmdBuffer.pas b/vulkan/vCmdBuffer.pas index fd16e5a7..ed22f1f0 100644 --- a/vulkan/vCmdBuffer.pas +++ b/vulkan/vCmdBuffer.pas @@ -763,6 +763,8 @@ var begin if (Self=nil) then Exit; + byteCount:=byteCount and (not 3); //4 byte align + EndRenderPass; if (not BeginCmdBuffer) then Exit; @@ -784,7 +786,7 @@ begin vkCmdFillBuffer(cmdbuf, dstb.FHandle, dstb.Foffset, - byteCount div 4,src); + byteCount,src); if isBlocking then begin