fix adreno hooking

This commit is contained in:
Emmanuel Hansen 2023-07-23 13:02:40 +00:00
parent f8c1e745ca
commit 7d7e1ce639
4 changed files with 34 additions and 16 deletions

View File

@ -42,6 +42,9 @@ namespace LibRyujinx
[DllImport("libryujinxjni")]
internal extern static void setRenderingThread();
[DllImport("libryujinxjni")]
internal extern static void debug_break(int code);
[DllImport("libryujinxjni")]
internal extern static void onFrameEnd(double time);

View File

@ -3,6 +3,7 @@ using Silk.NET.Core.Contexts;
using Silk.NET.Vulkan;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
@ -43,7 +44,7 @@ namespace LibRyujinx
}
}
public Vk GetApi()
public unsafe Vk GetApi()
{
if (_loadedLibrary == IntPtr.Zero)
@ -57,6 +58,8 @@ namespace LibRyujinx
x =>
{
var xPtr = Marshal.StringToHGlobalAnsi(x);
byte* xp = (byte*)xPtr;
LibRyujinx.debug_break(0);
try
{
nint ptr = default;

View File

@ -19,6 +19,7 @@
#include "ryuijnx.h"
#include "pthread.h"
#include <chrono>
#include <csignal>
jmethodID _updateFrameTime;
JNIEnv* _rendererEnv = nullptr;
@ -218,3 +219,8 @@ Java_org_ryujinx_android_NativeHelpers_loadDriver(JNIEnv *env, jobject thiz,
return (jlong)handle;
}
extern "C"
void debug_break(int code){
int r = 0;
}

View File

@ -88,13 +88,16 @@ class GameHost(context: Context?, val controller: GameController, val mainViewMo
nativeInterop!!.SurfaceHandle = window
var driverViewModel = VulkanDriverViewModel(mainViewModel.activity);
driverViewModel.getAvailableDrivers()
var drivers = driverViewModel.getAvailableDrivers()
var driverHandle = 0L;
if(driverViewModel.selected.isNotEmpty()) {
var metaData = drivers.find { it.driverPath == driverViewModel.selected }
metaData?.apply {
var privatePath = mainViewModel.activity.filesDir;
var privateDriverPath = privatePath.absolutePath + "/driver/"
var privateDriverPath = privatePath.canonicalPath + "/driver/"
val pD = File(privateDriverPath)
if(pD.exists())
pD.deleteRecursively()
@ -108,7 +111,10 @@ class GameHost(context: Context?, val controller: GameController, val mainViewMo
continue
file.copyTo(File(privateDriverPath + file.name), true)
}
driverHandle = NativeHelpers().loadDriver(mainViewModel.activity.applicationInfo.nativeLibraryDir!! + "/", privateDriverPath, driver.name)
driverHandle = NativeHelpers().loadDriver(mainViewModel.activity.applicationInfo.nativeLibraryDir!! + "/", privateDriverPath, this.libraryName)
}
}
success = _nativeRyujinx.graphicsInitializeRenderer(