Created
March 8, 2015 18:47
-
-
Save Subv/8812c3c8d30fec0f789e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <limits> | |
#include <string.h> | |
#include "output.h" | |
#include "common/scope_exit.h" | |
#include "common/string_funcs.h" | |
#include "tests/test.h" | |
#include "tests/gpu/memoryfills.h" | |
namespace GPU { | |
namespace MemoryFills { | |
static bool Fill24bits(u8* buffer) { | |
memset(buffer, 0, 0x400); | |
GX_SetMemoryFill(nullptr, (u32*)buffer, 0x00FFFFFF, (u32*)(buffer + 48), 0x201, (u32*)buffer, 0x00FFFFFF, (u32*)(buffer + 48), 0x201); | |
gspWaitForPSC0(); | |
TestEquals(+buffer[0], 0xFFu); | |
TestEquals(+buffer[1], 0xFFu); | |
TestEquals(+buffer[2], 0xFFu); | |
TestEquals(+buffer[3], 0xFFu); | |
TestEquals(+buffer[4], 0xFFu); | |
TestEquals(+buffer[5], 0xFFu); | |
TestEquals(+buffer[6], 0xFFu); | |
TestEquals(+buffer[7], 0xFFu); | |
TestEquals(+buffer[48], 0x00u); | |
TestEquals(+buffer[49], 0x00u); | |
TestEquals(+buffer[49], 0x00u); | |
memset(buffer, 0, 0x400); | |
GX_SetMemoryFill(nullptr, (u32*)buffer, 0x00FFFF, (u32*)(buffer + 48), 0x201, (u32*)buffer, 0x00FFFF, (u32*)(buffer + 48), 0x201); | |
gspWaitForPSC0(); | |
TestEquals(+buffer[0], 0xFFu); | |
TestEquals(+buffer[1], 0xFFu); | |
TestEquals(+buffer[2], 0x00u); | |
TestEquals(+buffer[3], 0xFFu); | |
TestEquals(+buffer[4], 0xFFu); | |
TestEquals(+buffer[5], 0x00u); | |
return true; | |
} | |
static bool Fill32bits(u8* buffer) { | |
memset(buffer, 0, 0x400); | |
GX_SetMemoryFill(nullptr, (u32*)buffer, 0x00FFFFFF, (u32*)(buffer + 48), 0x101, (u32*)buffer, 0x00FFFFFF, (u32*)(buffer + 48), 0x101); | |
gspWaitForPSC0(); | |
TestEquals(+buffer[0], 0xFFu); | |
TestEquals(+buffer[1], 0xFFu); | |
TestEquals(+buffer[2], 0xFFu); | |
TestEquals(+buffer[3], 0x00u); | |
TestEquals(+buffer[4], 0xFFu); | |
TestEquals(+buffer[5], 0xFFu); | |
TestEquals(+buffer[6], 0xFFu); | |
TestEquals(+buffer[7], 0x00u); | |
TestEquals(+buffer[48], 0x00u); | |
TestEquals(+buffer[49], 0x00u); | |
TestEquals(+buffer[49], 0x00u); | |
memset(buffer, 0, 0x400); | |
GX_SetMemoryFill(nullptr, (u32*)buffer, 0xFFFFFFFF, (u32*)(buffer + 48), 0x101, (u32*)buffer, 0xFFFFFFFF, (u32*)(buffer + 48), 0x101); | |
gspWaitForPSC0(); | |
TestEquals(+buffer[0], 0xFFu); | |
TestEquals(+buffer[1], 0xFFu); | |
TestEquals(+buffer[2], 0xFFu); | |
TestEquals(+buffer[3], 0xFFu); | |
return true; | |
} | |
void TestAll() { | |
const std::string tag = "MemoryFills"; | |
u8* buffer = (u8*)vramAlloc(0x400); | |
memset(buffer, 0, 0x400); | |
Test(tag, "Fill24bits", Fill24bits(buffer), true); | |
Test(tag, "Fill32bits", Fill32bits(buffer), true); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment