diff options
author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2017-02-09 07:07:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-09 07:07:34 +0100 |
commit | 2889372e47624e368df0d0361cb38b8100f047dd (patch) | |
tree | 183cd1cd6edb60ab566bd1fe181b712643bef30c /src/video_core/shader | |
parent | Merge pull request #2539 from Kloen/re-killing-warnings (diff) | |
parent | VideoCore: Move Regs to its own file (diff) | |
download | yuzu-2889372e47624e368df0d0361cb38b8100f047dd.tar yuzu-2889372e47624e368df0d0361cb38b8100f047dd.tar.gz yuzu-2889372e47624e368df0d0361cb38b8100f047dd.tar.bz2 yuzu-2889372e47624e368df0d0361cb38b8100f047dd.tar.lz yuzu-2889372e47624e368df0d0361cb38b8100f047dd.tar.xz yuzu-2889372e47624e368df0d0361cb38b8100f047dd.tar.zst yuzu-2889372e47624e368df0d0361cb38b8100f047dd.zip |
Diffstat (limited to 'src/video_core/shader')
-rw-r--r-- | src/video_core/shader/shader.cpp | 14 | ||||
-rw-r--r-- | src/video_core/shader/shader.h | 24 | ||||
-rw-r--r-- | src/video_core/shader/shader_interpreter.cpp | 2 | ||||
-rw-r--r-- | src/video_core/shader/shader_interpreter.h | 2 |
4 files changed, 21 insertions, 21 deletions
diff --git a/src/video_core/shader/shader.cpp b/src/video_core/shader/shader.cpp index f5f7ea61d..c860375a1 100644 --- a/src/video_core/shader/shader.cpp +++ b/src/video_core/shader/shader.cpp @@ -7,8 +7,8 @@ #include "common/bit_set.h" #include "common/logging/log.h" #include "common/microprofile.h" -#include "video_core/pica.h" #include "video_core/pica_state.h" +#include "video_core/regs.h" #include "video_core/shader/shader.h" #include "video_core/shader/shader_interpreter.h" #ifdef ARCHITECTURE_x86_64 @@ -20,7 +20,7 @@ namespace Pica { namespace Shader { -OutputVertex OutputVertex::FromAttributeBuffer(const Regs& regs, AttributeBuffer& input) { +OutputVertex OutputVertex::FromAttributeBuffer(const RasterizerRegs& regs, AttributeBuffer& input) { // Setup output data union { OutputVertex ret{}; @@ -33,16 +33,16 @@ OutputVertex OutputVertex::FromAttributeBuffer(const Regs& regs, AttributeBuffer for (unsigned int i = 0; i < num_attributes; ++i) { const auto& output_register_map = regs.vs_output_attributes[i]; - Regs::VSOutputAttributes::Semantic semantics[4] = { + RasterizerRegs::VSOutputAttributes::Semantic semantics[4] = { output_register_map.map_x, output_register_map.map_y, output_register_map.map_z, output_register_map.map_w}; for (unsigned comp = 0; comp < 4; ++comp) { - Regs::VSOutputAttributes::Semantic semantic = semantics[comp]; + RasterizerRegs::VSOutputAttributes::Semantic semantic = semantics[comp]; float24* out = &vertex_slots[semantic]; if (semantic < vertex_slots.size()) { *out = input.attr[i][comp]; - } else if (semantic != Regs::VSOutputAttributes::INVALID) { + } else if (semantic != RasterizerRegs::VSOutputAttributes::INVALID) { LOG_ERROR(HW_GPU, "Invalid/unknown semantic id: %u", (unsigned int)semantic); } } @@ -66,7 +66,7 @@ OutputVertex OutputVertex::FromAttributeBuffer(const Regs& regs, AttributeBuffer return ret; } -void UnitState::LoadInput(const Regs::ShaderConfig& config, const AttributeBuffer& input) { +void UnitState::LoadInput(const ShaderRegs& config, const AttributeBuffer& input) { const unsigned max_attribute = config.max_input_attribute_index; for (unsigned attr = 0; attr <= max_attribute; ++attr) { @@ -75,7 +75,7 @@ void UnitState::LoadInput(const Regs::ShaderConfig& config, const AttributeBuffe } } -void UnitState::WriteOutput(const Regs::ShaderConfig& config, AttributeBuffer& output) { +void UnitState::WriteOutput(const ShaderRegs& config, AttributeBuffer& output) { unsigned int output_i = 0; for (unsigned int reg : Common::BitSet<u32>(config.output_mask)) { output.attr[output_i++] = registers.output[reg]; diff --git a/src/video_core/shader/shader.h b/src/video_core/shader/shader.h index b188d3edf..d52682479 100644 --- a/src/video_core/shader/shader.h +++ b/src/video_core/shader/shader.h @@ -12,8 +12,8 @@ #include "common/common_funcs.h" #include "common/common_types.h" #include "common/vector_math.h" -#include "video_core/pica.h" #include "video_core/pica_types.h" +#include "video_core/regs.h" using nihstro::RegisterType; using nihstro::SourceRegister; @@ -39,19 +39,19 @@ struct OutputVertex { INSERT_PADDING_WORDS(1); Math::Vec2<float24> tc2; - static OutputVertex FromAttributeBuffer(const Regs& regs, AttributeBuffer& output); + static OutputVertex FromAttributeBuffer(const RasterizerRegs& regs, AttributeBuffer& output); }; #define ASSERT_POS(var, pos) \ static_assert(offsetof(OutputVertex, var) == pos * sizeof(float24), "Semantic at wrong " \ "offset.") -ASSERT_POS(pos, Regs::VSOutputAttributes::POSITION_X); -ASSERT_POS(quat, Regs::VSOutputAttributes::QUATERNION_X); -ASSERT_POS(color, Regs::VSOutputAttributes::COLOR_R); -ASSERT_POS(tc0, Regs::VSOutputAttributes::TEXCOORD0_U); -ASSERT_POS(tc1, Regs::VSOutputAttributes::TEXCOORD1_U); -ASSERT_POS(tc0_w, Regs::VSOutputAttributes::TEXCOORD0_W); -ASSERT_POS(view, Regs::VSOutputAttributes::VIEW_X); -ASSERT_POS(tc2, Regs::VSOutputAttributes::TEXCOORD2_U); +ASSERT_POS(pos, RasterizerRegs::VSOutputAttributes::POSITION_X); +ASSERT_POS(quat, RasterizerRegs::VSOutputAttributes::QUATERNION_X); +ASSERT_POS(color, RasterizerRegs::VSOutputAttributes::COLOR_R); +ASSERT_POS(tc0, RasterizerRegs::VSOutputAttributes::TEXCOORD0_U); +ASSERT_POS(tc1, RasterizerRegs::VSOutputAttributes::TEXCOORD1_U); +ASSERT_POS(tc0_w, RasterizerRegs::VSOutputAttributes::TEXCOORD0_W); +ASSERT_POS(view, RasterizerRegs::VSOutputAttributes::VIEW_X); +ASSERT_POS(tc2, RasterizerRegs::VSOutputAttributes::TEXCOORD2_U); #undef ASSERT_POS static_assert(std::is_pod<OutputVertex>::value, "Structure is not POD"); static_assert(sizeof(OutputVertex) == 24 * sizeof(float), "OutputVertex has invalid size"); @@ -116,9 +116,9 @@ struct UnitState { * @param config Shader configuration registers corresponding to the unit. * @param input Attribute buffer to load into the input registers. */ - void LoadInput(const Regs::ShaderConfig& config, const AttributeBuffer& input); + void LoadInput(const ShaderRegs& config, const AttributeBuffer& input); - void WriteOutput(const Regs::ShaderConfig& config, AttributeBuffer& output); + void WriteOutput(const ShaderRegs& config, AttributeBuffer& output); }; struct ShaderSetup { diff --git a/src/video_core/shader/shader_interpreter.cpp b/src/video_core/shader/shader_interpreter.cpp index 81522b8f5..f4d1c46c5 100644 --- a/src/video_core/shader/shader_interpreter.cpp +++ b/src/video_core/shader/shader_interpreter.cpp @@ -669,7 +669,7 @@ void InterpreterEngine::Run(const ShaderSetup& setup, UnitState& state) const { DebugData<true> InterpreterEngine::ProduceDebugInfo(const ShaderSetup& setup, const AttributeBuffer& input, - const Regs::ShaderConfig& config) const { + const ShaderRegs& config) const { UnitState state; DebugData<true> debug_data; diff --git a/src/video_core/shader/shader_interpreter.h b/src/video_core/shader/shader_interpreter.h index d7a61e122..5682b3a39 100644 --- a/src/video_core/shader/shader_interpreter.h +++ b/src/video_core/shader/shader_interpreter.h @@ -23,7 +23,7 @@ public: * @return Debug information for this shader with regards to the given vertex */ DebugData<true> ProduceDebugInfo(const ShaderSetup& setup, const AttributeBuffer& input, - const Regs::ShaderConfig& config) const; + const ShaderRegs& config) const; }; } // namespace |