layers: Use ImageRangeGenerator instead of RangeGenerator
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index 33eadca..7dac6ac 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -12647,12 +12647,18 @@
                 }
 
                 if (!image_data_i->sparse && !image_data_j->sparse) {
-                    subresource_adapter::RangeGenerator generator_i = view_state_i->range_generator;
+                    subresource_adapter::ImageRangeGenerator generator_i{*image_data_i->fragment_encoder.get(),
+                                                                         view_state_i->create_info.subresourceRange, 0u,
+                                                                         view_state_i->IsDepthSliced()};
+
+                    subresource_adapter::ImageRangeGenerator generator_j{*image_data_j->fragment_encoder.get(),
+                                                                         view_state_j->create_info.subresourceRange, 0u,
+                                                                         view_state_j->IsDepthSliced()};
                     for (; generator_i->non_empty(); ++generator_i) {
-                        subresource_adapter::RangeGenerator generator_j = view_state_j->range_generator;
-                        for (; generator_j->non_empty(); ++generator_j) {
+                        subresource_adapter::ImageRangeGenerator generator_j_copy = generator_j;
+                        for (; generator_j_copy->non_empty(); ++generator_j_copy) {
                             sparse_container::range<VkDeviceSize> range_i{generator_i->begin, generator_i->end};
-                            sparse_container::range<VkDeviceSize> range_j{generator_j->begin, generator_j->end};
+                            sparse_container::range<VkDeviceSize> range_j{generator_j_copy->begin, generator_j_copy->end};
 
                             if (image_data_i->DoesResourceMemoryOverlap(range_i, image_data_j, range_j)) {
                                 attachments[i].overlapping.emplace_back(j);