Now About Social Code
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLucas Fryzek <lucas.fryzek@fryzekconcepts.com>2024-08-06 21:09:46 +0100
committerLucas Fryzek <lucas.fryzek@fryzekconcepts.com>2024-08-06 21:09:46 +0100
commitb77021daaa375b0553ac78b0d8f46eca05ccf415 (patch)
tree1a2e073c51a1a6debadea52ee63cb41943434e4b /src
parentdeb35af5181d960c4334414981b8fd3e603a94b3 (diff)
wrap: Zero more buffers
Zero more buffers so its easier to figure out what needs to be copied and modified in the example driver to replay the dumped command buffer.
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++)