summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/shader_interpreter.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/shader/shader_interpreter.h')
-rw-r--r--src/video_core/shader/shader_interpreter.h26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/video_core/shader/shader_interpreter.h b/src/video_core/shader/shader_interpreter.h
index d31dcd7a6..d6c0e2d8c 100644
--- a/src/video_core/shader/shader_interpreter.h
+++ b/src/video_core/shader/shader_interpreter.h
@@ -4,18 +4,28 @@
#pragma once
+#include "video_core/shader/debug_data.h"
+#include "video_core/shader/shader.h"
+
namespace Pica {
namespace Shader {
-struct UnitState;
-
-template <bool Debug>
-struct DebugData;
-
-template <bool Debug>
-void RunInterpreter(const ShaderSetup& setup, UnitState& state, DebugData<Debug>& debug_data,
- unsigned offset);
+class InterpreterEngine final : public ShaderEngine {
+public:
+ void SetupBatch(ShaderSetup& setup, unsigned int entry_point) override;
+ void Run(const ShaderSetup& setup, UnitState& state) const override;
+
+ /**
+ * Produce debug information based on the given shader and input vertex
+ * @param input Input vertex into the shader
+ * @param num_attributes The number of vertex shader attributes
+ * @param config Configuration object for the shader pipeline
+ * @return Debug information for this shader with regards to the given vertex
+ */
+ DebugData<true> ProduceDebugInfo(const ShaderSetup& setup, const InputVertex& input,
+ int num_attributes) const;
+};
} // namespace