mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-06-26 12:26:18 +00:00
Implement shader resource tables (#1165)
* Implement shader resource tables * fix after rebase + squash * address some review comments * fix pipeline_common * cleanup debug stuff * switch to using single codegenerator
This commit is contained in:
parent
7b16085c59
commit
9ec75c3feb
30 changed files with 740 additions and 119 deletions
|
@ -29,6 +29,7 @@ class Value {
|
|||
public:
|
||||
Value() noexcept = default;
|
||||
explicit Value(IR::Inst* value) noexcept;
|
||||
explicit Value(const IR::Inst* value) noexcept;
|
||||
explicit Value(IR::ScalarReg reg) noexcept;
|
||||
explicit Value(IR::VectorReg reg) noexcept;
|
||||
explicit Value(IR::Attribute value) noexcept;
|
||||
|
@ -82,6 +83,8 @@ private:
|
|||
f64 imm_f64;
|
||||
const char* string_literal;
|
||||
};
|
||||
|
||||
friend class std::hash<Value>;
|
||||
};
|
||||
static_assert(static_cast<u32>(IR::Type::Void) == 0, "memset relies on IR::Type being zero");
|
||||
static_assert(std::is_trivially_copyable_v<Value>);
|
||||
|
@ -364,3 +367,10 @@ inline const char* Value::StringLiteral() const {
|
|||
}
|
||||
|
||||
} // namespace Shader::IR
|
||||
|
||||
namespace std {
|
||||
template <>
|
||||
struct hash<Shader::IR::Value> {
|
||||
std::size_t operator()(const Shader::IR::Value& v) const;
|
||||
};
|
||||
} // namespace std
|
Loading…
Add table
Add a link
Reference in a new issue