From dd4a1672a77830a53de61cf0554b34e9e17a2905 Mon Sep 17 00:00:00 2001 From: Yuri Kunde Schlesner Date: Fri, 16 Dec 2016 23:21:26 -0800 Subject: VideoCore/Shader: Split shader uniform state and shader engine Currently there's only a single dummy implementation, which will be split in a following commit. --- src/video_core/shader/shader_interpreter.h | 1 + 1 file changed, 1 insertion(+) (limited to 'src/video_core/shader/shader_interpreter.h') diff --git a/src/video_core/shader/shader_interpreter.h b/src/video_core/shader/shader_interpreter.h index d31dcd7a6..3237b50b3 100644 --- a/src/video_core/shader/shader_interpreter.h +++ b/src/video_core/shader/shader_interpreter.h @@ -8,6 +8,7 @@ namespace Pica { namespace Shader { +struct ShaderSetup; struct UnitState; template -- cgit v1.2.3 From 114d6b2f97eb62c7d8c958ebb391b70b026130f9 Mon Sep 17 00:00:00 2001 From: Yuri Kunde Schlesner Date: Sat, 17 Dec 2016 01:21:16 -0800 Subject: VideoCore/Shader: Split interpreter and JIT into separate ShaderEngines --- src/video_core/shader/shader_interpreter.h | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src/video_core/shader/shader_interpreter.h') diff --git a/src/video_core/shader/shader_interpreter.h b/src/video_core/shader/shader_interpreter.h index 3237b50b3..43c1ed5ea 100644 --- a/src/video_core/shader/shader_interpreter.h +++ b/src/video_core/shader/shader_interpreter.h @@ -4,19 +4,22 @@ #pragma once +#include "video_core/shader/shader.h" + namespace Pica { namespace Shader { -struct ShaderSetup; -struct UnitState; - -template -struct DebugData; +class InterpreterEngine final : public ShaderEngine { +public: + void SetupBatch(const ShaderSetup* setup) override; + void Run(UnitState& state, unsigned int entry_point) const override; + DebugData ProduceDebugInfo(const InputVertex& input, int num_attributes, + unsigned int entry_point) const override; -template -void RunInterpreter(const ShaderSetup& setup, UnitState& state, DebugData& debug_data, - unsigned offset); +private: + const ShaderSetup* setup = nullptr; +}; } // namespace -- cgit v1.2.3 From ade7ed7c5fd383e77c4d6949e652e1fd83844233 Mon Sep 17 00:00:00 2001 From: Yuri Kunde Schlesner Date: Sat, 17 Dec 2016 01:30:55 -0800 Subject: VideoCore/Shader: Move ProduceDebugInfo to InterpreterEngine --- src/video_core/shader/shader_interpreter.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/video_core/shader/shader_interpreter.h') diff --git a/src/video_core/shader/shader_interpreter.h b/src/video_core/shader/shader_interpreter.h index 43c1ed5ea..c3691da70 100644 --- a/src/video_core/shader/shader_interpreter.h +++ b/src/video_core/shader/shader_interpreter.h @@ -4,6 +4,7 @@ #pragma once +#include "video_core/shader/debug_data.h" #include "video_core/shader/shader.h" namespace Pica { @@ -14,8 +15,16 @@ class InterpreterEngine final : public ShaderEngine { public: void SetupBatch(const ShaderSetup* setup) override; void Run(UnitState& state, unsigned int entry_point) 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 ProduceDebugInfo(const InputVertex& input, int num_attributes, - unsigned int entry_point) const override; + unsigned int entry_point) const; private: const ShaderSetup* setup = nullptr; -- cgit v1.2.3 From 0f642741451e3f75c2f1d64ae9beccaf1437f12c Mon Sep 17 00:00:00 2001 From: Yuri Kunde Schlesner Date: Sat, 17 Dec 2016 16:06:04 -0800 Subject: VideoCore/Shader: Move per-batch ShaderEngine state into ShaderSetup --- src/video_core/shader/shader_interpreter.h | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'src/video_core/shader/shader_interpreter.h') diff --git a/src/video_core/shader/shader_interpreter.h b/src/video_core/shader/shader_interpreter.h index c3691da70..7f94d405f 100644 --- a/src/video_core/shader/shader_interpreter.h +++ b/src/video_core/shader/shader_interpreter.h @@ -13,8 +13,8 @@ namespace Shader { class InterpreterEngine final : public ShaderEngine { public: - void SetupBatch(const ShaderSetup* setup) override; - void Run(UnitState& state, unsigned int entry_point) const override; + void SetupBatch(ShaderSetup& setup) override; + void Run(const ShaderSetup& setup, UnitState& state, unsigned int entry_point) const override; /** * Produce debug information based on the given shader and input vertex @@ -23,11 +23,8 @@ public: * @param config Configuration object for the shader pipeline * @return Debug information for this shader with regards to the given vertex */ - DebugData ProduceDebugInfo(const InputVertex& input, int num_attributes, - unsigned int entry_point) const; - -private: - const ShaderSetup* setup = nullptr; + DebugData ProduceDebugInfo(const ShaderSetup& setup, const InputVertex& input, + int num_attributes, unsigned int entry_point) const; }; } // namespace -- cgit v1.2.3 From 0e9081b97348c65029c96697443acb0dbbc58756 Mon Sep 17 00:00:00 2001 From: Yuri Kunde Schlesner Date: Sat, 17 Dec 2016 16:16:02 -0800 Subject: VideoCore/Shader: Move entry_point to SetupBatch --- src/video_core/shader/shader_interpreter.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/video_core/shader/shader_interpreter.h') diff --git a/src/video_core/shader/shader_interpreter.h b/src/video_core/shader/shader_interpreter.h index 7f94d405f..d6c0e2d8c 100644 --- a/src/video_core/shader/shader_interpreter.h +++ b/src/video_core/shader/shader_interpreter.h @@ -13,8 +13,8 @@ namespace Shader { class InterpreterEngine final : public ShaderEngine { public: - void SetupBatch(ShaderSetup& setup) override; - void Run(const ShaderSetup& setup, UnitState& state, unsigned int entry_point) const override; + 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 @@ -24,7 +24,7 @@ public: * @return Debug information for this shader with regards to the given vertex */ DebugData ProduceDebugInfo(const ShaderSetup& setup, const InputVertex& input, - int num_attributes, unsigned int entry_point) const; + int num_attributes) const; }; } // namespace -- cgit v1.2.3