summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/shader_jit_x64.h
diff options
context:
space:
mode:
authorYuri Kunde Schlesner <yuriks@yuriks.net>2016-12-17 10:21:16 +0100
committerYuri Kunde Schlesner <yuriks@yuriks.net>2017-01-26 03:53:24 +0100
commit114d6b2f97eb62c7d8c958ebb391b70b026130f9 (patch)
tree8600239b8ee804b78bc2c60fb6285a2e8cf2c4fa /src/video_core/shader/shader_jit_x64.h
parentVideoCore/Shader: Rename shader_jit_x64{ => _compiler}.{cpp,h} (diff)
downloadyuzu-114d6b2f97eb62c7d8c958ebb391b70b026130f9.tar
yuzu-114d6b2f97eb62c7d8c958ebb391b70b026130f9.tar.gz
yuzu-114d6b2f97eb62c7d8c958ebb391b70b026130f9.tar.bz2
yuzu-114d6b2f97eb62c7d8c958ebb391b70b026130f9.tar.lz
yuzu-114d6b2f97eb62c7d8c958ebb391b70b026130f9.tar.xz
yuzu-114d6b2f97eb62c7d8c958ebb391b70b026130f9.tar.zst
yuzu-114d6b2f97eb62c7d8c958ebb391b70b026130f9.zip
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