Also disable the GPU JIT tests on ARM64, not applicable

This commit is contained in:
Henrik Rydgård 2024-04-29 11:13:35 +02:00
parent 431a30b9c8
commit 8397fd6791
9 changed files with 48 additions and 30 deletions

View File

@ -542,3 +542,31 @@ std::string CPUInfo::Summarize() {
} }
#endif // PPSSPP_ARCH(X86) || PPSSPP_ARCH(AMD64) #endif // PPSSPP_ARCH(X86) || PPSSPP_ARCH(AMD64)
const char *GetCompilerABI() {
#if PPSSPP_ARCH(ARMV7)
return "armeabi-v7a";
#elif PPSSPP_ARCH(ARM)
return "armeabi";
#elif PPSSPP_ARCH(ARM64)
return "arm64";
#elif PPSSPP_ARCH(X86)
return "x86";
#elif PPSSPP_ARCH(AMD64)
return "x86-64";
#elif PPSSPP_ARCH(RISCV64)
//https://github.com/riscv/riscv-toolchain-conventions#cc-preprocessor-definitions
//https://github.com/riscv/riscv-c-api-doc/blob/master/riscv-c-api.md#abi-related-preprocessor-definitions
#if defined(__riscv_float_abi_single)
return "lp64f";
#elif defined(__riscv_float_abi_double)
return "lp64d";
#elif defined(__riscv_float_abi_quad)
return "lp64q";
#elif defined(__riscv_float_abi_soft)
return "lp64";
#endif
#else
return "other";
#endif
}

View File

@ -161,3 +161,5 @@ private:
}; };
extern CPUInfo cpu_info; extern CPUInfo cpu_info;
const char *GetCompilerABI();

View File

@ -181,6 +181,7 @@ NearestFunc SamplerJitCache::GetByID(const SamplerID &id, size_t key, BinManager
} }
if (!binner) { if (!binner) {
printf("No binner, can't compile\n");
// Can't compile, let's try to do it later when there's an opportunity. // Can't compile, let's try to do it later when there's an opportunity.
compileQueue_.insert(id); compileQueue_.insert(id);
return nullptr; return nullptr;

View File

@ -2,6 +2,7 @@
#include "Common/GPU/thin3d.h" #include "Common/GPU/thin3d.h"
#include "Common/System/System.h" #include "Common/System/System.h"
#include "Common/Data/Text/I18n.h" #include "Common/Data/Text/I18n.h"
#include "Common/CPUDetect.h"
#include "Core/MIPS/MIPS.h" #include "Core/MIPS/MIPS.h"
#include "Core/HW/Display.h" #include "Core/HW/Display.h"
#include "Core/FrameTiming.h" #include "Core/FrameTiming.h"

View File

@ -452,34 +452,6 @@ UI::EventReturn JitDebugScreen::OnDisableAll(UI::EventParams &e) {
return UI::EVENT_DONE; return UI::EVENT_DONE;
} }
const char *GetCompilerABI() {
#if PPSSPP_ARCH(ARMV7)
return "armeabi-v7a";
#elif PPSSPP_ARCH(ARM)
return "armeabi";
#elif PPSSPP_ARCH(ARM64)
return "arm64";
#elif PPSSPP_ARCH(X86)
return "x86";
#elif PPSSPP_ARCH(AMD64)
return "x86-64";
#elif PPSSPP_ARCH(RISCV64)
//https://github.com/riscv/riscv-toolchain-conventions#cc-preprocessor-definitions
//https://github.com/riscv/riscv-c-api-doc/blob/master/riscv-c-api.md#abi-related-preprocessor-definitions
#if defined(__riscv_float_abi_single)
return "lp64f";
#elif defined(__riscv_float_abi_double)
return "lp64d";
#elif defined(__riscv_float_abi_quad)
return "lp64q";
#elif defined(__riscv_float_abi_soft)
return "lp64";
#endif
#else
return "other";
#endif
}
void SystemInfoScreen::update() { void SystemInfoScreen::update() {
TabbedUIDialogScreenWithGameBackground::update(); TabbedUIDialogScreenWithGameBackground::update();
g_OSD.NudgeSidebar(); g_OSD.NudgeSidebar();

View File

@ -264,6 +264,5 @@ protected:
}; };
void DrawProfile(UIContext &ui); void DrawProfile(UIContext &ui);
const char *GetCompilerABI();
void AddOverlayList(UI::ViewGroup *items, ScreenManager *screenManager); void AddOverlayList(UI::ViewGroup *items, ScreenManager *screenManager);

View File

@ -282,7 +282,7 @@ bool TestArm64Emitter() {
emitter.EORI2R(X1, X3, 0x3F0000003F0, INVALID_REG); emitter.EORI2R(X1, X3, 0x3F0000003F0, INVALID_REG);
RET(CheckLast(emitter, "d21c1461 eor x1, x3, #0x3f0000003f0")); RET(CheckLast(emitter, "d21c1461 eor x1, x3, #0x3f0000003f0"));
printf("yay!\n"); printf("ARM64 emitter test completed!\n");
//emitter.ANDI2R(W1, W3, 0xFF00FF00FF00FF00ULL, INVALID_REG); //emitter.ANDI2R(W1, W3, 0xFF00FF00FF00FF00ULL, INVALID_REG);
//RET(CheckLast(emitter, "00000000 and x1, x3, 0xFF00FF00FF00FF00")); //RET(CheckLast(emitter, "00000000 and x1, x3, 0xFF00FF00FF00FF00"));

View File

@ -24,6 +24,7 @@
#include "GPU/Software/SoftGpu.h" #include "GPU/Software/SoftGpu.h"
static bool TestSamplerJit() { static bool TestSamplerJit() {
#if PPSSPP_ARCH(AMD64)
using namespace Sampler; using namespace Sampler;
SamplerJitCache *cache = new SamplerJitCache(); SamplerJitCache *cache = new SamplerJitCache();
BinManager binner; BinManager binner;
@ -108,9 +109,14 @@ static bool TestSamplerJit() {
delete cache; delete cache;
return successes == count && !HitAnyAsserts(); return successes == count && !HitAnyAsserts();
#else
// Don't test sampler jit, not supported.
return true;
#endif
} }
static bool TestPixelJit() { static bool TestPixelJit() {
#if PPSSPP_ARCH(AMD64)
using namespace Rasterizer; using namespace Rasterizer;
PixelJitCache *cache = new PixelJitCache(); PixelJitCache *cache = new PixelJitCache();
BinManager binner; BinManager binner;
@ -159,6 +165,10 @@ static bool TestPixelJit() {
delete [] zb_data; delete [] zb_data;
delete cache; delete cache;
return successes == count && !HitAnyAsserts(); return successes == count && !HitAnyAsserts();
#else
// Not yet supported
return true;
#endif
} }
bool TestSoftwareGPUJit() { bool TestSoftwareGPUJit() {

View File

@ -1061,6 +1061,10 @@ TestItem availableTests[] = {
int main(int argc, const char *argv[]) { int main(int argc, const char *argv[]) {
SetCurrentThreadName("UnitTest"); SetCurrentThreadName("UnitTest");
printf("CPU name: %s\n", cpu_info.cpu_string);
printf("ABI: %s\n", GetCompilerABI());
// In case we're on ARM, assume these are available.
cpu_info.bNEON = true; cpu_info.bNEON = true;
cpu_info.bVFP = true; cpu_info.bVFP = true;
cpu_info.bVFPv3 = true; cpu_info.bVFPv3 = true;
@ -1096,6 +1100,7 @@ int main(int argc, const char *argv[]) {
printf("%d tests passed.\n", passes); printf("%d tests passed.\n", passes);
} }
if (fails > 0) { if (fails > 0) {
printf("%d tests failed!\n", fails);
return 2; return 2;
} }
} else if (testFunc == nullptr) { } else if (testFunc == nullptr) {