1
0
Fork 0
forked from suyu/suyu

Shader_IR: Change name of TrackSampler function so it does not confuse with the type.

This commit is contained in:
Fernando Sahmkow 2020-01-08 15:59:21 -04:00 committed by FernandoS27
parent 3919b7b8a9
commit 806f569143
3 changed files with 10 additions and 7 deletions

View file

@ -393,7 +393,7 @@ const Sampler* ShaderIR::GetBindlessSampler(Tegra::Shader::Register reg, Node& i
std::optional<SamplerInfo> sampler_info) { std::optional<SamplerInfo> sampler_info) {
const Node sampler_register = GetRegister(reg); const Node sampler_register = GetRegister(reg);
const auto [base_node, tracked_sampler_info] = const auto [base_node, tracked_sampler_info] =
TrackSampler(sampler_register, global_code, static_cast<s64>(global_code.size())); TrackBindlessSampler(sampler_register, global_code, static_cast<s64>(global_code.size()));
ASSERT(base_node != nullptr); ASSERT(base_node != nullptr);
if (base_node == nullptr) { if (base_node == nullptr) {
return nullptr; return nullptr;

View file

@ -394,7 +394,8 @@ private:
std::tuple<Node, u32, u32> TrackCbuf(Node tracked, const NodeBlock& code, s64 cursor) const; std::tuple<Node, u32, u32> TrackCbuf(Node tracked, const NodeBlock& code, s64 cursor) const;
std::tuple<Node, TrackSampler> TrackSampler(Node tracked, const NodeBlock& code, s64 cursor); std::tuple<Node, TrackSampler> TrackBindlessSampler(Node tracked, const NodeBlock& code,
s64 cursor);
std::optional<u32> TrackImmediate(Node tracked, const NodeBlock& code, s64 cursor) const; std::optional<u32> TrackImmediate(Node tracked, const NodeBlock& code, s64 cursor) const;

View file

@ -72,7 +72,7 @@ bool AmendNodeCv(std::size_t amend_index, Node node) {
return false; return false;
} }
std::tuple<Node, TrackSampler> ShaderIR::TrackSampler(Node tracked, const NodeBlock& code, std::tuple<Node, TrackSampler> ShaderIR::TrackBindlessSampler(Node tracked, const NodeBlock& code,
s64 cursor) { s64 cursor) {
if (const auto cbuf = std::get_if<CbufNode>(&*tracked)) { if (const auto cbuf = std::get_if<CbufNode>(&*tracked)) {
// Constant buffer found, test if it's an immediate // Constant buffer found, test if it's an immediate
@ -124,11 +124,12 @@ std::tuple<Node, TrackSampler> ShaderIR::TrackSampler(Node tracked, const NodeBl
if (!source) { if (!source) {
return {}; return {};
} }
return TrackSampler(source, code, new_cursor); return TrackBindlessSampler(source, code, new_cursor);
} }
if (const auto operation = std::get_if<OperationNode>(&*tracked)) { if (const auto operation = std::get_if<OperationNode>(&*tracked)) {
for (std::size_t i = operation->GetOperandsCount(); i > 0; --i) { for (std::size_t i = operation->GetOperandsCount(); i > 0; --i) {
if (auto found = TrackSampler((*operation)[i - 1], code, cursor); std::get<0>(found)) { if (auto found = TrackBindlessSampler((*operation)[i - 1], code, cursor);
std::get<0>(found)) {
// Cbuf found in operand. // Cbuf found in operand.
return found; return found;
} }
@ -137,7 +138,8 @@ std::tuple<Node, TrackSampler> ShaderIR::TrackSampler(Node tracked, const NodeBl
} }
if (const auto conditional = std::get_if<ConditionalNode>(&*tracked)) { if (const auto conditional = std::get_if<ConditionalNode>(&*tracked)) {
const auto& conditional_code = conditional->GetCode(); const auto& conditional_code = conditional->GetCode();
return TrackSampler(tracked, conditional_code, static_cast<s64>(conditional_code.size())); return TrackBindlessSampler(tracked, conditional_code,
static_cast<s64>(conditional_code.size()));
} }
return {}; return {};
} }