41 #ifndef RV_VKDescriptorSet_h
42 #define RV_VKDescriptorSet_h
100 uint32_t array_stride,
101 uint32_t matrix_stride,
174 uint32_t buffer_size,
182 bool compare_uniforms_types,
183 bool compare_uniforms_names,
184 bool compare_binding_location,
185 bool compare_binding_stages)
const;
223 bool isValid()
const;
235 bool allow_missing_bindings,
236 bool allow_different_stages)
const;
244 return b_num < myBindings.size() &&
245 myBindings(b_num).isValid();
269 bool myHashValid =
false;
283 return myVkDescriptorSetLayout;
291 : myInst(other.myInst)
292 , myVkDescriptorSetLayout(other.myVkDescriptorSetLayout)
294 other.myVkDescriptorSetLayout =
nullptr;
306 : myInst(inst), myVkDescriptorSetLayout(vk_layout)
322 bool hasBinding(uint32_t binding, uint32_t element = 0);
346 VkBufferView buffer_view,
350 uint32_t dst_binding,
351 uint32_t dst_element,
352 uint32_t src_binding,
353 uint32_t src_element,
356 bool isDirty()
const;
394 const char*
name =
nullptr);
398 VkDescriptorSet vk_set,
420 VkDescriptorSet myVkDescriptorSet;
443 VkDescriptorPool vk_desc_pool)
444 : myInst(inst), mySizes(sizes), myVkDescPool(vk_desc_pool)
450 VkResult allocateSet(VkDescriptorSetLayout layout, VkDescriptorSet& set);
451 VkResult freeSet(VkDescriptorSet set);
484 void allocateNewPool();
486 VkDescriptorSet allocateVkDescriptorSet(VkDescriptorSetLayout vk_layout);
487 void freeVkDescriptorSet(VkDescriptorSet vk_set);
GLuint GLsizei const GLuint const GLintptr const GLsizeiptr * sizes
const RV_VKDescriptorSetInfo * getInfo() const
VkShaderStageFlags myStages
bool isCompatibleToMerge()
std::size_t SYS_HashType
Define the type for hash values.
void RVgetUniformSize(RV_UniformType type, int &out_typesize, bool &out_is_int, int &out_size, int &out_align, int &out_vec_num, int &out_col_num)
VkDescriptorSet getVkDescriptorSet()
UT_Array< RV_Uniform > myUniforms
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
CompareResults OIIO_API compare(const ImageBuf &A, const ImageBuf &B, float failthresh, float warnthresh, ROI roi={}, int nthreads=0)
void merge(const RV_VKDescriptorBinding &other)
bool compare(const RV_VKDescriptorBinding &other, bool compare_uniforms_types, bool compare_uniforms_names, bool compare_binding_location, bool compare_binding_stages) const
exint getLayoutID() const
GLuint const GLchar * name
Handle to the main interface of Vulkan.
const UT_Array< RV_VKDescriptorBinding > & getBindings() const
VkFlags VkDescriptorSetLayoutCreateFlags
bool hasBinding(uint32_t b_num) const
RV_VKDescriptorLayout(RV_VKDescriptorLayout &&other)
Reader/Writer mutex class.
RV_VKDescriptorBinding()=default
size_t hash_value(const CH_ChannelRef &ref)
FMT_INLINE void print(format_string< T...> fmt, T &&...args)
VkDescriptorSetLayout getVkDescriptorSetLayout() const
bool isCompatibleToBind()
RV_VKDescriptorPool(RV_Instance *inst, const UT_Array< VkDescriptorPoolSize > &sizes, VkDescriptorPool vk_desc_pool)
VkFlags VkShaderStageFlags