summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/shader_jit_x64.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/shader/shader_jit_x64.h')
-rw-r--r--src/video_core/shader/shader_jit_x64.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/video_core/shader/shader_jit_x64.h b/src/video_core/shader/shader_jit_x64.h
new file mode 100644
index 000000000..df18de2c2
--- /dev/null
+++ b/src/video_core/shader/shader_jit_x64.h
@@ -0,0 +1,35 @@
+// Copyright 2016 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <memory>
+#include <unordered_map>
+#include "common/common_types.h"
+#include "video_core/shader/shader.h"
+
+namespace Pica {
+namespace Shader {
+
+class JitShader;
+
+class JitX64Engine final : public ShaderEngine {
+public:
+ JitX64Engine();
+ ~JitX64Engine() override;
+
+ void SetupBatch(const ShaderSetup* setup) override;
+ void Run(UnitState& state, unsigned int entry_point) const override;
+ DebugData<true> ProduceDebugInfo(const InputVertex& input, int num_attributes,
+ unsigned int entry_point) const override;
+
+private:
+ const ShaderSetup* setup = nullptr;
+
+ std::unordered_map<u64, std::unique_ptr<JitShader>> cache;
+ const JitShader* cached_shader = nullptr;
+};
+
+} // namespace Shader
+} // namespace Pica