diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-02-16 04:10:22 -0300 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-22 21:51:22 -0400 |
commit | b5d7279d878211654b4abb165d94af763a365f47 (patch) | |
tree | 9b3a7b6e9d7d2b8945fe87d27ff75f1712ef06aa /src/shader_recompiler/shader_info.h | |
parent | d5d468cf2cbe235ee149dbd37951389d2a7e61da (diff) |
spirv: Initial bindings support
Diffstat (limited to 'src/shader_recompiler/shader_info.h')
-rw-r--r-- | src/shader_recompiler/shader_info.h | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/src/shader_recompiler/shader_info.h b/src/shader_recompiler/shader_info.h index 1760bf4a96..f49a79368f 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 |