forked from ShuriZma/suyu
Merge pull request #2063 from lioncash/pessimizing
video_core/shader: Minor changes
This commit is contained in:
commit
8dbb8edcd3
|
@ -126,7 +126,7 @@ BasicBlock ShaderIR::DecodeRange(u32 begin, u32 end) {
|
||||||
for (u32 pc = begin; pc < (begin > end ? MAX_PROGRAM_LENGTH : end);) {
|
for (u32 pc = begin; pc < (begin > end ? MAX_PROGRAM_LENGTH : end);) {
|
||||||
pc = DecodeInstr(basic_block, pc);
|
pc = DecodeInstr(basic_block, pc);
|
||||||
}
|
}
|
||||||
return std::move(basic_block);
|
return basic_block;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 ShaderIR::DecodeInstr(BasicBlock& bb, u32 pc) {
|
u32 ShaderIR::DecodeInstr(BasicBlock& bb, u32 pc) {
|
||||||
|
|
|
@ -391,7 +391,7 @@ private:
|
||||||
const InternalFlag flag;
|
const InternalFlag flag;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// A predicate register, it can be negated without aditional nodes
|
/// A predicate register, it can be negated without additional nodes
|
||||||
class PredicateNode final {
|
class PredicateNode final {
|
||||||
public:
|
public:
|
||||||
explicit constexpr PredicateNode(Tegra::Shader::Pred index, bool negated)
|
explicit constexpr PredicateNode(Tegra::Shader::Pred index, bool negated)
|
||||||
|
@ -415,11 +415,11 @@ class AbufNode final {
|
||||||
public:
|
public:
|
||||||
explicit constexpr AbufNode(Tegra::Shader::Attribute::Index index, u32 element,
|
explicit constexpr AbufNode(Tegra::Shader::Attribute::Index index, u32 element,
|
||||||
const Tegra::Shader::IpaMode& input_mode, Node buffer = {})
|
const Tegra::Shader::IpaMode& input_mode, Node buffer = {})
|
||||||
: input_mode{input_mode}, index{index}, element{element}, buffer{buffer} {}
|
: input_mode{input_mode}, buffer{buffer}, index{index}, element{element} {}
|
||||||
|
|
||||||
explicit constexpr AbufNode(Tegra::Shader::Attribute::Index index, u32 element,
|
explicit constexpr AbufNode(Tegra::Shader::Attribute::Index index, u32 element,
|
||||||
Node buffer = {})
|
Node buffer = {})
|
||||||
: input_mode{}, index{index}, element{element}, buffer{buffer} {}
|
: input_mode{}, buffer{buffer}, index{index}, element{element} {}
|
||||||
|
|
||||||
Tegra::Shader::IpaMode GetInputMode() const {
|
Tegra::Shader::IpaMode GetInputMode() const {
|
||||||
return input_mode;
|
return input_mode;
|
||||||
|
@ -626,10 +626,10 @@ private:
|
||||||
Node GetPredicate(u64 pred, bool negated = false);
|
Node GetPredicate(u64 pred, bool negated = false);
|
||||||
/// Generates a predicate node for an immediate true or false value
|
/// Generates a predicate node for an immediate true or false value
|
||||||
Node GetPredicate(bool immediate);
|
Node GetPredicate(bool immediate);
|
||||||
/// Generates a node representing an input atttribute. Keeps track of used attributes.
|
/// Generates a node representing an input attribute. Keeps track of used attributes.
|
||||||
Node GetInputAttribute(Tegra::Shader::Attribute::Index index, u64 element,
|
Node GetInputAttribute(Tegra::Shader::Attribute::Index index, u64 element,
|
||||||
const Tegra::Shader::IpaMode& input_mode, Node buffer = {});
|
const Tegra::Shader::IpaMode& input_mode, Node buffer = {});
|
||||||
/// Generates a node representing an output atttribute. Keeps track of used attributes.
|
/// Generates a node representing an output attribute. Keeps track of used attributes.
|
||||||
Node GetOutputAttribute(Tegra::Shader::Attribute::Index index, u64 element, Node buffer);
|
Node GetOutputAttribute(Tegra::Shader::Attribute::Index index, u64 element, Node buffer);
|
||||||
/// Generates a node representing an internal flag
|
/// Generates a node representing an internal flag
|
||||||
Node GetInternalFlag(InternalFlag flag, bool negated = false);
|
Node GetInternalFlag(InternalFlag flag, bool negated = false);
|
||||||
|
|
Loading…
Reference in New Issue