mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-02-19 21:52:45 +00:00
Show detected GPU driver bugs in system info
This commit is contained in:
parent
7656e2b9d9
commit
78ad81db9e
@ -592,5 +592,18 @@ void ConvertToD32F(uint8_t *dst, const uint8_t *src, uint32_t dstStride, uint32_
|
||||
}
|
||||
}
|
||||
|
||||
const char *Bugs::GetBugName(uint32_t bug) {
|
||||
switch (bug) {
|
||||
case NO_DEPTH_CANNOT_DISCARD_STENCIL: return "NO_DEPTH_CANNOT_DISCARD_STENCIL";
|
||||
case DUAL_SOURCE_BLENDING_BROKEN: return "DUAL_SOURCE_BLENDING_BROKEN";
|
||||
case ANY_MAP_BUFFER_RANGE_SLOW: return "ANY_MAP_BUFFER_RANGE_SLOW";
|
||||
case PVR_GENMIPMAP_HEIGHT_GREATER: return "PVR_GENMIPMAP_HEIGHT_GREATER";
|
||||
case BROKEN_NAN_IN_CONDITIONAL: return "BROKEN_NAN_IN_CONDITIONAL";
|
||||
case COLORWRITEMASK_BROKEN_WITH_DEPTHTEST: return "COLORWRITEMASK_BROKEN_WITH_DEPTHTEST";
|
||||
case BROKEN_FLAT_IN_SHADER: return "BROKEN_FLAT_IN_SHADER";
|
||||
case EQUAL_WZ_CORRUPTS_DEPTH: return "EQUAL_WZ_CORRUPTS_DEPTH";
|
||||
case MALI_STENCIL_DISCARD_BUG: return "MALI_STENCIL_DISCARD_BUG";
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Draw
|
||||
|
@ -308,6 +308,10 @@ public:
|
||||
void Infest(uint32_t bug) {
|
||||
flags_ |= (1 << bug);
|
||||
}
|
||||
uint32_t MaxBugIndex() const {
|
||||
return (uint32_t)MAX_BUG;
|
||||
}
|
||||
const char *GetBugName(uint32_t bug);
|
||||
|
||||
enum : uint32_t {
|
||||
NO_DEPTH_CANNOT_DISCARD_STENCIL = 0,
|
||||
@ -318,6 +322,8 @@ public:
|
||||
COLORWRITEMASK_BROKEN_WITH_DEPTHTEST = 5,
|
||||
BROKEN_FLAT_IN_SHADER = 6,
|
||||
EQUAL_WZ_CORRUPTS_DEPTH = 7,
|
||||
MALI_STENCIL_DISCARD_BUG = 8,
|
||||
MAX_BUG,
|
||||
};
|
||||
|
||||
protected:
|
||||
|
@ -682,6 +682,26 @@ void SystemInfoScreen::CreateViews() {
|
||||
cpuExtensions->Add(new TextView(exts[i], new LayoutParams(FILL_PARENT, WRAP_CONTENT)))->SetFocusable(true);
|
||||
}
|
||||
|
||||
ViewGroup *driverBugsScroll = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, FILL_PARENT));
|
||||
driverBugsScroll->SetTag("DevSystemInfoDriverBugs");
|
||||
LinearLayout *driverBugs = new LinearLayoutList(ORIENT_VERTICAL);
|
||||
driverBugs->SetSpacing(0);
|
||||
driverBugsScroll->Add(driverBugs);
|
||||
|
||||
tabHolder->AddTab(si->T("Driver bugs"), driverBugsScroll);
|
||||
|
||||
bool anyDriverBugs = false;
|
||||
for (int i = 0; i < (int)draw->GetBugs().MaxBugIndex(); i++) {
|
||||
if (draw->GetBugs().Has(i)) {
|
||||
anyDriverBugs = true;
|
||||
driverBugs->Add(new TextView(draw->GetBugs().GetBugName(i), new LayoutParams(FILL_PARENT, WRAP_CONTENT)))->SetFocusable(true);
|
||||
}
|
||||
}
|
||||
|
||||
if (!anyDriverBugs) {
|
||||
driverBugs->Add(new TextView(si->T("No GPU driver bugs detected"), new LayoutParams(FILL_PARENT, WRAP_CONTENT)))->SetFocusable(true);
|
||||
}
|
||||
|
||||
ViewGroup *gpuExtensionsScroll = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, FILL_PARENT));
|
||||
gpuExtensionsScroll->SetTag("DevSystemInfoOGLExt");
|
||||
LinearLayout *gpuExtensions = new LinearLayoutList(ORIENT_VERTICAL);
|
||||
|
Loading…
x
Reference in New Issue
Block a user