|
|
|
@ -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; |
|
|
|
|