108 (VK_ACCESS_SHADER_WRITE_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT |
109 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | VK_ACCESS_TRANSFER_WRITE_BIT |
110 VK_ACCESS_HOST_WRITE_BIT | VK_ACCESS_MEMORY_WRITE_BIT));
141 VkBuffer vk_buffer = VK_NULL_HANDLE;
146 VkImage vk_image = VK_NULL_HANDLE;
156 VkImageLayout vk_image_layout = VK_IMAGE_LAYOUT_UNDEFINED;
169 VKResourceBarrierState barrier_state;
183 void reset_image_layout()
186 barrier_state.image_layout =
image.vk_image_layout;
200 bool has_multiple_layers()
205 return image.layer_count > 1;
209 Map<ResourceHandle, Resource> resources_;
210 Vector<ResourceHandle> unused_handles_;
211 Map<VkImage, ResourceHandle> image_resources_;
212 Map<VkBuffer, ResourceHandle> buffer_resources_;
231 void add_buffer(VkBuffer vk_buffer,
const char *name =
nullptr);
241 VkImageLayout vk_image_layout,
243 const char *name =
nullptr);
319 return resources_.lookup(resource_handle).type;
335#ifdef VK_RESOURCE_STATE_TRACKER_VALIDATION
336 void validate()
const;
#define ENUM_OPERATORS(_type, _max)
VKResourceType resource_type_get(ResourceHandle resource_handle) const
void add_image(VkImage vk_image, uint32_t layer_count, VkImageLayout vk_image_layout, ResourceOwner owner, const char *name=nullptr)
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)
friend class VKCommandBuilder
void add_buffer(VkBuffer vk_buffer, const char *name=nullptr)
void remove_image(VkImage vk_image)
ResourceWithStamp get_image(VkImage vk_image) const
void reset_image_layouts()
friend struct VKRenderGraphLink
input_tx image(0, GPU_RGBA16F, Qualifier::WRITE, ImageType::FLOAT_2D, "preview_img") .compute_source("compositor_compute_preview.glsl") .do_static_compilation(true)
uint64_t ModificationStamp
unsigned __int64 uint64_t
VkPipelineStageFlags vk_pipeline_stages
VkImageLayout image_layout
bool is_new_stamp() const