21 if (unused_handles_.is_empty()) {
22 handle = resources_.size();
25 handle = unused_handles_.pop_last();
28 Resource new_resource = {};
29 resources_.add_new(handle, new_resource);
37 "Image resource is added twice to the render graph.");
40 Resource &
resource = resources_.lookup(handle);
41 image_resources_.add_new(vk_image, handle);
45 resource.image.layer_count = layer_count;
51#ifdef VK_RESOURCE_STATE_TRACKER_VALIDATION
60 "Buffer resource is added twice to the render graph.");
63 Resource &
resource = resources_.lookup(handle);
64 buffer_resources_.add_new(vk_buffer, handle);
67 resource.buffer.vk_buffer = vk_buffer;
73#ifdef VK_RESOURCE_STATE_TRACKER_VALIDATION
88 resources_.pop(handle);
89 unused_handles_.append(handle);
91#ifdef VK_RESOURCE_STATE_TRACKER_VALIDATION
100 resources_.pop(handle);
101 unused_handles_.append(handle);
103#ifdef VK_RESOURCE_STATE_TRACKER_VALIDATION
119ResourceWithStamp VKResourceStateTracker::get_and_increase_stamp(
ResourceHandle handle,
130 Resource &
resource = resources_.lookup(handle);
131 return get_and_increase_stamp(handle,
resource);
137 Resource &
resource = resources_.lookup(handle);
138 return get_and_increase_stamp(handle,
resource);
144 const Resource &
resource = resources_.lookup(handle);
151 const Resource &
resource = resources_.lookup(handle);
155#ifdef VK_RESOURCE_STATE_TRACKER_VALIDATION
156void VKResourceStateTracker::validate()
const
176 BLI_assert(resources_.size() == image_resources_.size() + buffer_resources_.size());
182 std::ostream &os = std::cout;
183 os <<
"VKResourceStateTracker\n";
184 os <<
" resources=(" << resources_.size() <<
"/" << resources_.capacity() <<
")\n";
185 os <<
" buffers=(" << buffer_resources_.size() <<
"/" << buffer_resources_.capacity() <<
")\n";
186 os <<
" images=(" << image_resources_.size() <<
"/" << image_resources_.capacity() <<
")\n";
187 os <<
" unused=(" << unused_handles_.size() <<
"/" << unused_handles_.capacity() <<
")\n";
#define BLI_assert_msg(a, msg)
#define UNUSED_VARS_NDEBUG(...)
ValueIterator values() const &
const Value & lookup(const Key &key) const
bool contains(const Key &key) const
ItemIterator items() const &
MapItem< Key, Value > Item
ResourceWithStamp get_image_and_increase_stamp(VkImage vk_image)
ResourceWithStamp get_buffer_and_increase_stamp(VkBuffer vk_buffer)
ResourceWithStamp get_buffer(VkBuffer vk_buffer) const
void remove_buffer(VkBuffer vk_buffer)
void add_image(VkImage vk_image, uint32_t layer_count, const char *name=nullptr)
void add_buffer(VkBuffer vk_buffer, const char *name=nullptr)
void remove_image(VkImage vk_image)
ResourceWithStamp get_image(VkImage vk_image) const