Now About Social Code
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/drv.c12
-rw-r--r--src/wrap.c7
2 files changed, 11 insertions, 8 deletions
diff --git a/src/drv.c b/src/drv.c
index a2b8c84..e4d74f5 100644
--- a/src/drv.c
+++ b/src/drv.c
@@ -370,12 +370,12 @@ static void register_hw_render_ctx(struct driver_state *state) {
0x21,
0x1,
0x0,
- state->ccb_buffer.sClientMemInfo.sDevVAddr.uiAddr,
- state->kernel_buffer_2.sClientMemInfo.sDevVAddr.uiAddr,
+ state->ccb_buffer.sClientMemInfo.sDevVAddr.uiAddr, // Not all zeros
+ state->kernel_buffer_2.sClientMemInfo.sDevVAddr.uiAddr, // All zeros
0x0,
- state->kernel_buffer_3.sClientMemInfo.sDevVAddr.uiAddr,
- state->perctx_3d_buffer.sClientMemInfo.sDevVAddr.uiAddr,
- state->ta_data_buffer.sClientMemInfo.sDevVAddr.uiAddr,
+ state->kernel_buffer_3.sClientMemInfo.sDevVAddr.uiAddr, // All zeros
+ state->perctx_3d_buffer.sClientMemInfo.sDevVAddr.uiAddr, // All zeros
+ state->ta_data_buffer.sClientMemInfo.sDevVAddr.uiAddr, // All zeros
0x0,
0x0,
0x0,
@@ -384,7 +384,7 @@ static void register_hw_render_ctx(struct driver_state *state) {
0x0,
0x0,
0x0,
- 0x50f,
+ 0x50f, // This value seems to change but I'm not sure why
};
PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_RENDER_CONTEXT in = {
.hDevCookie = state->dev_cookie,
diff --git a/src/wrap.c b/src/wrap.c
index 6b96f36..01ae2a3 100644
--- a/src/wrap.c
+++ b/src/wrap.c
@@ -212,9 +212,12 @@ static void clear_mem(struct mem_entry *mem) {
|| heap == PVR_HEAP_GENERAL
//|| heap == PVR_HEAP_KERNEL_DATA
|| heap == PVR_HEAP_PERCONTEXT_3DPARAMETERS
- || heap == PVR_HEAP_SYNC_INFO;
+ || heap == PVR_HEAP_SYNC_INFO
+ || heap == PVR_HEAP_TA_DATA;
IMG_HANDLE handle = mem->mem_info.hKernelMemInfo;
- bool is_special_heap = (uintptr_t)handle == 0x14;
+ bool is_special_heap = (uintptr_t)handle == 0x14 ||
+ (uintptr_t)handle == 0x15 ||
+ (uintptr_t)handle == 0x10;
if(mem->type == MEM_TYPE_NORMAL && (valid_heap || is_special_heap)) {
printf("Clearing heap\n");
for (int i = 0; i < 2; i++)