graphics: set the heap flag in ImageHeapResource

This commit is contained in:
nmzik committed 2026-10-23 07:22:33 +02:00
1 parent 38c884e8c1
commit f9e14084d6
2 files changed
+4 -3

No files matched your search

@@ -428,9 +428,9 @@ void ImageHeap::Rebind(RenderExecutor& executor) {
} }
for (const auto index: view->pending) { for (const auto index: view->pending) {
if (m_elements[index].refs == 0u) continue; if (m_elements[index].refs == 0u) continue;
auto resource = IR::ImageHeapResource(view->profile, m_elements[index].kind); auto binding = executor.ResolveTexture(
resource.heap = true; // Resolves only mapped textures. IR::ImageHeapResource(view->profile, m_elements[index].kind),
auto binding = executor.ResolveTexture(resource, m_elements[index].value); m_elements[index].value);
if (binding.image_id) { if (binding.image_id) {
auto& image = textures.GetImage(binding.image_id); auto& image = textures.GetImage(binding.image_id);
image.heap_refs.fetch_add(1u, std::memory_order_relaxed); image.heap_refs.fetch_add(1u, std::memory_order_relaxed);
@@ -1800,6 +1800,7 @@ uint32_t ImageHeapKind(const ImageResource& root, DescriptorValue& value) {
ImageResource ImageHeapResource(const ImageResource& root, uint32_t kind) { ImageResource ImageHeapResource(const ImageResource& root, uint32_t kind) {
ImageResource resource; ImageResource resource;
resource.resource_class = ImageResourceClass::Sampled; resource.resource_class = ImageResourceClass::Sampled;
resource.heap = true;
resource.dimension = root.dimension; resource.dimension = root.dimension;
resource.unfiltered_access_only = root.unfiltered_access_only; resource.unfiltered_access_only = root.unfiltered_access_only;
resource.depth_compare = root.depth_compare; resource.depth_compare = root.depth_compare;