Adding Pipeline statistics queries

This commit is contained in:
Dynamitos
2024-06-15 21:47:20 +02:00
parent 86c179e2e7
commit 0fd331b3b5
30 changed files with 344 additions and 95 deletions
+24 -4
View File
@@ -3,17 +3,37 @@
namespace Seele {
namespace Gfx {
struct OcclusionResult {
uint64 numFragments;
};
class OcclusionQuery {
public:
OcclusionQuery();
virtual ~OcclusionQuery();
virtual void beginQuery() = 0;
virtual void endQuery() = 0;
virtual void resetQuery() = 0;
virtual uint64 getResults() = 0;
private:
virtual OcclusionResult getResults() = 0;
};
DEFINE_REF(OcclusionQuery)
struct PipelineStatisticsResult {
uint64 inputAssemblyVertices;
uint64 inputAssemblyPrimitives;
uint64 vertexShaderInvocations;
uint64 clippingInvocations;
uint64 clippingPrimitives;
uint64 fragmentShaderInvocations;
uint64 computeShaderInvocations;
uint64 taskShaderInvocations;
uint64 meshShaderInvocations;
};
class PipelineStatisticsQuery {
public:
PipelineStatisticsQuery();
virtual ~PipelineStatisticsQuery();
virtual void beginQuery() = 0;
virtual void endQuery() = 0;
virtual PipelineStatisticsResult getResults() = 0;
};
DEFINE_REF(PipelineStatisticsQuery)
} // namespace Gfx
} // namespace Seele