CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
hrydgard

CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!

GitHub Repository: hrydgard/ppsspp
Path: blob/master/UI/GPUDriverTestScreen.h
Views: 1401
1
#pragma once
2
3
#include "Common/System/Display.h"
4
#include "Common/UI/Context.h"
5
#include "Common/UI/View.h"
6
#include "Common/UI/ViewGroup.h"
7
8
#include "Common/Log.h"
9
#include "UI/MiscScreens.h"
10
#include "Common/GPU/thin3d.h"
11
12
class GPUDriverTestScreen : public UIDialogScreenWithBackground {
13
public:
14
GPUDriverTestScreen();
15
~GPUDriverTestScreen();
16
17
void CreateViews() override;
18
void DrawForeground(UIContext &dc) override;
19
20
const char *tag() const override { return "GPUDriverTest"; }
21
22
private:
23
void DiscardTest(UIContext &dc);
24
void ShaderTest(UIContext &dc);
25
26
// Common objects
27
Draw::SamplerState *samplerNearest_ = nullptr;
28
29
// Discard/depth/stencil stuff
30
// ===========================
31
32
Draw::ShaderModule *discardFragShader_ = nullptr;
33
Draw::Pipeline *discardWriteDepthStencil_ = nullptr;
34
Draw::Pipeline *discardWriteDepth_ = nullptr;
35
Draw::Pipeline *discardWriteStencil_ = nullptr;
36
37
// Stencil test, with and without DepthAlways
38
Draw::Pipeline *drawTestStencilEqual_ = nullptr;
39
Draw::Pipeline *drawTestStencilNotEqual_ = nullptr;
40
Draw::Pipeline *drawTestStencilEqualDepthAlways_ = nullptr;
41
Draw::Pipeline *drawTestStencilNotEqualDepthAlways_ = nullptr;
42
43
// Depth tests with and without StencilAlways
44
Draw::Pipeline *drawTestStencilAlwaysDepthLessEqual_ = nullptr;
45
Draw::Pipeline *drawTestStencilAlwaysDepthGreater_ = nullptr;
46
Draw::Pipeline *drawTestDepthLessEqual_ = nullptr;
47
Draw::Pipeline *drawTestDepthGreater_ = nullptr;
48
49
50
// Shader tests
51
// ============
52
53
Draw::Pipeline *adrenoLogicDiscardPipeline_ = nullptr;
54
Draw::ShaderModule *adrenoLogicDiscardFragShader_ = nullptr;
55
Draw::ShaderModule *adrenoLogicDiscardVertShader_ = nullptr;
56
Draw::Pipeline *flatShadingPipeline_ = nullptr;
57
Draw::ShaderModule *flatFragShader_ = nullptr;
58
Draw::ShaderModule *flatVertShader_ = nullptr;
59
60
UI::TabHolder *tabHolder_ = nullptr;
61
};
62
63