From 45dda65ce9fce1fdab505b3ff9b8455da0bf3404 Mon Sep 17 00:00:00 2001 From: Raul Tambre Date: Fri, 24 Jul 2015 17:53:26 +0300 Subject: [PATCH] Add NV4097_SET_TEX_COORD_CONTROL arguments Also added a TODO for _cellSpursLFQueueInitialize. --- rpcs3/Emu/RSX/RSXThread.cpp | 3 +++ rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp | 7 ++++--- rpcs3/Emu/SysCalls/Modules/cellSpurs.h | 4 ++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index 12f4ae9fd3..4c5b744757 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -344,6 +344,9 @@ void RSXThread::DoCmd(const u32 fcmd, const u32 cmd, const u32 args_addr, const case_range(16, NV4097_SET_TEX_COORD_CONTROL, 4); { LOG_WARNING(RSX, "TODO: NV4097_SET_TEX_COORD_CONTROL"); + const u32 a0 = ARGS(0); + u8 texMask2D = a0 & 1; + u8 texMaskCentroid = (a0 >> 4) & 1; break; } diff --git a/rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp b/rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp index 0d9d91ffa3..49520eede7 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp @@ -191,7 +191,7 @@ s32 cellSpursEventFlagGetTasksetAddress(vm::ptr eventFlag, v // // SPURS lock free queue functions // -s32 _cellSpursLFQueueInitialize(); +s32 _cellSpursLFQueueInitialize(vm::ptr pTasksetOrSpurs, vm::ptr pQueue, vm::cptr buffer, u32 size, u32 depth, u32 direction); s32 _cellSpursLFQueuePushBody(); s32 cellSpursLFQueueDetachLv2EventQueue(); s32 cellSpursLFQueueAttachLv2EventQueue(); @@ -3272,9 +3272,10 @@ s32 cellSpursEventFlagGetTasksetAddress(vm::ptr eventFlag, v return CELL_OK; } -s32 _cellSpursLFQueueInitialize() +s32 _cellSpursLFQueueInitialize(vm::ptr pTasksetOrSpurs, vm::ptr pQueue, vm::cptr buffer, u32 size, u32 depth, u32 direction) { - UNIMPLEMENTED_FUNC(cellSpurs); + cellSpurs.Todo("_cellSpursLFQueueInitialize(pTasksetOrSpurs=*0x%x, pQueue=*0x%x, buffer=*0x%x, size=0x%x, depth=0x%x, direction=%d)", pTasksetOrSpurs, pQueue, buffer, size, depth, direction); + return CELL_OK; } diff --git a/rpcs3/Emu/SysCalls/Modules/cellSpurs.h b/rpcs3/Emu/SysCalls/Modules/cellSpurs.h index ad05f23f9c..4bb4854482 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSpurs.h +++ b/rpcs3/Emu/SysCalls/Modules/cellSpurs.h @@ -1,5 +1,7 @@ #pragma once +#include "cellSync.h" + namespace vm { using namespace ps3; } struct CellSpurs; @@ -641,6 +643,8 @@ struct set_alignment(128) CellSpursEventFlag CHECK_SIZE_ALIGN(CellSpursEventFlag, 128, 128); +using CellSpursLFQueue = CellSyncLFQueue; + union CellSpursTaskArgument { be_t _u32[4];