Skip to content

Instantly share code, notes, and snippets.

@Subv
Created March 8, 2015 18:47
Show Gist options
  • Save Subv/8812c3c8d30fec0f789e to your computer and use it in GitHub Desktop.
Save Subv/8812c3c8d30fec0f789e to your computer and use it in GitHub Desktop.
#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