summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/shader_info.h
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-02-16 08:10:22 +0100
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-23 03:51:22 +0200
commitb5d7279d878211654b4abb165d94af763a365f47 (patch)
tree9b3a7b6e9d7d2b8945fe87d27ff75f1712ef06aa /src/shader_recompiler/shader_info.h
parentshader: Improve object pool (diff)
downloadyuzu-b5d7279d878211654b4abb165d94af763a365f47.tar
yuzu-b5d7279d878211654b4abb165d94af763a365f47.tar.gz
yuzu-b5d7279d878211654b4abb165d94af763a365f47.tar.bz2
yuzu-b5d7279d878211654b4abb165d94af763a365f47.tar.lz
yuzu-b5d7279d878211654b4abb165d94af763a365f47.tar.xz
yuzu-b5d7279d878211654b4abb165d94af763a365f47.tar.zst
yuzu-b5d7279d878211654b4abb165d94af763a365f47.zip
Diffstat (limited to '')
-rw-r--r--src/shader_recompiler/shader_info.h33
1 files changed, 25 insertions, 8 deletions
diff --git a/src/shader_recompiler/shader_info.h b/src/shader_recompiler/shader_info.h
index 1760bf4a9..f49a79368 100644
--- a/src/shader_recompiler/shader_info.h
+++ b/src/shader_recompiler/shader_info.h
@@ -6,23 +6,40 @@
#include <array>
+#include "common/common_types.h"
+
#include <boost/container/static_vector.hpp>
namespace Shader {
struct Info {
- struct ConstantBuffer {
+ static constexpr size_t MAX_CBUFS{18};
+ static constexpr size_t MAX_SSBOS{16};
+
+ struct ConstantBufferDescriptor {
+ u32 index;
+ u32 count;
+ };
+ struct StorageBufferDescriptor {
+ u32 cbuf_index;
+ u32 cbuf_offset;
+ u32 count;
};
- struct {
- bool workgroup_id{};
- bool local_invocation_id{};
- bool fp16{};
- bool fp64{};
- } uses;
+ bool uses_workgroup_id{};
+ bool uses_local_invocation_id{};
+ bool uses_fp16{};
+ bool uses_fp64{};
+
+ u32 constant_buffer_mask{};
+
+ std::array<ConstantBufferDescriptor*, MAX_CBUFS> constant_buffers{};
+ boost::container::static_vector<ConstantBufferDescriptor, MAX_CBUFS>
+ constant_buffer_descriptors;
- std::array<18
+ std::array<StorageBufferDescriptor*, MAX_SSBOS> storage_buffers{};
+ boost::container::static_vector<StorageBufferDescriptor, MAX_SSBOS> storage_buffers_descriptors;
};
} // namespace Shader