summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-03-23 01:03:20 +0100
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-23 03:51:24 +0200
commitc63cf4fa2e22538a01c191e1f97ac0f93b67e804 (patch)
tree2e9be29df86e6282a431da2f1503f128dd7aea8d /src/shader_recompiler
parentshader: Fold interpolation multiplications (diff)
downloadyuzu-c63cf4fa2e22538a01c191e1f97ac0f93b67e804.tar
yuzu-c63cf4fa2e22538a01c191e1f97ac0f93b67e804.tar.gz
yuzu-c63cf4fa2e22538a01c191e1f97ac0f93b67e804.tar.bz2
yuzu-c63cf4fa2e22538a01c191e1f97ac0f93b67e804.tar.lz
yuzu-c63cf4fa2e22538a01c191e1f97ac0f93b67e804.tar.xz
yuzu-c63cf4fa2e22538a01c191e1f97ac0f93b67e804.tar.zst
yuzu-c63cf4fa2e22538a01c191e1f97ac0f93b67e804.zip
Diffstat (limited to 'src/shader_recompiler')
-rw-r--r--src/shader_recompiler/environment.h11
-rw-r--r--src/shader_recompiler/file_environment.cpp4
-rw-r--r--src/shader_recompiler/file_environment.h4
-rw-r--r--src/shader_recompiler/stage.h4
4 files changed, 15 insertions, 8 deletions
diff --git a/src/shader_recompiler/environment.h b/src/shader_recompiler/environment.h
index 1fcaa56dd..6dec4b255 100644
--- a/src/shader_recompiler/environment.h
+++ b/src/shader_recompiler/environment.h
@@ -3,8 +3,8 @@
#include <array>
#include "common/common_types.h"
-#include "shader_recompiler/stage.h"
#include "shader_recompiler/program_header.h"
+#include "shader_recompiler/stage.h"
namespace Shader {
@@ -14,9 +14,9 @@ public:
[[nodiscard]] virtual u64 ReadInstruction(u32 address) = 0;
- [[nodiscard]] virtual u32 TextureBoundBuffer() = 0;
+ [[nodiscard]] virtual u32 TextureBoundBuffer() const = 0;
- [[nodiscard]] virtual std::array<u32, 3> WorkgroupSize() = 0;
+ [[nodiscard]] virtual std::array<u32, 3> WorkgroupSize() const = 0;
[[nodiscard]] const ProgramHeader& SPH() const noexcept {
return sph;
@@ -26,9 +26,14 @@ public:
return stage;
}
+ [[nodiscard]] u32 StartAddress() const noexcept {
+ return start_address;
+ }
+
protected:
ProgramHeader sph{};
Stage stage{};
+ u32 start_address{};
};
} // namespace Shader
diff --git a/src/shader_recompiler/file_environment.cpp b/src/shader_recompiler/file_environment.cpp
index 21700c72b..f2104f444 100644
--- a/src/shader_recompiler/file_environment.cpp
+++ b/src/shader_recompiler/file_environment.cpp
@@ -39,11 +39,11 @@ u64 FileEnvironment::ReadInstruction(u32 offset) {
return data[offset / 8];
}
-u32 FileEnvironment::TextureBoundBuffer() {
+u32 FileEnvironment::TextureBoundBuffer() const {
throw NotImplementedException("Texture bound buffer serialization");
}
-std::array<u32, 3> FileEnvironment::WorkgroupSize() {
+std::array<u32, 3> FileEnvironment::WorkgroupSize() const {
return {1, 1, 1};
}
diff --git a/src/shader_recompiler/file_environment.h b/src/shader_recompiler/file_environment.h
index 62302bc8e..17640a622 100644
--- a/src/shader_recompiler/file_environment.h
+++ b/src/shader_recompiler/file_environment.h
@@ -14,9 +14,9 @@ public:
u64 ReadInstruction(u32 offset) override;
- u32 TextureBoundBuffer() override;
+ u32 TextureBoundBuffer() const override;
- std::array<u32, 3> WorkgroupSize() override;
+ std::array<u32, 3> WorkgroupSize() const override;
private:
std::vector<u64> data;
diff --git a/src/shader_recompiler/stage.h b/src/shader_recompiler/stage.h
index fc6ce6043..7d4f2c0bb 100644
--- a/src/shader_recompiler/stage.h
+++ b/src/shader_recompiler/stage.h
@@ -4,9 +4,11 @@
#pragma once
+#include "common/common_types.h"
+
namespace Shader {
-enum class Stage {
+enum class Stage : u32 {
Compute,
VertexA,
VertexB,