From 35e21f9a8c581aa162865edd4a7b320b6e885ee2 Mon Sep 17 00:00:00 2001 From: georgemoralis Date: Mon, 17 Jul 2023 13:39:00 +0300 Subject: [PATCH] more dummy GnmDriver function calls --- src/Core/PS4/HLE/LibSceGnmDriver.cpp | 62 ++++++++++++++++++++++++++-- src/Core/PS4/HLE/LibSceGnmDriver.h | 36 ++++++++++++++++ 2 files changed, 95 insertions(+), 3 deletions(-) diff --git a/src/Core/PS4/HLE/LibSceGnmDriver.cpp b/src/Core/PS4/HLE/LibSceGnmDriver.cpp index 542ec76e..e8be26a9 100644 --- a/src/Core/PS4/HLE/LibSceGnmDriver.cpp +++ b/src/Core/PS4/HLE/LibSceGnmDriver.cpp @@ -50,6 +50,63 @@ namespace HLE::Libs::LibSceGnmDriver { { return 0; } + void sceGnmDingDong(u32 ring_id, u32 offset_dw) + { + + } + bool sceRazorIsLoaded() + { return true;// hmm??? + } + int sceGnmDeleteEqEvent(/* SceKernelEqueue eq, EqEventType id*/) + { return 0; + } + int32_t sceGnmSubmitDone() + { return 0; + } + int /* MipStatsError*/ sceGnmDisableMipStatsReport() + { return 0; + } + int sceGnmSubmitAndFlipCommandBuffersForWorkload() + { return 0; + } + int sceGnmSubmitCommandBuffersForWorkload() + { return 0; + } + int /* WorkloadStatus*/ sceGnmDestroyWorkloadStream(/*WorkloadStream workloadStream*/) + { return 0; + } + void sceGnmDingDongForWorkload() + { + + } + void sceGnmDriverCaptureInProgress() {} + void sceGnmUnmapComputeQueue(){} + void sceGnmDriverTraceInProgress(){} + void sceGnmDriverTriggerCapture(){} + void sceGnmEndWorkload(){} + void sceGnmFlushGarlic(){} + void sceGnmGetEqEventType(){} + void sceGnmGetEqTimeStamp(){} + void sceGnmGetGpuBlockStatus(){} + void sceGnmGetGpuInfoStatus(){} + void sceGnmGetLastWaitedAddress(){} + void sceGnmGetNumTcaUnits(){} + void sceGnmGetOffChipTessellationBufferSize(){} + void sceGnmGetPhysicalCounterFromVirtualized(){} + void sceGnmGetProtectionFaultTimeStamp(){} + void sceGnmGetShaderProgramBaseAddress(){} + void sceGnmGetShaderStatus(){} + void sceGnmGetTheTessellationFactorRingBufferBaseAddress(){} + void sceGnmIsUserPaEnabled(){} + void sceGnmLogicalCuIndexToPhysicalCuIndex(){} + void sceGnmLogicalCuMaskToPhysicalCuMask(){} + void sceGnmMapComputeQueue(){} + void sceGnmMapComputeQueueWithPriority(){} + void sceRazorCaptureImmediate(){} + void sceGnmRequestFlipAndSubmitDone(){} + void sceGnmRequestFlipAndSubmitDoneForWorkload(){} + void sceGnmRequestMipStatsReportAndReset(){} + void LibSceGnmDriver_Register(SymbolsResolver* sym) { LIB_FUNCTION("b0xyllnVY-I", "libSceGnmDriver", 1, "libSceGnmDriver", 1, 1, sceGnmAddEqEvent); @@ -62,8 +119,7 @@ namespace HLE::Libs::LibSceGnmDriver { LIB_FUNCTION("+xuDhxlWRPg", "libSceGnmDriver", 1, "libSceGnmDriver", 1, 1, sceGnmSetupMipStatsReport); LIB_FUNCTION("zwY0YV91TTI", "libSceGnmDriver", 1, "libSceGnmDriver", 1, 1, sceGnmSubmitCommandBuffers); LIB_FUNCTION("xbxNatawohc", "libSceGnmDriver", 1, "libSceGnmDriver", 1, 1, sceGnmSubmitAndFlipCommandBuffers); - - /*LIB_FUNCTION("Ga6r7H6Y0RI", "libSceGnmDriver", 1, "libSceGnmDriver", 1, 1, sceGnmSubmitAndFlipCommandBuffersForWorkload); + LIB_FUNCTION("Ga6r7H6Y0RI", "libSceGnmDriver", 1, "libSceGnmDriver", 1, 1, sceGnmSubmitAndFlipCommandBuffersForWorkload); LIB_FUNCTION("f33OrruQYbM", "libSceGnmDriver", 1, "libSceGnmDriver", 1, 1, sceRazorIsLoaded); LIB_FUNCTION("jRcI8VcgTz4", "libSceGnmDriver", 1, "libSceGnmDriver", 1, 1, sceGnmSubmitCommandBuffersForWorkload); LIB_FUNCTION("PVT+fuoS9gU", "libSceGnmDriver", 1, "libSceGnmDriver", 1, 1, sceGnmDeleteEqEvent); @@ -98,7 +154,7 @@ namespace HLE::Libs::LibSceGnmDriver { LIB_FUNCTION("u9YKpRRHe-M", "libSceGnmDriver", 1, "libSceGnmDriver", 1, 1, sceRazorCaptureImmediate); LIB_FUNCTION("gObODli-OH8", "libSceGnmDriver", 1, "libSceGnmDriver", 1, 1, sceGnmRequestFlipAndSubmitDone); LIB_FUNCTION("6YRHhh5mHCs", "libSceGnmDriver", 1, "libSceGnmDriver", 1, 1, sceGnmRequestFlipAndSubmitDoneForWorkload); - LIB_FUNCTION("f85orjx7qts", "libSceGnmDriver", 1, "libSceGnmDriver", 1, 1, sceGnmRequestMipStatsReportAndReset);*/ + LIB_FUNCTION("f85orjx7qts", "libSceGnmDriver", 1, "libSceGnmDriver", 1, 1, sceGnmRequestMipStatsReportAndReset); } }; \ No newline at end of file diff --git a/src/Core/PS4/HLE/LibSceGnmDriver.h b/src/Core/PS4/HLE/LibSceGnmDriver.h index cd0a7d35..b4a640d1 100644 --- a/src/Core/PS4/HLE/LibSceGnmDriver.h +++ b/src/Core/PS4/HLE/LibSceGnmDriver.h @@ -19,4 +19,40 @@ int sceGnmSubmitCommandBuffers(uint32_t count, void* dcb_gpu_addrs[], const uint const uint32_t* ccb_sizes_in_bytes); int sceGnmSubmitAndFlipCommandBuffers(uint32_t count, void* dcb_gpu_addrs[], const uint32_t* dcb_sizes_in_bytes, void* ccb_gpu_addrs[], const uint32_t* ccb_sizes_in_bytes, int handle, int index, int flip_mode, int64_t flip_arg); +void sceGnmDingDong(u32 ring_id, u32 offset_dw); +bool sceRazorIsLoaded(); +int sceGnmDeleteEqEvent(/* SceKernelEqueue eq, EqEventType id*/); +int32_t sceGnmSubmitDone(); +int /* MipStatsError*/ sceGnmDisableMipStatsReport(); +int sceGnmSubmitAndFlipCommandBuffersForWorkload(); +int sceGnmSubmitCommandBuffersForWorkload(); +int /* WorkloadStatus*/ sceGnmDestroyWorkloadStream(/*WorkloadStream workloadStream*/); +void sceGnmDingDongForWorkload(); +void sceGnmDriverCaptureInProgress(); +void sceGnmUnmapComputeQueue(); +void sceGnmDriverTraceInProgress(); +void sceGnmDriverTriggerCapture(); +void sceGnmEndWorkload(); +void sceGnmFlushGarlic(); +void sceGnmGetEqEventType(); +void sceGnmGetEqTimeStamp(); +void sceGnmGetGpuBlockStatus(); +void sceGnmGetGpuInfoStatus(); +void sceGnmGetLastWaitedAddress(); +void sceGnmGetNumTcaUnits(); +void sceGnmGetOffChipTessellationBufferSize(); +void sceGnmGetPhysicalCounterFromVirtualized(); +void sceGnmGetProtectionFaultTimeStamp(); +void sceGnmGetShaderProgramBaseAddress(); +void sceGnmGetShaderStatus(); +void sceGnmGetTheTessellationFactorRingBufferBaseAddress(); +void sceGnmIsUserPaEnabled(); +void sceGnmLogicalCuIndexToPhysicalCuIndex(); +void sceGnmLogicalCuMaskToPhysicalCuMask(); +void sceGnmMapComputeQueue(); +void sceGnmMapComputeQueueWithPriority(); +void sceRazorCaptureImmediate(); +void sceGnmRequestFlipAndSubmitDone(); +void sceGnmRequestFlipAndSubmitDoneForWorkload(); +void sceGnmRequestMipStatsReportAndReset(); }; // namespace HLE::Libs::LibSceGnmDriver \ No newline at end of file