Deprecate C3D_SafeXYZ functions & replace them with C3D_SyncXYZ

This commit is contained in:
fincs 2017-11-12 14:25:03 +01:00
parent b59cdc3c7c
commit 8f3fda7986
3 changed files with 66 additions and 12 deletions

View File

@ -72,6 +72,10 @@ static inline void C3D_RenderTargetClear(C3D_RenderTarget* target, C3D_ClearBits
C3D_FrameBufClear(&target->frameBuf, clearBits, clearColor, clearDepth);
}
void C3D_SafeDisplayTransfer(u32* inadr, u32 indim, u32* outadr, u32 outdim, u32 flags);
void C3D_SafeTextureCopy(u32* inadr, u32 indim, u32* outadr, u32 outdim, u32 size, u32 flags);
void C3D_SafeMemoryFill(u32* buf0a, u32 buf0v, u32* buf0e, u16 control0, u32* buf1a, u32 buf1v, u32* buf1e, u16 control1);
C3D_DEPRECATED void C3D_SafeDisplayTransfer(u32* inadr, u32 indim, u32* outadr, u32 outdim, u32 flags);
C3D_DEPRECATED void C3D_SafeTextureCopy(u32* inadr, u32 indim, u32* outadr, u32 outdim, u32 size, u32 flags);
C3D_DEPRECATED void C3D_SafeMemoryFill(u32* buf0a, u32 buf0v, u32* buf0e, u16 control0, u32* buf1a, u32 buf1v, u32* buf1e, u16 control1);
void C3D_SyncDisplayTransfer(u32* inadr, u32 indim, u32* outadr, u32 outdim, u32 flags);
void C3D_SyncTextureCopy(u32* inadr, u32 indim, u32* outadr, u32 outdim, u32 size, u32 flags);
void C3D_SyncMemoryFill(u32* buf0a, u32 buf0v, u32* buf0e, u16 control0, u32* buf1a, u32 buf1v, u32* buf1e, u16 control1);

View File

@ -435,7 +435,7 @@ void C3D_RenderTargetSetOutput(C3D_RenderTarget* target, gfxScreen_t screen, gfx
target->side = side;
}
void C3D_SafeDisplayTransfer(u32* inadr, u32 indim, u32* outadr, u32 outdim, u32 flags)
static void C3Di_SafeDisplayTransfer(u32* inadr, u32 indim, u32* outadr, u32 outdim, u32 flags)
{
C3Di_WaitAndClearQueue(-1);
inSafeTransfer = true;
@ -443,7 +443,7 @@ void C3D_SafeDisplayTransfer(u32* inadr, u32 indim, u32* outadr, u32 outdim, u32
gxCmdQueueRun(&C3Di_GetContext()->gxQueue);
}
void C3D_SafeTextureCopy(u32* inadr, u32 indim, u32* outadr, u32 outdim, u32 size, u32 flags)
static void C3Di_SafeTextureCopy(u32* inadr, u32 indim, u32* outadr, u32 outdim, u32 size, u32 flags)
{
C3Di_WaitAndClearQueue(-1);
inSafeTransfer = true;
@ -451,10 +451,64 @@ void C3D_SafeTextureCopy(u32* inadr, u32 indim, u32* outadr, u32 outdim, u32 siz
gxCmdQueueRun(&C3Di_GetContext()->gxQueue);
}
void C3D_SafeMemoryFill(u32* buf0a, u32 buf0v, u32* buf0e, u16 control0, u32* buf1a, u32 buf1v, u32* buf1e, u16 control1)
static void C3Di_SafeMemoryFill(u32* buf0a, u32 buf0v, u32* buf0e, u16 control0, u32* buf1a, u32 buf1v, u32* buf1e, u16 control1)
{
C3Di_WaitAndClearQueue(-1);
inSafeTransfer = true;
GX_MemoryFill(buf0a, buf0v, buf0e, control0, buf1a, buf1v, buf1e, control1);
gxCmdQueueRun(&C3Di_GetContext()->gxQueue);
}
void C3D_SafeDisplayTransfer(u32* inadr, u32 indim, u32* outadr, u32 outdim, u32 flags)
{
C3Di_SafeDisplayTransfer(inadr, indim, outadr, outdim, flags);
}
void C3D_SafeTextureCopy(u32* inadr, u32 indim, u32* outadr, u32 outdim, u32 size, u32 flags)
{
C3Di_SafeTextureCopy(inadr, indim, outadr, outdim, size, flags);
}
void C3D_SafeMemoryFill(u32* buf0a, u32 buf0v, u32* buf0e, u16 control0, u32* buf1a, u32 buf1v, u32* buf1e, u16 control1)
{
C3Di_SafeMemoryFill(buf0a, buf0v, buf0e, control0, buf1a, buf1v, buf1e, control1);
}
void C3D_SyncDisplayTransfer(u32* inadr, u32 indim, u32* outadr, u32 outdim, u32 flags)
{
if (inFrame)
{
C3D_FrameSplit(0);
GX_DisplayTransfer(inadr, indim, outadr, outdim, flags);
} else
{
C3Di_SafeDisplayTransfer(inadr, indim, outadr, outdim, flags);
gspWaitForPPF();
}
}
void C3D_SyncTextureCopy(u32* inadr, u32 indim, u32* outadr, u32 outdim, u32 size, u32 flags)
{
if (inFrame)
{
C3D_FrameSplit(0);
GX_TextureCopy(inadr, indim, outadr, outdim, size, flags);
} else
{
C3Di_SafeTextureCopy(inadr, indim, outadr, outdim, size, flags);
gspWaitForPPF();
}
}
void C3D_SyncMemoryFill(u32* buf0a, u32 buf0v, u32* buf0e, u16 control0, u32* buf1a, u32 buf1v, u32* buf1e, u16 control1)
{
if (inFrame)
{
C3D_FrameSplit(0);
GX_MemoryFill(buf0a, buf0v, buf0e, control0, buf1a, buf1v, buf1e, control1);
} else
{
C3Di_SafeMemoryFill(buf0a, buf0v, buf0e, control0, buf1a, buf1v, buf1e, control1);
gspWaitForPSC0();
}
}

View File

@ -125,10 +125,7 @@ void C3D_TexLoadImage(C3D_Tex* tex, const void* data, GPU_TEXFACE face, int leve
if (!addrIsVRAM(out))
memcpy(out, data, size);
else
{
C3D_SafeTextureCopy((u32*)data, 0, (u32*)out, 0, size, 8);
gspWaitForPPF();
}
C3D_SyncTextureCopy((u32*)data, 0, (u32*)out, 0, size, 8);
}
static void C3Di_DownscaleRGBA8(u32* dst, const u32* src[4])
@ -187,11 +184,10 @@ void C3D_TexGenerateMipmap(C3D_Tex* tex, GPU_TEXFACE face)
u32 dst_height = src_height>>1;
/* Doesn't work due to size restriction bullshit
C3D_SafeDisplayTransfer(
C3D_SyncDisplayTransfer(
(u32*)src, GX_BUFFER_DIM(src_width,src_height),
(u32*)dst, GX_BUFFER_DIM(dst_width,dst_height),
transfer_flags);
gspWaitForPPF();
*/
u32 i,j;