|
|
|
@ -636,7 +636,6 @@ void VisitUsages(Info& info, IR::Inst& inst) {
|
|
|
|
|
case IR::Opcode::ImageGatherDref:
|
|
|
|
|
case IR::Opcode::ImageFetch:
|
|
|
|
|
case IR::Opcode::ImageQueryDimensions:
|
|
|
|
|
case IR::Opcode::ImageQueryLod:
|
|
|
|
|
case IR::Opcode::ImageGradient: {
|
|
|
|
|
const TextureType type{inst.Flags<IR::TextureInstInfo>().type};
|
|
|
|
|
info.uses_sampled_1d |= type == TextureType::Color1D || type == TextureType::ColorArray1D;
|
|
|
|
@ -644,6 +643,15 @@ void VisitUsages(Info& info, IR::Inst& inst) {
|
|
|
|
|
inst.GetAssociatedPseudoOperation(IR::Opcode::GetSparseFromOp) != nullptr;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case IR::Opcode::ImageQueryLod: {
|
|
|
|
|
const auto flags{inst.Flags<IR::TextureInstInfo>()};
|
|
|
|
|
const TextureType type{flags.type};
|
|
|
|
|
info.uses_sampled_1d |= type == TextureType::Color1D || type == TextureType::ColorArray1D;
|
|
|
|
|
info.uses_shadow_lod |= flags.is_depth != 0;
|
|
|
|
|
info.uses_sparse_residency |=
|
|
|
|
|
inst.GetAssociatedPseudoOperation(IR::Opcode::GetSparseFromOp) != nullptr;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case IR::Opcode::ImageRead: {
|
|
|
|
|
const auto flags{inst.Flags<IR::TextureInstInfo>()};
|
|
|
|
|
info.uses_typeless_image_reads |= flags.image_format == ImageFormat::Typeless;
|
|
|
|
|