65 const VkAccelerationStructureKHR* accel_struct,
96 auto&
flags = myQueryFlags(idx);
97 return !
flags.myIsActiveRecording && !
flags.myIsFinishedRecording
98 && !
flags.myIsSubmitted && !
flags.myIsAvailable;
103 auto&
flags = myQueryFlags(idx);
104 return !
flags.myIsActiveRecording &&
flags.myIsFinishedRecording;
109 auto&
flags = myQueryFlags(idx);
110 return flags.myIsFinishedRecording &&
flags.myIsSubmitted;
115 auto&
flags = myQueryFlags(idx);
116 return flags.myIsFinishedRecording && !
flags.myIsAvailable;
138 bool privGetCPUResult(
148 VkQueryPool myVkQuery;
170 bool myIsResetRecorded =
false;
171 bool myIsActiveRecording =
false;
172 bool myIsFinishedRecording =
false;
175 bool myIsSubmitted =
false;
176 bool myIsAvailable =
false;
182 class RV_TimeStampQuery
194 int64 getTimestampNS();
GLenum GLuint GLenum GLsizei const GLchar * buf
int64 writeLongResult(RV_VKCommandBuffer *cb, RV_VKBuffer *buf, bool wait, int idx=0)
void end(RV_VKCommandBuffer *cb, int idx=0)
bool isSubmitted(int idx=0)
void writeTimestamp(RV_VKCommandBuffer *cb, VkPipelineStageFlagBits stage=VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, int idx=0)
int32 getResult(RV_Instance *inst, int idx=0)
bool isGPUExclusive() const
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
void writeResult(RV_VKCommandBuffer *cb, RV_VKBuffer *buf, bool wait, int idx=0)
GLint GLint GLsizei GLint GLenum GLenum type
int64 getLongResult(RV_Instance *inst, int idx=0)
void reset(RV_VKCommandBuffer *cb, int idx=0)
RV_VKCommandBuffer::Callback RVmakeFinishQueryTask(RV_VKQuery *query, int idx)
void softReset(int idx=0)
Handle to the main interface of Vulkan.
void operator()(RV_Instance *)
QueryType getType() const
bool isWaiting(int idx=0)
RV_FinishQueryTask(RV_VKQuery *query, int idx)
static UT_UniquePtr< RV_VKQuery > createQuery(RV_Instance *inst, int count, QueryType type, bool gpu_exclusive)
RV_VKQuery(RV_Instance *inst, int count, VkQueryPool pool, QueryType type, bool gpu_exclusive, const PassKey &)
bool begin(RV_VKCommandBuffer *cb, int idx=0)
void writeAccelStructCompactSize(RV_VKCommandBuffer *cb, const VkAccelerationStructureKHR *accel_struct, int idx=0)
VkFlags VkQueryResultFlags
void markSubmitted(int idx)
UT_Function< void(RV_Instance *)> Callback
bool isResultAvailable(RV_Instance *inst, int idx=0)
bool isDoneRecording(int idx=0)
**Note that the tasks the is the thread number *for the pool
PcpNodeRef_ChildrenIterator begin(const PcpNodeRef::child_const_range &r)
Support for range-based for loops for PcpNodeRef children ranges.