PVRVk Classes#
AccelerationStructure_#
Defined in AccelerationStructureVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkAccelerationStructureKHR, ObjectType::e_ACCELERATION_STRUCTURE_KHR >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< AccelerationStructure_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class AccelerationStructure_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkAccelerationStructureKHR, ObjectType::e_ACCELERATION_STRUCTURE_KHR>, public pvrvk::impl::DeviceObjectDebugUtils<AccelerationStructure_>#
Top level acceleration structure implementation for the Vulkan Ray Tracing extension.
BufferView_#
Defined in BufferVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkBufferView, ObjectType::e_BUFFER_VIEW >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< BufferView_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class BufferView_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkBufferView, ObjectType::e_BUFFER_VIEW>, public pvrvk::impl::DeviceObjectDebugUtils<BufferView_>#
pvrvk implementation of a BufferView.
Public Functions
-
inline BufferViewCreateFlags getFlags() const#
Get the buffer view creation flags.
- Returns:
The set of buffer view creation flags
-
inline Format getFormat() const#
Get Buffer view format.
- Returns:
Buffer view format (Format)
-
inline DeviceSize getOffset() const#
Get the buffer view creation offset.
- Returns:
The set of buffer view creation offset
-
inline DeviceSize getRange() const#
Get the buffer view creation range.
- Returns:
The set of buffer view creation range
-
inline const BufferViewCreateInfo &getCreateInfo() const#
Get this buffer view’s create flags.
- Returns:
-
inline BufferViewCreateFlags getFlags() const#
Buffer_#
Defined in BufferVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkBuffer, ObjectType::e_BUFFER >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< Buffer_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class Buffer_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkBuffer, ObjectType::e_BUFFER>, public pvrvk::impl::DeviceObjectDebugUtils<Buffer_>#
Vulkan implementation of the Buffer.
Public Functions
-
inline DeviceMemory &getDeviceMemory()#
Return the DeviceMemory bound to this buffer. Note.
: only nonsparse buffer can have a bound memory block
- Returns:
MemoryBlock
-
inline BufferCreateFlags getFlags() const#
Get this buffer’s creation flags.
- Returns:
The set of buffer creation flags
-
inline bool hasCreateFlag(pvrvk::BufferCreateFlags flags) const#
Indicates whether the buffers creation flags includes the given flag.
- Parameters:
flags – A buffer creation flag
- Returns:
True if the buffers creation flags includes the given flag
-
inline bool hasUsageFlag(pvrvk::BufferUsageFlags flags) const#
Indicates whether the buffers usage flags includes the given flag.
- Parameters:
flags – A buffer usage flag
- Returns:
True if the buffers usage flags includes the given flag
-
inline DeviceSize getSize() const#
Get this buffer’s size.
- Returns:
The size of this buffer
-
inline SharingMode getSharingMode() const#
Get this buffer’s supported sharing mode.
- Returns:
A SharingMode structure specifying this buffer’s supported sharing mode
-
inline BufferUsageFlags getUsageFlags() const#
Get this buffer’s supported usage flags.
- Returns:
A BufferUsageFlags structure specifying this buffer’s supported usage flags
-
inline uint32_t getNumQueueFamilyIndices() const#
Get the number of queue families supported by this buffer.
- Returns:
The size of the list of supported queue family indices
-
inline const uint32_t *getQueueFamilyIndices() const#
Get this buffer’s pointer to supported queue families.
- Returns:
A pointer to a list of supported queue family indices
-
inline void bindMemory(DeviceMemory deviceMemory, VkDeviceSize offset)#
Call only on Non-sparse buffer. Binds a non-sparse memory block. This function must be called once after this buffer creation. Calling second time don’t do anything.
- Parameters:
deviceMemory – Device memory block to bind
offset – begin offset in the memory block
-
inline BufferCreateInfo getCreateInfo() const#
Get this buffer’s create flags.
- Returns:
-
inline bool isSparseBuffer() const#
Return true if this is a sparse buffer.
- Returns:
bool
-
inline const MemoryRequirements &getMemoryRequirement() const#
Get thus buffer memory requirements.
- Returns:
VkMemoryRequirements
-
inline DeviceMemory &getDeviceMemory()#
CommandBufferBase_#
Defined in CommandBufferVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkCommandBuffer, ObjectType::e_COMMAND_BUFFER >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< CommandBufferBase_ >
(DeviceObjectDebugUtils)
Derived Types#
public pvrvk::impl::CommandBuffer_
(CommandBuffer_)public pvrvk::impl::SecondaryCommandBuffer_
(SecondaryCommandBuffer_)
Class Documentation#
-
class CommandBufferBase_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkCommandBuffer, ObjectType::e_COMMAND_BUFFER>, public pvrvk::impl::DeviceObjectDebugUtils<CommandBufferBase_>#
Contains all the commands and states that need to be recorded for later submission to the gpu including pipelines, textures, descriptor sets. Virtually everything that needs to happen on the GPU is submitted to the CommandBuffer.
Subclassed by pvrvk::impl::CommandBuffer_, pvrvk::impl::SecondaryCommandBuffer_
Public Functions
-
void begin(const CommandBufferUsageFlags flags = CommandBufferUsageFlags(0))#
Call this function before beginning to record commands.
- Parameters:
flags – Flags is a bitmask of CommandBufferUsageFlags specifying usage behavior for the command buffer.
-
void end()#
Call this function when you are done recording commands. BeginRecording must be called first.
-
inline void beginDebugUtilsLabel(const pvrvk::DebugUtilsLabel &labelInfo)#
Begins identifying a region of work submitted to this command buffer. The calls to beginDebugUtilsLabel and endDebugUtilsLabel must be matched and balanced.
- Parameters:
labelInfo – Specifies the parameters of the label region to open
-
inline void endDebugUtilsLabel()#
Ends a label region of work submitted to this command buffer.
-
inline void insertDebugUtilsLabel(const pvrvk::DebugUtilsLabel &labelInfo)#
Inserts a single debug label any time.
- Parameters:
labelInfo – Specifies the parameters of the label region to insert
-
inline void debugMarkerBeginEXT(pvrvk::DebugMarkerMarkerInfo &markerInfo)#
Begins a debug marked region.
- Parameters:
markerInfo – Specifies the creation info for a marked region.
-
inline void debugMarkerEndEXT()#
Ends a debug marked region.
-
inline void debugMarkerInsertEXT(pvrvk::DebugMarkerMarkerInfo &markerInfo)#
Inserts a debug marker.
- Parameters:
markerInfo – Specifies creation info for the marker.
-
void resetQueryPool(QueryPool &queryPool, uint32_t firstQuery, uint32_t queryCount)#
Resets a particular range of queries for a particular QueryPool and sets their status’ to unavailable which also makes their numerical results undefined.
- Parameters:
queryPool – Specifies the query pool managing the queries being reset.
firstQuery – The first query index to reset.
queryCount – The number of queries to reset.
-
void resetQueryPool(QueryPool &queryPool, uint32_t queryIndex)#
Resets a particular range of queries for a particular QueryPool and sets their status’ to unavailable which also makes their numerical results undefined.
- Parameters:
queryPool – Specifies the query pool managing the queries being reset.
queryIndex – The query to reset.
-
void beginQuery(QueryPool &queryPool, uint32_t queryIndex, QueryControlFlags flags = QueryControlFlags(0))#
Begins a query for a particular QueryPool.
- Parameters:
queryPool – Specifies the query pool which will manage the results of the query.
queryIndex – The query index within the QueryPool which will contain the results.
flags – Specifies the Query Control Flag bits which provide constraints on the type of queries that can be performed.
-
void endQuery(QueryPool &queryPool, uint32_t queryIndex)#
Ends a query for a particular QueryPool.
- Parameters:
queryPool – Specifies the query pool which will manage the results of the query.
queryIndex – The query index within the QueryPool which will contain the results.
-
void copyQueryPoolResults(QueryPool &queryPool, uint32_t firstQuery, uint32_t queryCount, Buffer &dstBuffer, VkDeviceSize offset, VkDeviceSize stride, QueryResultFlags flags)#
Copies the query statuses and numerical results directly to buffer memory.
- Parameters:
queryPool – Specifies the query pool which will manage the results of the query.
firstQuery – The first query index within the QueryPool which will contain the results.
queryCount – The number of queries.
dstBuffer – A buffer object which will receive the results of the copy command.
offset – An offset into dstBuffer.
stride – The stride in bytes between results for individual queries within dstBuffer.
flags – Specifies how and when the results are returned.
-
void writeTimestamp(QueryPool &queryPool, uint32_t queryIndex, PipelineStageFlags pipelineStage)#
Requests a timestamp for a particular QueryPool to be written to the query.
- Parameters:
queryPool – Specifies the query pool which will manage the results of the query.
queryIndex – The query index within the QueryPool which will contain the results.
pipelineStage – Specifies the stage of the pipeline to write a timestamp for.
-
inline bool isRecording()#
Queries if a command buffer is in the recording state.
- Returns:
True if recording, false otherwise
-
inline void bindPipeline(const GraphicsPipeline &pipeline)#
Bind a graphics pipeline.
- Parameters:
pipeline – The GraphicsPipeline to bind.
-
inline void bindPipeline(ComputePipeline &pipeline)#
Bind a compute pipeline.
- Parameters:
pipeline – The ComputePipeline to bind
-
inline void bindPipeline(RaytracingPipeline &pipeline)#
Bind a ray tracing pipeline.
- Parameters:
pipeline – The RaytracingPipeline to bind
-
void bindDescriptorSets(PipelineBindPoint bindingPoint, const PipelineLayout &pipelineLayout, uint32_t firstSet, const DescriptorSet *sets, uint32_t numDescriptorSets, const uint32_t *dynamicOffsets = nullptr, uint32_t numDynamicOffsets = 0)#
Bind descriptorsets.
32_t values specifying dynamic offsets
- Parameters:
bindingPoint – Pipeline binding point
pipelineLayout – Pipeline layout
firstSet – The set number of the first descriptor set to be bound
sets – Pointer to the descriptor sets to be bound
numDescriptorSets – Number of descriptor sets
dynamicOffsets – Pointer to an array of uint
numDynamicOffsets – Number of dynamic offsets
-
inline void bindDescriptorSet(PipelineBindPoint bindingPoint, const PipelineLayout &pipelineLayout, uint32_t firstSet, const DescriptorSet set, const uint32_t *dynamicOffsets = nullptr, uint32_t numDynamicOffsets = 0)#
Bind descriptorset.
32_t values specifying dynamic offsets
-
inline void bindVertexBuffers(const Buffer *buffers, uint32_t firstBinding, uint16_t bindingCount, const uint32_t *offsets = nullptr)#
Bind vertex buffer.
- Parameters:
buffers – A set of vertex buffers to bind
firstBinding – The first index into buffers
bindingCount – The number of vertex buffers to bind
offsets – A pointer to an array of bindingCount buffer offsets
-
inline void bindVertexBuffer(const Buffer &buffer, uint32_t offset, uint16_t bindingIndex)#
Bind vertex buffer.
- Parameters:
buffer – Buffer
offset – Buffer offset
bindingIndex – The index of the vertex input binding whose state is updated by the command.
-
void bindVertexBuffer(Buffer const *buffers, uint32_t *offsets, uint16_t numBuffers, uint16_t startBinding, uint16_t numBindings)#
Bind vertex buffer.
- Parameters:
buffers – Buffers to be bound
offsets – Pointer to an array of buffer offsets.
numBuffers – number of buffers
startBinding – The indices of the first vertex input binding whose state is updated by the command.
numBindings – Number of bindings
-
inline void bindIndexBuffer(const Buffer &buffer, uint32_t offset, IndexType indexType)#
Bind index bufer.
- Parameters:
buffer – Imdex buffer
offset – Buffer offset
indexType – IndexType
-
void pipelineBarrier(PipelineStageFlags srcStage, PipelineStageFlags dstStage, const MemoryBarrierSet &barriers, bool dependencyByRegion = true)#
Add a memory barrier to the command stream, forcing preceeding commands to be written before succeeding commands are executed.
- Parameters:
srcStage – A bitmask of PipelineStageFlags specifying the src stage mask.
dstStage – A bitmask of PipelineStageFlags specifying the dst stage mask.
barriers – A set of memory barriers to be used in the pipeline barrier.
dependencyByRegion – A Specifes whether the dependencies in terms of how the execution and memory dependencies are formed.
-
void pipelineBarrier2(const MemoryBarrierSet2 &barriers, bool dependencyByRegion = true)#
Add a memory barrier to the command stream, forcing preceeding commands to be written before succeeding commands are executed, using the APIs from the extension VK_KHR_synchronization2.
- Parameters:
barriers – A set of memory barriers to be used in the pipeline barrier.
dependencyByRegion – A Specifes whether the dependencies in terms of how the execution and memory dependencies are formed.
-
void waitForEvent(const Event &event, PipelineStageFlags srcStage, PipelineStageFlags dstStage, const MemoryBarrierSet &barriers)#
Defines a memory dependency between prior event signal operations and subsequent commands.
- Parameters:
event – The event object to wait on.
srcStage – A bitmask of PipelineStageFlags specifying the src stage mask.
dstStage – A bitmask of PipelineStageFlags specifying the dst stage mask.
barriers – A set of memory barriers to be used in the pipeline barrier.
-
void waitForEvents(const Event *events, uint32_t numEvents, PipelineStageFlags srcStage, PipelineStageFlags dstStage, const MemoryBarrierSet &barriers)#
Defines a set of memory dependencies between prior event signal operations and subsequent commands.
- Parameters:
events – A pointer to an array of Event objects to wait on.
numEvents – The number of event objects to wait on.
srcStage – A bitmask of PipelineStageFlags specifying the src stage mask.
dstStage – A bitmask of PipelineStageFlags specifying the dst stage mask.
barriers – A set of .
-
inline void setEvent(Event &event, PipelineStageFlags pipelineStageFlags = PipelineStageFlags::e_ALL_COMMANDS_BIT)#
Defines an execution dependency on commands that were submitted before it, and defines an event signal operation which sets the event to the signaled state.
- Parameters:
event – The event object that will be signaled.
pipelineStageFlags – Specifies the src stage mask used to determine when the event is signaled.
-
inline void resetEvent(Event &event, PipelineStageFlags pipelineStageFlags = PipelineStageFlags::e_ALL_COMMANDS_BIT)#
Defines an execution dependency on commands that were submitted before it, and defines an event unsignal operation which resets the event to the unsignaled state.
- Parameters:
event – The event object that will be unsignaled.
pipelineStageFlags – Is a bitmask of PipelineStageFlags specifying the src stage mask used to determine when the event is unsignaled.
-
inline void reset(CommandBufferResetFlags resetFlags = CommandBufferResetFlags::e_NONE)#
Clears this CommandBuffer discarding any previously recorded commands and puts the command buffer in the initial state.
- param resetFlags:
Is a bitmask of CommandBufferResetFlagBits controlling the reset operation.
-
void copyImage(const Image &srcImage, const Image &dstImage, ImageLayout srcImageLayout, ImageLayout dstImageLayout, uint32_t numRegions, const ImageCopy *regions)#
Copy data between Images.
- Parameters:
srcImage – Source image
dstImage – Destination image
srcImageLayout – Source image layout
dstImageLayout – Destination image layout
regions – Regions to copy
numRegions – Number of regions
-
void copyImageToBuffer(const Image &srcImage, ImageLayout srcImageLayout, Buffer &dstBuffer, const BufferImageCopy *regions, uint32_t numRegions)#
Copy image to buffer.
- Parameters:
srcImage – Source image to copy from
srcImageLayout – Current src image layout
dstBuffer – Destination buffer
regions – Regions to copy
numRegions – Number of regions
-
void copyBuffer(const Buffer &srcBuffer, const Buffer &dstBuffer, uint32_t numRegions, const BufferCopy *regions)#
Copy Buffer.
- Parameters:
srcBuffer – Source buffer
dstBuffer – Destination buffer
numRegions – Number of regions to copy
regions – Pointer to an array of BufferCopy structures specifying the regions to copy. Each region in pRegions is copied from the source buffer to the same region of the destination buffer. srcBuffer and dstBuffer can be the same buffer or alias the same memory, but the result is undefined if the copy regions overlap in memory.
-
void copyBufferToImage(const Buffer &buffer, const Image &image, ImageLayout dstImageLayout, uint32_t regionsCount, const BufferImageCopy *regions)#
Copy buffer to image.
- Parameters:
buffer – Source Buffer
image – Destination image
dstImageLayout – Destination image’s current layout
regionsCount – Copy regions
regions – Number of regions
-
void fillBuffer(const Buffer &dstBuffer, uint32_t dstOffset, uint32_t data, uint64_t size = VK_WHOLE_SIZE)#
Clear buffer data.
- Parameters:
dstBuffer – Destination buffer to be filled
dstOffset – The byte offset into the buffer at which to start filling.
data – A 4-byte word written repeatedly to the buffer to fill size bytes of data. The data word is written to memory according to the host endianness.
size – The number of bytes to fill, and must be either a multiple of 4, or VK_WHOLE_SIZE to fill the range from offset to the end of the buffer
-
void setViewport(const Viewport &viewport)#
Set viewport.
- Parameters:
viewport – Viewport
-
void clearAttachments(const uint32_t numAttachments, const ClearAttachment *clearAttachments, uint32_t numRectangles, const ClearRect *clearRectangles)#
Clear a set of attacments using a number of regions for each selected attachment to clear whilst inside a renderpass.
- Parameters:
numAttachments – The number of entries in the clearAttachments array.
clearAttachments – Is a pointer to an array of ClearAttachment structures which defines the attachments to clear and the clear values to use.
numRectangles – Is the number of entries in the clearRects array.
clearRectangles – Points to an array of ClearRect structures defining regions within each selected attachment to clear.
-
inline void clearAttachment(const ClearAttachment &clearAttachment, const ClearRect &clearRectangle)#
Clears a particular attachment using a provided region whilst inside of a renderpass.
- Parameters:
clearAttachment – A single ClearAttachment structure defining the attachment to clear and the clear value to use
clearRectangle – A ClearRect structure defining a region within the attachment to clear
-
void draw(uint32_t firstVertex, uint32_t numVertices, uint32_t firstInstance = 0, uint32_t numInstances = 1)#
Non-indexed drawing command.
- Parameters:
firstVertex – The index of the first vertex to draw.
numVertices – The number of vertices to draw.
firstInstance – The instance ID of the first instance to draw.
numInstances – The number of instances to draw.
-
void drawIndexed(uint32_t firstIndex, uint32_t numIndices, int32_t vertexOffset = 0, uint32_t firstInstance = 0, uint32_t numInstances = 1)#
Indexed drawing command.
- Parameters:
firstIndex – The base index within the index buffer.
numIndices – The number of vertices to draw.
vertexOffset – The value added to the vertex index before indexining into the vertex buffer.
firstInstance – The instance ID of the first instance to draw.
numInstances – The number of instances to draw.
-
void drawIndirect(const Buffer &buffer, uint32_t offset, uint32_t count, uint32_t stride)#
Non-indexed indirect drawing command.
- Parameters:
buffer – The buffer containing draw parameters.
offset – The byte offset into buffer where parameters begin.
count – The number of draws to execute.
stride – The byte stride between successive sets of draw commands.
-
void drawIndexedIndirect(const Buffer &buffer, uint32_t offset, uint32_t count, uint32_t stride)#
Non-indexed indirect drawing command.
- Parameters:
buffer – The buffer containing draw parameters.
offset – The byte offset into buffer where parameters begin.
count – The number of draws to execute.
stride – The byte stride between successive sets of draw commands.
-
void dispatch(uint32_t numGroupX, uint32_t numGroupY, uint32_t numGroupZ)#
Dispatching work provokes work in a compute pipeline. A compute pipeline must be bound to the command buffer before any dispatch commands are recorded.
- Parameters:
numGroupX – The number of local workgroups to dispatch in the X dimension.
numGroupY – The number of local workgroups to dispatch in the Y dimension.
numGroupZ – The number of local workgroups to dispatch in the Z dimension.
-
void dispatchIndirect(Buffer &buffer, uint32_t offset)#
Dispatching work provokes work in a compute pipeline. A compute pipeline must be bound to the command buffer before any dispatch commands are recorded. dispatchIndirect behaves similarly to dispatch except that the parameters are read by the device from a buffer during execution. The parameters of the dispatch are encoded in a DispatchIndirectCommand structure taken from buffer starting at offset.
- Parameters:
buffer – The buffer containing dispatch parameters.
offset – The byte offset into buffer where parameters begin.
-
void clearColorImage(const ImageView &image, const ClearColorValue &clearColor, ImageLayout currentLayout, const uint32_t baseMipLevel = 0, const uint32_t numLevels = 1, const uint32_t baseArrayLayer = 0, const uint32_t numLayers = 1)#
Clears a color image outside of a renderpass instance.
- Parameters:
image – Image to clear
clearColor – Clear color value
currentLayout – Image current layout
baseMipLevel – Base mip map level to clear
numLevels – Number of mipmap levels to clear
baseArrayLayer – Base array layer to clear
numLayers – Number of array layers to clear
-
void clearColorImage(const ImageView &image, const ClearColorValue &clearColor, ImageLayout currentLayout, const uint32_t *baseMipLevels, const uint32_t *numLevels, const uint32_t *baseArrayLayers, const uint32_t *numLayers, uint32_t numRanges)#
Clears a color image outside of a renderpass instance using a number of ranges.
- Parameters:
image – Image to clear.
clearColor – Clear color value.
currentLayout – Image current layout.
baseMipLevels – Base mip map level to clear.
numLevels – A pointer to an array of a number of mipmap levels to clear.
baseArrayLayers – A pointer to an array of base array layers to clear.
numLayers – A pointer to an array array layers to clear.
numRanges – The number of elements in the baseMipLevel, numLevels, baseArrayLayers and numLayers arrays.
-
void clearDepthStencilImage(const Image &image, float clearDepth, uint32_t clearStencil, const uint32_t baseMipLevel, const uint32_t numLevels, const uint32_t baseArrayLayer, const uint32_t numLayers, ImageLayout layout)#
Clear depth stencil image outside of a renderpass instance.
- Parameters:
image – Image to clear
clearDepth – Clear depth value
clearStencil – Clear stencil value
baseMipLevel – Base mip map level to clear
numLevels – Number of mipmap levels to clear
baseArrayLayer – Base array layer to clear
numLayers – Number of array layers to clear
layout – Image current layout
-
void clearDepthStencilImage(const Image &image, float clearDepth, uint32_t clearStencil, const uint32_t *baseMipLevels, const uint32_t *numLevels, const uint32_t *baseArrayLayers, const uint32_t *numLayers, uint32_t numRanges, ImageLayout layout)#
Clear depth stencil image outside of a renderpass instance using a number of ranges.
- Parameters:
image – Image to clear
clearDepth – Clear depth value
clearStencil – Clear stencil value
baseMipLevels – A pointer to an array of base mip map levels to clear
numLevels – A pointer to an array of the number of mipmap levels to clear
baseArrayLayers – A pointer to an array of base array layers to clear
numLayers – A pointer to an array of the number of layers to clear
numRanges – A number of ranges of the depth stencil image to clear. This number will be used as the number of array elements in the arrays passed to baseMipLevels, numLevels, baseArrayLayers and numLayers
layout – Image current layout
-
void clearStencilImage(const Image &image, uint32_t clearStencil, const uint32_t baseMipLevel, const uint32_t numLevels, const uint32_t baseArrayLayer, const uint32_t numLayers, ImageLayout layout)#
Clears a stencil image outside of a renderpass instance.
- Parameters:
image – Image to clear
clearStencil – Clear stencil value
baseMipLevel – Base mip map level to clear
numLevels – Number of mipmap levels to clear
baseArrayLayer – Base array layer to clear
numLayers – Number of array layers to clear
layout – Image current layout
-
void clearStencilImage(const Image &image, uint32_t clearStencil, const uint32_t *baseMipLevels, const uint32_t *numLevels, const uint32_t *baseArrayLayers, const uint32_t *numLayers, uint32_t numRanges, ImageLayout layout)#
Clear stencil image outside of a renderpass instance using a number of ranges.
- Parameters:
image – Image to clear
clearStencil – Clear stencil value
baseMipLevels – A pointer to an array of base mip map levels to clear
numLevels – A pointer to an array of the number of mipmap levels to clear
baseArrayLayers – A pointer to an array of base array layers to clear
numLayers – A pointer to an array of the number of layers to clear
numRanges – A number of ranges of the stencil image to clear. This number will be used as the number of array elements in the arrays passed to baseMipLevels, numLevels, baseArrayLayers and numLayers
layout – Image current layout
-
void clearDepthImage(const Image &image, float clearDepth, const uint32_t baseMipLevel, const uint32_t numLevels, const uint32_t baseArrayLayer, const uint32_t numLayers, ImageLayout layout)#
Clear depth image outside of a renderpass instance.
- Parameters:
image – Image to clear
clearDepth – Clear value
baseMipLevel – Base mip map level to clear
numLevels – Number of mipmap levels to clear
baseArrayLayer – Base arraylayer to clear
numLayers – Number of array layers to clear
layout – Current layout of the image
-
void clearDepthImage(const Image &image, float clearDepth, const uint32_t *baseMipLevels, const uint32_t *numLevels, const uint32_t *baseArrayLayers, const uint32_t *numLayers, uint32_t numRanges, ImageLayout layout)#
Clears the depth image outside of a renderpass instance using a number of ranges.
- Parameters:
image – Image to clear
clearDepth – Clear depth value
baseMipLevels – A pointer to an array of base mip map levels to clear
numLevels – A pointer to an array of the number of mipmap levels to clear
baseArrayLayers – A pointer to an array of base array layers to clear
numLayers – A pointer to an array of the number of layers to clear
numRanges – A number of ranges of the stencil image to clear. This number will be used as the number of array elements in the arrays passed to baseMipLevels, numLevels, baseArrayLayers and numLayers
layout – Image current layout
-
void setScissor(uint32_t firstScissor, uint32_t numScissors, const Rect2D *scissors)#
Sets the dynamic scissor state affecting pipeline objects created with VK_DYNAMIC_STATE_SCISSOR enabled.
- Parameters:
firstScissor – The index of the first scissor whose state is updated.
numScissors – The number of scissors whose rectangles are updated.
scissors – A pointer to an array of Rect2Di structures defining scissor rectangles.
-
void setDepthBounds(float min, float max)#
Sets the dynamic depth bounds state affecting pipeline objects created with VK_DYNAMIC_STATE_DEPTH_BOUNDS enabled.
- Parameters:
min – The lower bound of the range of depth values used in the depth bounds test.
max – The upper bound of the range.
-
void setStencilWriteMask(StencilFaceFlags face, uint32_t writeMask)#
Sets the dynamic stencil write mask state affecting pipeline objects created with VK_DYNAMIC_STATE_STENCIL_WRITE_MASK enabled.
- Parameters:
face – A bitmask of StencilFaceFlags specifying the set of stencil state for which to update the write mask.
writeMask – The new value to use as the stencil write mask
-
void setStencilReference(StencilFaceFlags face, uint32_t reference)#
Sets the dynamic stencil reference mask state affecting pipeline objects created with VK_DYNAMIC_STATE_STENCIL_REFERENCE enabled.
- Parameters:
face – A bitmask of StencilFaceFlags specifying the set of stencil state for which to update the reference value.
reference – The new value to use as the stencil reference value.
-
void setStencilCompareMask(StencilFaceFlags face, uint32_t compareMask)#
Sets the dynamic stencil compare mask state affecting pipeline objects created with VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK enabled.
- Parameters:
face – A bitmask of StencilFaceFlags specifying the set of stencil state for which to update the compare mask.
compareMask – The new value to use as the stencil compare value.
-
void setDepthBias(float constantFactor, float clamp, float slopeFactor)#
Sets the dynamic depth bias state affecting pipeline objects created where depthBiasEnable is enabled.
- Parameters:
constantFactor – A scalar factor controlling the constant depth value added to each fragment.
clamp – The maximum (or minimum) depth bias of a fragment.
slopeFactor – A scalar factor applied to a fragment’s slope in depth bias calculations.
-
void setBlendConstants(float rgba[4])#
Sets the dynamic blend constant bias state affecting pipeline objects created with VK_DYNAMIC_STATE_BLEND_CONSTANTS enabled.
- Parameters:
rgba – An array of four values specifying the R, G, B, and A components of the blend constant color used in blending, depending on the blend factor
-
void setLineWidth(float lineWidth)#
Sets the dynamic line width state affecting pipeline objects created with VK_DYNAMIC_STATE_LINE_WIDTH enabled.
- Parameters:
lineWidth – The width of rasterized line segments.
-
void blitImage(const Image &srcImage, const Image &dstImage, const ImageBlit *regions, uint32_t numRegions, Filter filter, ImageLayout srcLayout, ImageLayout dstLayout)#
Copies regions of a src image into a dst image, potentially also performing format conversions, aritrary scaling and filtering.
- Parameters:
srcImage – The src Image in the copy.
dstImage – The dst image.
regions – A pointer to an array of ImageBlitRange structures specifying the regions to blit.
numRegions – The number of regions to blit.
filter – A Filter specifying the filter to apply if the blits require scaling
srcLayout – The layout of the src image subresrcs for the blit.
dstLayout – The layout of the dst image subresrcs for the blit.
-
void resolveImage(const Image &srcImage, const Image &dstImage, const ImageResolve *regions, uint32_t numRegions, ImageLayout srcLayout, ImageLayout dstLayout)#
Copies regions of a src image into a dst image, potentially also performing format conversions, aritrary scaling and filtering.
- Parameters:
srcImage – The src Image in the copy.
dstImage – The dst image.
regions – A pointer to an array of ImageBlitRange structures specifying the regions to blit.
numRegions – The number of regions to blit.
srcLayout – The layout of the src image subresrcs for the blit.
dstLayout – The layout of the dst image subresrcs for the blit.
-
void updateBuffer(const Buffer &buffer, const void *data, uint32_t offset, uint32_t length)#
Updates buffer data inline in a command buffer. The update is only allowed outside of a renderpass and is treated as a transfer operation for the purposes of syncrhonization.
- Parameters:
buffer – The buffer to be updated.
data – A pointer to the src data for the buffer update. The data must be at least length bytes in size.
offset – The byte offset into the buffer to start updating, and must be a multiple of 4.
length – The number of bytes to update, and must be a multiple of 4.
-
void pushConstants(const PipelineLayout &pipelineLayout, ShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void *data)#
Updates the value of shader push constants at the offset specified.
- Parameters:
pipelineLayout – The pipeline layout used to program the push constant updates.
stageFlags – A bitmask of ShaderStageFlag specifying the shader stages that will use the push constants in the updated range.
offset – The start offset of the push constant range to update, in units of bytes.
size – The size of the push constant range to update, in units of bytes.
data – An array of size bytes containing the new push constant values.
-
void bindTransformFeedbackBuffers(pvrvk::Buffer buffer, VkDeviceSize offset, VkDeviceSize size = VK_WHOLE_SIZE)#
Binds a transform feedback buffer to the command buffer for use in subsequent draw commands.
- Parameters:
buffer – A buffer to bind the command buffer.
offset – A buffer offset.
size – An optional buffer size, which specifies the maximum number of bytes to capture to the corresponding transform feedback buffer.
-
void bindTransformFeedbackBuffers(uint32_t firstBinding, uint32_t bindingCount, const pvrvk::Buffer *buffers, const VkDeviceSize *offsets, const VkDeviceSize *sizes = nullptr)#
Binds a set of transform feedback buffers to the command buffer for use in subsequent draw commands.
- Parameters:
firstBinding – The index of the first transform feedback binding whose state is updated by the command.
bindingCount – The number of transform feedback bindings whose state is updated by the command.
buffers – A list of buffers to bind the command buffer.
offsets – Pointer to an array of buffer offsets.
sizes – An optional array of buffer sizes, which specifies the maximum number of bytes to capture to the corresponding transform feedback buffer.
-
void beginTransformFeedback(uint32_t firstCounterBuffer, uint32_t numCounterBuffers, const pvrvk::Buffer *counterBuffers = nullptr, const VkDeviceSize *counterBufferOffsets = nullptr)#
Makes active transform feedback for specific transform feedback buffers.
- Parameters:
firstCounterBuffer – Index of the first transform feedback buffer.
numCounterBuffers – The number of buffers.
counterBuffers – An optional list of buffers where the handles of the buffers correspond to the counter buffers which contain a 4 byte integer value representing the byte offset from the start of the corresponding transform feedback buffer from where to start capturing vertex data.
counterBufferOffsets – An optional array of offsets within each of the pCounterBuffers where the counter values were previously written.
-
void beginTransformFeedback(pvrvk::Buffer counterBuffer, VkDeviceSize counterBufferOffset = 0)#
Makes active transform feedback for specific transform feedback buffers.
- Parameters:
counterBuffer – The handle of the buffer correspond to the counter buffer which contains a 4 byte integer value representing the byte offset from the start of the corresponding transform feedback buffer from where to start capturing vertex data.
counterBufferOffset – An optional offset within the counterBuffer where the counter values were previously written.
-
void endTransformFeedback(uint32_t firstCounterBuffer, uint32_t numCounterBuffers, const pvrvk::Buffer *counterBuffers = nullptr, const VkDeviceSize *counterBufferOffsets = nullptr)#
Makes inactive transform feedback for specific transform feedback buffers.
- Parameters:
firstCounterBuffer – Index of the first transform feedback buffer.
numCounterBuffers – The number of buffers.
counterBuffers – An optional list of buffers where the handles of the buffers correspond to the counter buffers which contain a 4 byte integer value representing the byte offset from the start of the corresponding transform feedback buffer from where to start capturing vertex data.
counterBufferOffsets – An optional array of offsets within each of the pCounterBuffers where the counter values were previously written.
-
void endTransformFeedback(pvrvk::Buffer counterBuffer, VkDeviceSize counterBufferOffset = 0)#
Makes inactive transform feedback for specific transform feedback buffers.
- Parameters:
counterBuffer – The handle of the buffer correspond to the counter buffer which contains a 4 byte integer value representing the byte offset from the start of the corresponding transform feedback buffer from where to start capturing vertex data.
counterBufferOffset – An optional offset within the counterBuffer where the counter values were previously written.
-
void beginQueryIndexed(QueryPool &queryPool, uint32_t queryIndex, QueryControlFlags flags = QueryControlFlags(0), uint32_t index = 0)#
Begins a query for a particular QueryPool.
- Parameters:
queryPool – Specifies the query pool which will manage the results of the query.
queryIndex – The query index within the QueryPool which will contain the results.
flags – Specifies the Query Control Flag bits which provide constraints on the type of queries that can be performed.
index – The query type specific index.
-
void endQueryIndexed(QueryPool &queryPool, uint32_t queryIndex, uint32_t index = 0)#
Ends a query for a particular QueryPool.
- Parameters:
queryPool – Specifies the query pool which will manage the results of the query.
queryIndex – The query index within the QueryPool which will contain the results.
index – The query type specific index.
-
void drawIndirectByteCount(uint32_t instanceCount, uint32_t firstInstance, pvrvk::Buffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride)#
Records a non-indexed draw call, where the vertex count is based on a byte count read from a buffer and the passed in vertex stride parameter.
- Parameters:
instanceCount – The number of instances to draw.
firstInstance – The instance ID of the first instance to draw.
counterBuffer – The buffer handle from where the byte count is read.
counterBufferOffset – The offset into the buffer used to read the byte count, which is used to calculate the vertex count for this draw call.
counterOffset – Is subtracted from the byte count read from the counterBuffer at the counterBufferOffset.
vertexStride – The stride in bytes between each element of the vertex data that is used to calculate the vertex count from the counter value
-
inline const CommandPool getCommandPool() const#
Const getter for the command pool used to allocate this command buffer.
- Returns:
The command pool used to allocate this command buffer.
-
void setFragmentShadingRate(Extent2D fragmentSize, FragmentShadingRateCombinerOpKHR combinerOpPipelinePrimitive, FragmentShadingRateCombinerOpKHR combinerOpResultAttachment)#
Set pipeline fragment shading rate.
- Parameters:
fragmentSize – The fragment size to be used for pipeline fragment shading rate.
combinerOpPipelinePrimitive – Defines how the pipeline fragment size (Axy) interacts with the primitive fragment size (Bxy). The resulting fragment size is Cxy = CombineOp(Axy, Bxy) as described in the vulkan spec. Default value is KEEP, resulting in Cxy = Axy.
combinerOpResultAttachment – Defines how the resulting fragment size from the pipeline/primitive combine operation (Axy) interacts with the attachment fragment size (Bxy). The final fragment size is Cxy = CombineOp(Axy, Bxy) as described in the vulkan spec. Default value is KEEP, resulting in Cxy = Axy.
-
inline void traceRays(pvrvk::StridedDeviceAddressRegionKHR &raygenTable, pvrvk::StridedDeviceAddressRegionKHR &missTable, pvrvk::StridedDeviceAddressRegionKHR &hitTable, pvrvk::StridedDeviceAddressRegionKHR &callableTable, int width, int height, int depth)#
-
inline void setVKSynchronization2IsSupported(bool value)#
Setter of member variablle _VKSynchronization2IsSupported.
- Parameters:
value – Value to set _VKSynchronization2IsSupported to.
Protected Attributes
-
std::vector<std::shared_ptr<void>> _objectReferences#
Holds a list of references to the objects currently in use by this command buffer. This ensures that objects are kept alive through reference counting until the command buffer is finished with them.
-
CommandPool _pool#
The command pool from which this command buffer was allocated.
-
bool _isRecording#
Specifies whether the command buffer is currently in the recording state which is controlled via calling the begin function.
-
bool _VKSynchronization2IsSupported#
True in case the extension VK_KHR_synchronization2 is supported, needed to use synchronizaton APIs using this extension like pipelineBarrier2///.
Protected Static Functions
Protected function used to create a pvrvk::CommandBufferBase. Note that this function shouldn’t normally be called directly and will be called by a friend of CommandBufferBase_ which will generally be a CommandPool.
- Parameters:
device – The device used to allocate the command buffer.
pool – The pool from which the command buffer will be allocated.
myHandle – The vulkan handle for this command buffer.
- Returns:
Returns a successfully created pvrvk::CommandBufferBase
A class which restricts the creation of a pvrvk::CommandBufferBase to children or friends of a pvrvk::impl::CommandBufferBase_.
Subclassed by pvrvk::impl::CommandBuffer_::make_shared_enabler, pvrvk::impl::SecondaryCommandBuffer_::make_shared_enabler
Protected Functions
Constructor for a make_shared_enabler.
Friends
- friend class CommandBufferBase_
-
void begin(const CommandBufferUsageFlags flags = CommandBufferUsageFlags(0))#
CommandBuffer_#
Defined in CommandBufferVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Type#
public pvrvk::impl::CommandBufferBase_
(CommandBufferBase_)
Class Documentation#
-
class CommandBuffer_ : public pvrvk::impl::CommandBufferBase_#
Contains all the commands and states that need to be recorded for later submission to the gpu including pipelines, textures, descriptor sets. Virtually everything that needs to happen on the GPU is submitted to the CommandBuffer.
Public Functions
-
void executeCommands(const SecondaryCommandBuffer &secondaryCmdBuffer)#
Record commands from the secondary command buffer.
- Parameters:
secondaryCmdBuffer – Record all commands from a secondary command buffer
-
void executeCommands(const SecondaryCommandBuffer *secondaryCmdBuffers, uint32_t numCommandBuffers)#
Record commands from an array of secondary command buffer.
- Parameters:
secondaryCmdBuffers – A c-style array of SecondaryCommandBuffers
numCommandBuffers – The number of SecondaryCommandBuffers in secondaryCmdBuffers
-
void beginRenderPass(const Framebuffer &framebuffer, const RenderPass &renderPass, const Rect2D &renderArea, bool inlineFirstSubpass = false, const ClearValue *clearValues = nullptr, uint32_t numClearValues = 0)#
Begins the renderpass for the provided Framebuffer and renderpass and using a specific renderable area.
- Parameters:
framebuffer – A Framework wrapped Vulkan Framebuffer object to use as part of the VkRenderPassBeginInfo structure.
renderPass – A Framework wrapped Vulkan RenderPass object to use as part of the VkRenderPassBeginInfo structure.
renderArea – Specifies the render area that is affected by the renderpass instance.
inlineFirstSubpass – Specifies whether the renderpass uses an inline subpass as its first subpass.
clearValues – A pointer to a list of ClearValue structures which will be used as part of the VkRenderPassBeginInfo structure.
numClearValues – The number or ClearValue structures passed to the VkRenderPassBeginInfo structure.
-
void beginRenderPass(const Framebuffer &framebuffer, const Rect2D &renderArea, bool inlineFirstSubpass = false, const ClearValue *clearValues = nullptr, uint32_t numClearValues = 0)#
Begins a renderpass for the provided Framebuffer taking the renderpass from the provided Framebuffer and using a specific renderable area.
- Parameters:
framebuffer – A Framework wrapped Vulkan Framebuffer object to use as part of the VkRenderPassBeginInfo structure.
renderArea – Specifies the render area that is affected by the renderpass instance.
inlineFirstSubpass – Specifies whether the renderpass uses an inline subpass as its first subpass.
clearValues – A pointer to a list of ClearValue structures which will be used as part of the VkRenderPassBeginInfo structure.
numClearValues – The number or ClearValue structures passed to the VkRenderPassBeginInfo structure.
-
void beginRenderPass(const Framebuffer &framebuffer, bool inlineFirstSubpass = false, const ClearValue *clearValues = nullptr, uint32_t numClearValues = 0)#
Begins a renderpass for the provided Framebuffer taking the renderpass from the provided Framebuffer and taking the renderable area from the Framebuffer.
- Parameters:
framebuffer – A Framework wrapped Vulkan Framebuffer object to use as part of the VkRenderPassBeginInfo structure.
inlineFirstSubpass – Specifies whether the renderpass uses an inline subpass as its first subpass.
clearValues – A pointer to a list of ClearValue structures which will be used as part of the VkRenderPassBeginInfo structure.
numClearValues – The number or ClearValue structures passed to the VkRenderPassBeginInfo structure.
-
inline void endRenderPass()#
Finish the a renderpass (executes the StoreOp).
-
inline void nextSubpass(SubpassContents contents)#
Record next sub pass commands from a secondary-commandbuffer.
- Parameters:
contents – Specifies how the commands in the next subpass will be provided, in the same fashion as the corresponding parameter of beginRenderPass.
Protected Static Functions
Protected function used to create a pvrvk::CommandBuffer. Note that this function shouldn’t normally be called directly and will be called by a friend of CommandBuffer_ which will generally be a CommandPool.
- Parameters:
device – The device used to allocate the secondary command buffer.
pool – The pool from which the command buffer will be allocated.
myHandle – The vulkan handle for this command buffer.
- Returns:
Returns a successfully created pvrvk::CommandBuffer
Friends
- friend class CommandPool_
A class which restricts the creation of a pvrvk::CommandBuffer to children or friends of a pvrvk::impl::CommandBuffer_.
Protected Functions
Constructor for a make_shared_enabler.
Protected Attributes
- friend CommandBuffer_
Indicates that a pvrvk::impl::CommandBuffer_ is a friend.
-
void executeCommands(const SecondaryCommandBuffer &secondaryCmdBuffer)#
CommandPool_#
Defined in CommandPoolVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkCommandPool, ObjectType::e_COMMAND_POOL >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< CommandPool_ >
(DeviceObjectDebugUtils)public std::enable_shared_from_this< CommandPool_ >
Class Documentation#
-
class CommandPool_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkCommandPool, ObjectType::e_COMMAND_POOL>, public pvrvk::impl::DeviceObjectDebugUtils<CommandPool_>, public std::enable_shared_from_this<CommandPool_>#
Vulkan implementation of the Command Pool class. Destroying the commandpool will also destroys the commandbuffers allocated from this pool.
Public Functions
-
CommandBuffer allocateCommandBuffer()#
Allocate a primary commandBuffer.
- Returns:
Return a valid commandbuffer if allocation is successful, otherwise a null CommandBuffer
-
void allocateCommandBuffers(uint32_t numCommandbuffers, CommandBuffer *outCmdBuffers)#
Allocate primary commandbuffers.
- Parameters:
numCommandbuffers – Number of commandbuffers to allocate
outCmdBuffers – Allocated commandbuffers
-
SecondaryCommandBuffer allocateSecondaryCommandBuffer()#
Allocate a secondary commandBuffer.
- Returns:
Return a valid commandbuffer if allocation success, otherwise a null CommandBuffer
-
void allocateSecondaryCommandBuffers(uint32_t numCommandbuffers, SecondaryCommandBuffer *outCmdBuffers)#
Allocate secondary commandbuffers.
- Parameters:
numCommandbuffers – Number of commmandbuffers to allocate
outCmdBuffers – allocated commandbuffers
-
inline CommandPoolCreateFlags getFlags() const#
Get the command pool creation flags.
- Returns:
The set of command pool creation flags
-
inline uint32_t getQueueFamilyIndex() const#
Get the queue family index.
- Returns:
The queue family index, all command buffers allocated from this command pool must be submitted to queues from the same queue family
-
void reset(pvrvk::CommandPoolResetFlags flags)#
Resets the command pool and also optionally recycles all of the resoources of all of the command buffers allocated from the command pool.
- Parameters:
flags – VkCommandPoolResetFlags controls the reset operation
- Returns:
Return true if success
-
CommandBuffer allocateCommandBuffer()#
ComputePipeline_#
Defined in ComputePipelineVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Type#
public pvrvk::impl::Pipeline< ComputePipeline, ComputePipelineCreateInfo >
(Pipeline)
Class Documentation#
-
class ComputePipeline_ : public pvrvk::impl::Pipeline<ComputePipeline, ComputePipelineCreateInfo>#
Vulkan Computepipeline wrapper.
DebugReportCallback_#
Defined in DebugReportCallbackVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Type#
public pvrvk::impl::PVRVkInstanceObjectBase< VkDebugReportCallbackEXT, ObjectType::e_DEBUG_REPORT_CALLBACK_EXT >
(PVRVkInstanceObjectBase)
Class Documentation#
-
class DebugReportCallback_ : public pvrvk::impl::PVRVkInstanceObjectBase<VkDebugReportCallbackEXT, ObjectType::e_DEBUG_REPORT_CALLBACK_EXT>#
Vulkan DebugReportCallback wrapper.
DebugUtilsMessenger_#
Defined in DebugUtilsMessengerVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Type#
public pvrvk::impl::PVRVkInstanceObjectBase< VkDebugUtilsMessengerEXT, ObjectType::e_DEBUG_UTILS_MESSENGER_EXT >
(PVRVkInstanceObjectBase)
Class Documentation#
-
class DebugUtilsMessenger_ : public pvrvk::impl::PVRVkInstanceObjectBase<VkDebugUtilsMessengerEXT, ObjectType::e_DEBUG_UTILS_MESSENGER_EXT>#
Vulkan DebugUtilsMessenger wrapper.
DescriptorPool_#
Defined in DescriptorSetVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkDescriptorPool, ObjectType::e_DESCRIPTOR_POOL >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< DescriptorPool_ >
(DeviceObjectDebugUtils)public std::enable_shared_from_this< DescriptorPool_ >
Class Documentation#
-
class DescriptorPool_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkDescriptorPool, ObjectType::e_DESCRIPTOR_POOL>, public pvrvk::impl::DeviceObjectDebugUtils<DescriptorPool_>, public std::enable_shared_from_this<DescriptorPool_>#
A descriptor pool - an object used to allocate (and recycle) Descriptor Sets.
Public Functions
-
DescriptorSet allocateDescriptorSet(const DescriptorSetLayout &layout)#
Allocate descriptor set.
- Parameters:
layout – Descriptor set layout
- Returns:
Return DescriptorSet else null if fails.
-
inline const DescriptorPoolCreateInfo &getCreateInfo() const#
Return the descriptor pool create info from which this descriptor pool was allocated.
- Returns:
The descriptor pool create info
-
DescriptorSet allocateDescriptorSet(const DescriptorSetLayout &layout)#
DescriptorSetLayout_#
Defined in DescriptorSetVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkDescriptorSetLayout, ObjectType::e_DESCRIPTOR_SET_LAYOUT >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< DescriptorSetLayout_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class DescriptorSetLayout_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkDescriptorSetLayout, ObjectType::e_DESCRIPTOR_SET_LAYOUT>, public pvrvk::impl::DeviceObjectDebugUtils<DescriptorSetLayout_>#
Constructor. . Vulkan implementation of a DescriptorSet.
Public Functions
-
inline const DescriptorSetLayoutCreateInfo &getCreateInfo() const#
Get the DescriptorSetCreateInfo object that was used to create this layout.
- Returns:
The DescriptorSetCreateInfo object that was used to create this layout.
-
inline void clearCreateInfo()#
Clear the descriptor set layout create param list.
-
inline const DescriptorSetLayoutCreateInfo &getCreateInfo() const#
DescriptorSet_#
Defined in DescriptorSetVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkDescriptorSet, ObjectType::e_DESCRIPTOR_SET >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< DescriptorSet_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class DescriptorSet_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkDescriptorSet, ObjectType::e_DESCRIPTOR_SET>, public pvrvk::impl::DeviceObjectDebugUtils<DescriptorSet_>#
Vulkan implementation of a DescriptorSet.
Public Functions
-
inline const DescriptorSetLayout &getDescriptorSetLayout() const#
Return the layout of this DescriptorSet.
- Returns:
This DescriptorSet’s DescriptorSetLayout
-
inline const DescriptorPool &getDescriptorPool() const#
Return the descriptor pool from which this descriptor set was allocated.
- Returns:
The descriptor pool
-
inline DescriptorPool &getDescriptorPool()#
Return the descriptor pool from which this descriptor set was allocated.
- Returns:
The descriptor pool
Friends
- friend struct ::pvrvk::WriteDescriptorSet
-
inline const DescriptorSetLayout &getDescriptorSetLayout() const#
DescriptorStore#
Defined in DescriptorSetVk.h
Class Documentation#
-
template<typename T, uint32_t ArraySize>
class DescriptorStore# Internal class.
DeviceDebugUtilsImpl#
Defined in DebugUtilsVk.h
Class Documentation#
-
class DeviceDebugUtilsImpl#
Implementation for the Debug Marker wrapper for PVRVk objects. Handles the actual naming and tagging calls for the debug extensions “VK_EXT_debug_maker” or “VK_EXT_debug_utils” depending on thier support.
Public Functions
-
inline ~DeviceDebugUtilsImpl()#
Destructor.
-
void setObjectName(const Device_ &device, uint64_t vkHandle, ObjectType objectType, const std::string &objectName)#
Makes use of the extension VK_EXT_debug_marker or VK_EXT_debug_utils to provide a name for a specified object.
- Parameters:
device – The device from which the object being named was created
vkHandle – The Vulkan object handle of the object being named
objectType – The object type of the object being named
objectName – The name to use for the object
-
void setObjectTag(const Device_ &device, uint64_t vkHandle, ObjectType objectType, uint64_t tagName, size_t tagSize, const void *tag)#
Makes use of the extension VK_EXT_debug_marker or VK_EXT_debug_utils to provide a tag for a specified object.
- Parameters:
device – The device from which the object getting tagged was created
vkHandle – The Vulkan object handle of the object getting a tag was created.
objectType – The object type of the object being named
tagName – A numerical identifier of the tag for the object
tagSize – The number of bytes of data to attach to the object.
tag – An array of tagSize bytes containing the data to be associated with the object.
-
inline void resetObjectName(const Device_ &device, uint64_t vkHandle, ObjectType objectType)#
Resets the name of a specified object using the extension VK_EXT_debug_marker or VK_EXT_debug_utils.
- Parameters:
device – The device from which the object having its name reset was created
vkHandle – The Vulkan object handle of the object having its name reset.
objectType – The object type of the object being named
-
inline bool hasName() const#
Returns whether the specified object has already been provided with a name.
- Returns:
True if the object has a name, otherwise false.
-
inline const std::string &getName() const#
Returns the specified object’s name.
- Returns:
The object name
Friends
- friend class DeviceObjectDebugUtils
-
inline ~DeviceDebugUtilsImpl()#
DeviceMemory_#
Defined in DeviceMemoryVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::IDeviceMemory_
(IDeviceMemory_)public pvrvk::impl::DeviceObjectDebugUtils< DeviceMemory_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class DeviceMemory_ : public pvrvk::impl::IDeviceMemory_, public pvrvk::impl::DeviceObjectDebugUtils<DeviceMemory_>#
VkDeviceMemory wrapper.
Public Functions
-
inline virtual bool isMappable() const#
Return true if this memory block is mappable by the host (const).
- Returns:
bool
-
inline virtual pvrvk::MemoryPropertyFlags getMemoryFlags() const#
Return the memory flags(const)
- Returns:
pvrvk::MemoryPropertyFlags
-
inline virtual VkDeviceSize getMappedOffset() const#
Return this mapped memory offset (const)
- Returns:
VkDeviceSize
-
inline virtual void *getMappedData()#
Return a pointer to the mapped memory.
- Returns:
Mapped memory
-
inline virtual VkDeviceSize getMappedSize() const#
Return this mapped memory size (const)
- Returns:
VkDeviceSize
-
inline virtual VkDeviceSize getSize() const#
Return this memory size (const)
- Returns:
uint64_t
-
inline virtual bool isMapped() const#
Return true if this memory is being mapped by the host (const)
- Returns:
VkDeviceSize
-
inline virtual void *map(VkDeviceSize offset = 0, VkDeviceSize size = VK_WHOLE_SIZE, pvrvk::MemoryMapFlags memoryMapFlags = pvrvk::MemoryMapFlags::e_NONE)#
map this memory. NOTE: Only memory created with HostVisible flag can be mapped and unmapped
- Parameters:
offset – Zero-based byte offset from the beginning of the memory object.
size – Size of the memory range to map, or VK_WHOLE_SIZE to map from offset to the end of the allocation
memoryMapFlags – A pvrvk::MemoryMapFlags flag defining the how memory mapping should occur.
-
inline virtual void unmap()#
Unmap this memory block.
-
inline virtual void flushRange(VkDeviceSize offset = 0, VkDeviceSize size = VK_WHOLE_SIZE)#
Flush ranges of non-coherent memory from the host caches:
- Parameters:
offset – Zero-based byte offset from the beginning of the memory object
size – Either the size of range, or VK_WHOLE_SIZE to affect the range from offset to the end of the current mapping of the allocation.
-
inline virtual void invalidateRange(VkDeviceSize offset = 0, VkDeviceSize size = VK_WHOLE_SIZE)#
To invalidate ranges of non-coherent memory from the host caches.
- Parameters:
offset – Zero-based byte offset from the beginning of the memory object.
size – Either the size of range, or VK_WHOLE_SIZE to affect the range from offset to the end of the current mapping of the allocation.
- Returns:
VkResult
-
inline virtual uint32_t getMemoryType() const#
- Returns:
.
Protected Static Functions
Protected function used to create a pvrvk::DeviceMemory. Note that this function shouldn’t normally be called directly and will be called by a friend of DeviceMemory_ which will generally be a Device.
- Parameters:
device – The device used to allocate the DeviceMemory from.
allocationInfo – The allocation information structure.
memPropFlags – A set of memory property flags which will define the way in which the allocated memory may be used.
vkMemoryHandle – The vulkan handle for this DeviceMemory.
- Returns:
Returns a successfully created pvrvk::DeviceMemory
Friends
- friend class Device_
A class which restricts the creation of a pvrvk::DeviceMemory to children or friends of a pvrvk::impl::DeviceMemory_.
Protected Functions
Constructor for a make_shared_enabler.
Friends
- friend class DeviceMemory_
-
inline virtual bool isMappable() const#
DeviceObjectDebugUtils#
Defined in DebugUtilsVk.h
Inheritance Relationships#
Derived Types#
Class Documentation#
-
template<class PVRVkDeviceObject>
class DeviceObjectDebugUtils# A Debug Marker wrapper for PVRVk Device allocated objects. Handles naming and tagging calls for the extension “VK_EXT_debug_maker”.
Subclassed by pvrvk::impl::Pipeline< ComputePipeline, ComputePipelineCreateInfo >, pvrvk::impl::Pipeline< GraphicsPipeline, GraphicsPipelineCreateInfo >, pvrvk::impl::Pipeline< RaytracingPipeline, RaytracingPipelineCreateInfo >
Public Functions
-
inline explicit DeviceObjectDebugUtils()#
Constructor for a DeviceObjectDebugUtils.
-
inline void setObjectName(const std::string &objectName)#
Makes use of the extension VK_EXT_debug_marker or VK_EXT_debug_utils to provide a name for a specified object.
- Parameters:
objectName – The name to use for the object
-
inline const std::string &getObjectName() const#
Gets the Debug Marker name.
- Returns:
The object name
-
inline void resetObjectName()#
Resets the name of a specified object using the extension VK_EXT_debug_marker or VK_EXT_debug_utils.
-
inline void setObjectTag(uint64_t tagName, size_t tagSize, const void *tag)#
Makes use of the extension VK_EXT_debug_marker or VK_EXT_debug_utils to provide a tag for a specified object.
- Parameters:
tagName – A numerical identifier of the tag for the object
tagSize – The number of bytes of data to attach to the object.
tag – An array of tagSize bytes containing the data to be associated with the object.
-
inline explicit DeviceObjectDebugUtils()#
Device_#
Defined in DeviceVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkPhysicalDeviceObjectBase< VkDevice, ObjectType::e_DEVICE >
(PVRVkPhysicalDeviceObjectBase)public std::enable_shared_from_this< Device_ >
Class Documentation#
-
class Device_ : public pvrvk::impl::PVRVkPhysicalDeviceObjectBase<VkDevice, ObjectType::e_DEVICE>, public std::enable_shared_from_this<Device_>#
GpuDevice implementation that supports Vulkan.
Public Functions
-
void retrieveQueues()#
Retrieve and initialise the list of queues.
-
void waitIdle()#
Wait on the host for the completion of outstanding queue operations for all queues on this device This is equivalent to calling waitIdle for all queues owned by this device.
-
ComputePipeline createComputePipeline(const ComputePipelineCreateInfo &createInfo, const PipelineCache &pipelineCache = PipelineCache())#
createComputePipeline
.
- Parameters:
createInfo – create info
pipelineCache – Either null handle, indicating that pipeline caching is disabled; or the handle of a valid pipeline cache object, in which case use of that cache is enabled for the duration of the command.
- Returns:
Return a valid compute pipeline on success
- Returns:
Return a valid pipeline on success
-
void createComputePipelines(const ComputePipelineCreateInfo *createInfo, uint32_t numCreateInfos, const PipelineCache &pipelineCache, ComputePipeline *outPipelines)#
create array of compute pipelines
- Parameters:
createInfo – Compute pipeline create Infos
numCreateInfos – Number of compute pipleine to create
outPipelines – Out pipelines
pipelineCache – Either null handle, indicating that pipeline caching is disabled; or the handle of a valid pipeline cache object, in which case use of that cache is enabled for the duration of the command.
-
RaytracingPipeline createRaytracingPipeline(const RaytracingPipelineCreateInfo &createInfo, const PipelineCache &pipelineCache = PipelineCache())#
createRaytracingPipeline
.
- Parameters:
createInfo – create info
pipelineCache – Either null handle, indicating that pipeline caching is disabled; or the handle of a valid pipeline cache object, in which case use of that cache is enabled for the duration of the command.
- Returns:
Return a valid ray tracing pipeline on success
- Returns:
Return a valid pipeline on success
-
void createRaytracingPipelines(const RaytracingPipelineCreateInfo *createInfo, uint32_t numCreateInfos, const PipelineCache &pipelineCache, RaytracingPipeline *outPipelines)#
create array of ray tracing pipelines
- Parameters:
createInfo – Raytracing pipeline create Infos
numCreateInfos – Number of ray tracing pipeline to create
outPipelines – Out pipelines
pipelineCache – Either null handle, indicating that pipeline caching is disabled; or the handle of a valid pipeline cache object, in which case use of that cache is enabled for the duration of the command.
-
GraphicsPipeline createGraphicsPipeline(const GraphicsPipelineCreateInfo &createInfo, const PipelineCache &pipelineCache = PipelineCache())#
create graphicsPipeline
.
- Parameters:
createInfo – Pipeline create info
pipelineCache – Either null handle, indicating that pipeline caching is disabled; or the handle of a valid pipeline cache object, in which case use of that cache is enabled for the duration of the command.
- Returns:
Return a valid pipeline on success
-
void createGraphicsPipelines(const GraphicsPipelineCreateInfo *createInfos, uint32_t numCreateInfos, const PipelineCache &pipelineCache, GraphicsPipeline *outPipelines)#
create array of graphics pipelines
- Parameters:
createInfos – Pipeline create infos
numCreateInfos – Number of pipeline to create
outPipelines – Out pipeline
pipelineCache – Either null handle, indicating that pipeline caching is disabled; or the handle of a valid pipeline cache object, in which case use of that cache is enabled for the duration of the command.
-
Sampler createSampler(const SamplerCreateInfo &createInfo)#
Create sampler object.
.
- Parameters:
createInfo – Sampler Create info
- Returns:
Return a valid sampler object on success
-
Image createImage(const ImageCreateInfo &createInfo)#
create an image using this device.
- Parameters:
createInfo – The image creation descriptor
- Returns:
The created Image object on success
-
ImageView createImageView(const ImageViewCreateInfo &createInfo)#
Create image view object.
- Parameters:
createInfo – The image view creation descriptor
- Returns:
The created ImageView object on success
-
BufferView createBufferView(const BufferViewCreateInfo &createInfo)#
Create buffer view.
- Parameters:
createInfo – The buffer view creation descriptor
- Returns:
The created BufferView object on success
-
Buffer createBuffer(const BufferCreateInfo &createInfo)#
Create a new buffer object and (optionally) allocate and bind memory for it.
.
- Parameters:
createInfo – The buffer creation descriptor
- Returns:
Return a valid object if success
-
AccelerationStructure createAccelerationStructure(const AccelerationStructureCreateInfo &createInfo, pvrvk::Buffer asBuffer)#
Create a new acceleration structure object.
.
- Parameters:
createInfo – The acceleration structure creation descriptor
asBuffer – The acceleration structure buffer needed to build the acceleration structure
- Returns:
Return a valid object if success
-
DeviceMemory allocateMemory(const MemoryAllocationInfo &allocationInfo, const pvrvk::MemoryAllocateFlags memoryAllocateFlags = pvrvk::MemoryAllocateFlags::e_NONE)#
Create device memory block.
.
- Parameters:
allocationInfo – memory allocation info
- Returns:
Return a valid object if success
-
ShaderModule createShaderModule(const ShaderModuleCreateInfo &createInfo)#
Create Shader Object.
- Parameters:
createInfo – Shader module createInfo
- Returns:
Return a valid shader if success
-
Framebuffer createFramebuffer(const FramebufferCreateInfo &createInfo)#
createFramebuffer Create Framebuffer object
.
- Parameters:
createInfo – Framebuffer createInfo
- Returns:
return a valid object if success
-
RenderPass createRenderPass(const RenderPassCreateInfo &createInfo)#
create renderpass
.
- Parameters:
createInfo – RenderPass createInfo
- Returns:
return a valid object if success
-
DescriptorPool createDescriptorPool(const DescriptorPoolCreateInfo &createInfo)#
Create DescriptorPool.
.
- Parameters:
createInfo – DescriptorPool createInfo
- Returns:
return a valid object if success
-
DescriptorSetLayout createDescriptorSetLayout(const DescriptorSetLayoutCreateInfo &createInfo)#
create Descriptor set layout
.
- Parameters:
createInfo – Descriptor layout createInfo
- Returns:
Return a valid object if success
-
PipelineCache createPipelineCache(const PipelineCacheCreateInfo &createInfo = PipelineCacheCreateInfo())#
Create PipelineCache object.
-
void mergePipelineCache(const PipelineCache *srcPipeCaches, uint32_t numSrcPipeCaches, PipelineCache destPipeCache)#
Merge PipelineCache objects.
.
-
PipelineLayout createPipelineLayout(const PipelineLayoutCreateInfo &createInfo)#
Create pipeline layout.
.
- Parameters:
createInfo – Pipeline layout create info
- Returns:
Return a valid object if success
-
bool waitForFences(uint32_t numFences, const Fence *fences, const bool waitAll, const uint64_t timeout)#
Wait this device for an array of fences.
.
- Parameters:
numFences – Number of fence to wait
fences – Fences to wait for
waitAll – Wait for all fence if flags set to true
timeout – Wait timeout
- Returns:
Return true if fence waits successfull, false if timed out.
-
void resetFences(uint32_t numFences, const Fence *fences)#
Reset an array of fences.
- Parameters:
numFences – Number of fence to reset
fences – Fence to reset
-
CommandPool createCommandPool(const CommandPoolCreateInfo &createInfo)#
Create commandpool.
.
- Parameters:
createInfo – Command Pool creation info structure
- Returns:
Return a valid object if success
-
Fence createFence(const FenceCreateInfo &createInfo = FenceCreateInfo())#
Create Fence.
.
- Parameters:
createInfo – Fence create info
- Returns:
Return a valid object if success
-
Event createEvent(const EventCreateInfo &createInfo = EventCreateInfo())#
Create Event.
.
- Parameters:
createInfo – Event create info
- Returns:
Return a valid object if success
-
Semaphore createSemaphore(const SemaphoreCreateInfo &createInfo = SemaphoreCreateInfo())#
Create semaphore.
.
- Parameters:
createInfo – Semaphore create info
- Returns:
Return a valid object if success
-
TimelineSemaphore createTimelineSemaphore(SemaphoreCreateInfo &createInfo)#
Create timeline semaphore.
.
- Parameters:
createInfo – Semaphore create info
- Returns:
Return a valid object if success
-
QueryPool createQueryPool(const QueryPoolCreateInfo &createInfo)#
Create QueryPool.
.
- Parameters:
createInfo – QueryPool create info
- Returns:
return a valid object if success
-
Swapchain createSwapchain(const SwapchainCreateInfo &createInfo, const Surface &surface)#
Create Swapchain.
.
- Parameters:
createInfo – Swapchain createInfo
surface – Swapchain’s surface
- Returns:
Return a valid object if success
-
inline Queue getQueue(uint32_t queueFamily, uint32_t queueId)#
Get Queue.
- Parameters:
queueFamily – Queue Family id
queueId – Queue Id
- Returns:
Return the queue
-
inline const VulkanExtensionList &getEnabledExtensionList()#
Get a list of enabled extensions which includes names and spec versions.
- Returns:
-
inline const DeviceExtensionTable &getEnabledExtensionTable() const#
Return a table which contains boolean members set to true/false corresponding to whether specific extensions have been enabled.
- Returns:
A table of extensions
-
void updateDescriptorSets(const WriteDescriptorSet *writeDescSets, uint32_t numWriteDescSets, const CopyDescriptorSet *copyDescSets, uint32_t numCopyDescSets)#
Update Descriptorsets.
- Parameters:
writeDescSets – Write descriptor sets
numWriteDescSets – Number of write Descriptor sets
copyDescSets – Copy operation happens after the Write operation.
numCopyDescSets – Number of copy descriptor sets
-
inline const VkDeviceBindings &getVkBindings() const#
Gets the device dispatch table.
- Returns:
The device dispatch table
-
inline const PhysicalDeviceTransformFeedbackProperties &getTransformFeedbackProperties() const#
Gets the Transform feedback properties.
- Returns:
The physical device transform feedback properties
-
inline PhysicalDeviceTransformFeedbackProperties getTransformFeedbackProperties()#
Gets the Transform feedback properties.
- Returns:
The physical device transform feedback properties
-
inline const PhysicalDeviceTransformFeedbackFeatures &getTransformFeedbackFeatures() const#
Gets the Transform feedback features.
- Returns:
The physical device transform feedback features
-
inline PhysicalDeviceTransformFeedbackFeatures getTransformFeedbackFeatures()#
Gets the Transform feedback features.
- Returns:
The physical device transform feedback features
-
inline const DeviceCreateInfo &getDeviceCreateInfo() const#
Gets the device create info member variable _createInfo.
- Returns:
The device create info member variable _createInfo.
-
void retrieveQueues()#
DisplayMode_#
Defined in DisplayModeVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Type#
public pvrvk::impl::PVRVkPhysicalDeviceObjectBase< VkDisplayModeKHR, ObjectType::e_DISPLAY_MODE_KHR >
(PVRVkPhysicalDeviceObjectBase)
Class Documentation#
-
class DisplayMode_ : public pvrvk::impl::PVRVkPhysicalDeviceObjectBase<VkDisplayModeKHR, ObjectType::e_DISPLAY_MODE_KHR>#
Each display has one or more supported modes associated with it by default. These are called the display modes.
Public Functions
-
inline DisplayModeParametersKHR getParameters() const#
Returns the display mode parameters.
- Returns:
A DisplayModeParametersKHR structure specifying the display mode parameters for the display mode
-
inline DisplayModeParametersKHR getParameters() const#
DisplayPlaneSurface_#
Defined in SurfaceVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Type#
public pvrvk::impl::Surface_
(Surface_)
Class Documentation#
-
class DisplayPlaneSurface_ : public pvrvk::impl::Surface_#
A DisplayPlane Surface.
Public Functions
-
inline const DisplayModeWeakPtr &getDisplayMode() const#
Get Display Mode Properties.
- Returns:
DisplayModePropertiesKHR&
-
inline const DisplaySurfaceCreateFlagsKHR &getFlags() const#
Get DisplaySurfaceCreateFlagsKHR flags.
- Returns:
DisplaySurfaceCreateFlagsKHR&
-
inline uint32_t getPlaneIndex() const#
Get display plane index.
- Returns:
Plane index
-
inline uint32_t getPlaneStackIndex() const#
Get display plane stack index.
- Returns:
Plane stack index
-
inline const SurfaceTransformFlagsKHR &getTransformFlags() const#
Get SurfaceTransformFlagsKHR flags.
- Returns:
SurfaceTransformFlagsKHR&
-
inline float getGlobalAlpha() const#
Get display plane global alpha.
- Returns:
Plane global alpha
-
inline const DisplayPlaneAlphaFlagsKHR &getAlphaFlags() const#
Get DisplayPlaneAlphaFlagsKHR flags.
- Returns:
DisplayPlaneAlphaFlagsKHR&
-
inline const Extent2D &getImageExtent() const#
Get Extent2D.
- Returns:
Extent2D&
-
inline const DisplayModeWeakPtr &getDisplayMode() const#
Display_#
Defined in DisplayVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Type#
public pvrvk::impl::PVRVkPhysicalDeviceObjectBase< VkDisplayKHR, ObjectType::e_DISPLAY_KHR >
(PVRVkPhysicalDeviceObjectBase)
Class Documentation#
-
class Display_ : public pvrvk::impl::PVRVkPhysicalDeviceObjectBase<VkDisplayKHR, ObjectType::e_DISPLAY_KHR>#
A display device can in some environments be used directly for Vulkan rendering without using intermediate windowing systems.
Public Functions
-
inline size_t getNumDisplayModes() const#
Get the number of supported display modes.
- Returns:
Returns the number of supported display modes
-
inline DisplayMode &getDisplayMode(uint32_t displayModeIndex)#
Get the supported display mode at displayModeIndex.
- Parameters:
displayModeIndex – The index of the display mode to retrieve
- Returns:
Returns one of supported display modes
-
inline const DisplayMode &getDisplayMode(uint32_t displayModeIndex) const#
Get the supported display mode at displayModeIndex (const)
- Parameters:
displayModeIndex – The index of the display mode to retrieve
- Returns:
Returns one of supported display modes (const)
-
inline const char *getDisplayName() const#
Gets the name of the display.
- Returns:
The name of the display
-
inline const Extent2D &getPhysicalDimensions() const#
Gets the physical dimensions of the display.
- Returns:
The physical dimensions of the display
-
inline const Extent2D &getPhysicalResolution() const#
Gets the physical resolutions of the display.
- Returns:
The physical resolutions of the display
-
inline SurfaceTransformFlagsKHR getSupportedTransforms() const#
Gets the set of supported surface transform flags for the display.
- Returns:
A SurfaceTransformFlagsKHR structure specifying the supported surface transform flags.
-
inline bool getPlaneReorderPossible() const#
Indicates whether the planes on this display can have their z order changed.
- Returns:
If True then the application can re-arrange the planes on this display in any order relative to each other.
-
inline bool getPersistentContent() const#
Indicates whether the display supports self-refresh/internal buffering.
- Returns:
True if the application can submit persistent present operations on swapchains created against this display
-
inline size_t getNumDisplayModes() const#
Event_#
Defined in EventVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkEvent, ObjectType::e_EVENT >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< Event_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class Event_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkEvent, ObjectType::e_EVENT>, public pvrvk::impl::DeviceObjectDebugUtils<Event_>#
Vulkan implementation of the Event class. Event can be used by the host to do fine-grained synchronization of commands, and it can be signalled either from the host (calling set()) or the device (submitting a setEvent() command).
Public Functions
-
void set()#
Set this event.
-
void reset()#
Reset this event.
-
bool isSet()#
Return true if this event is set.
- Returns:
Return true if this event is set
-
inline EventCreateFlags getFlags() const#
Get the event creation flags.
- Returns:
The set of event creation flags
-
inline EventCreateInfo getCreateInfo() const#
Get this event’s create flags.
- Returns:
-
void set()#
Fence_#
Defined in FenceVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkFence, ObjectType::e_FENCE >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< Fence_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class Fence_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkFence, ObjectType::e_FENCE>, public pvrvk::impl::DeviceObjectDebugUtils<Fence_>#
Vulkan implementation of the Fence class Fence can be used by the host to determine completion of execution of subimmisions to queues. The host can be polled for the fence signal
Public Functions
-
bool wait(uint64_t timeoutNanos = static_cast<uint64_t>(-1))#
Host to wait for this fence to be signaled.
- Parameters:
timeoutNanos – Time out period in nanoseconds
- Returns:
True if successfully waited, false if timed out
-
bool isSignalled()#
Return true if this fence is signaled.
- Returns:
True if the fence is signalled, otherwise false
-
void reset()#
Reset this fence.
-
inline FenceCreateFlags getFlags() const#
Get the fence creation flags.
- Returns:
The set of fence creation flags
-
inline FenceCreateInfo getCreateInfo() const#
Get this fence’s create flags.
- Returns:
-
bool wait(uint64_t timeoutNanos = static_cast<uint64_t>(-1))#
Framebuffer_#
Defined in FramebufferVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkFramebuffer, ObjectType::e_FRAMEBUFFER >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< Framebuffer_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class Framebuffer_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkFramebuffer, ObjectType::e_FRAMEBUFFER>, public pvrvk::impl::DeviceObjectDebugUtils<Framebuffer_>#
Vulkan implementation of the Framebuffer (Framebuffer object) class.
Public Functions
-
inline const RenderPass &getRenderPass() const#
Return the renderpass that this framebuffer uses.
- Returns:
The renderpass that this Framebuffer uses.
-
inline const FramebufferCreateInfo &getCreateInfo() const#
Return this object create param(const)
- Returns:
const FramebufferCreateInfo&
-
inline Extent2D getDimensions() const#
Get the Dimension of this framebuffer(const)
- Returns:
Framebuffer Dimension
-
inline const ImageView &getAttachment(uint32_t index) const#
Get the color attachment at a specific index.
- Parameters:
index – A color attachment index.
- Returns:
The Texture that is bound as a color attachment at index.
-
inline ImageView &getAttachment(uint32_t index)#
Get the color attachment at a specific index.
- Parameters:
index – A color attachment index.
- Returns:
The Texture that is bound as a color attachment at index.
-
inline uint32_t getNumAttachments() const#
getNumAttachments
- Returns:
Get number of attachments
-
inline const RenderPass &getRenderPass() const#
GraphicsPipeline_#
Defined in GraphicsPipelineVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Type#
public pvrvk::impl::Pipeline< GraphicsPipeline, GraphicsPipelineCreateInfo >
(Pipeline)
Class Documentation#
-
class GraphicsPipeline_ : public pvrvk::impl::Pipeline<GraphicsPipeline, GraphicsPipelineCreateInfo>#
A Graphics Pipeline is a PVRVk adapter to a Vulkan Pipeline to a pipeline created for VK_PIPELINE_BINDING_POINT_COMPUTE, and as such only supports the part of Vulkan that is supported for Graphics pipelines.
ImageView_#
Defined in ImageVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkImageView, ObjectType::e_IMAGE_VIEW >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< ImageView_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class ImageView_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkImageView, ObjectType::e_IMAGE_VIEW>, public pvrvk::impl::DeviceObjectDebugUtils<ImageView_>#
pvrvk::ImageView implementation of a Vulkan VkImageView
Public Functions
-
inline ImageViewCreateFlags getFlags() const#
Get Image view creation Flags.
- Returns:
Image view creation flags (ImageViewCreateFlags)
-
inline ImageViewType getViewType() const#
Get Image view creation type.
- Returns:
Image view creation image view type (ImageViewType)
-
inline Format getFormat() const#
Get Image view format.
- Returns:
Image view format (Format)
-
inline const ComponentMapping &getComponents() const#
Get Image view components.
- Returns:
The Image view components used for remapping color components
-
inline const ImageSubresourceRange &getSubresourceRange() const#
Get Image view sub resource range.
- Returns:
The Image view sub resource range used for selecting mipmap levels and array layers to be accessible to the view
-
inline ImageViewCreateInfo getCreateInfo() const#
Get this images view’s create flags.
- Returns:
-
inline ImageViewCreateFlags getFlags() const#
Image_#
Defined in ImageVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkImage, ObjectType::e_IMAGE >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< Image_ >
(DeviceObjectDebugUtils)
Derived Type#
public pvrvk::impl::SwapchainImage_
(SwapchainImage_)
Class Documentation#
-
class Image_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkImage, ObjectType::e_IMAGE>, public pvrvk::impl::DeviceObjectDebugUtils<Image_>#
ImageVk implementation that wraps the Vulkan Texture object.
Subclassed by pvrvk::impl::SwapchainImage_
Public Functions
-
pvrvk::SubresourceLayout getSubresourceLayout(const pvrvk::ImageSubresource &subresource) const#
Query and return a SubresourceLayout object describing the layout of the image.
- Parameters:
subresource – A subresource used to retrieve a subresource layout
- Returns:
The SubresourceLayout of the image
-
inline pvrvk::ImageCreateInfo getCreateInfo() const#
Return a reference to the creation descriptor of the image.
- Returns:
The reference to the ImageCreateInfo
-
inline ImageCreateFlags getFlags() const#
Get Image creation Flags.
- Returns:
Image creation flags (ImageCreateFlags)
-
inline ImageType getImageType() const#
Get Image creation type.
- Returns:
Image creation type (ImageType)
-
inline Extent3D getExtent() const#
Get Extent.
- Returns:
Extent
-
inline uint32_t getNumMipLevels() const#
Get the number of Image mip map levels.
- Returns:
Image mip map levels
-
inline uint32_t getNumArrayLayers() const#
Get the number of Image array layers.
- Returns:
Image array layers
-
inline SampleCountFlags getNumSamples() const#
Get the number of samples taken for the Image.
- Returns:
Image number of samples (SampleCountFlags)
-
inline Format getFormat() const#
Get Image format.
- Returns:
Image format (Format)
-
inline SharingMode getSharingMode() const#
Get Image sharing mode.
- Returns:
Image sharing mode (SharingMode)
-
inline ImageUsageFlags getUsageFlags() const#
Get Image usage flags.
- Returns:
Image usage flags (ImageUsageFlags)
-
inline ImageLayout getInitialLayout() const#
Get Image initial layout.
- Returns:
Image initial layout (ImageLayout)
-
inline ImageTiling getTiling() const#
Get Image tiling mode.
- Returns:
Image initial tiling mode (ImageTiling)
-
inline uint32_t getNumQueueFamilyIndices() const#
Get the number of queue family inidices for the image.
- Returns:
The number of Image queue families
-
inline const uint32_t *const getQueueFamilyIndices() const#
Get a pointer to a list of queue family inidices for the image.
- Returns:
A pointer to the list of Image queue families
-
inline bool isCubeMap() const#
Check if this texture is a cubemap.
- Returns:
true if the texture is a cubemap, otherwise false
-
inline bool isAllocated() const#
Check if this texture is allocated.
- Returns:
true if the texture is allocated. Otherwise, the texture is empty and must be constructed.
-
inline uint16_t getWidth() const#
Get the width of this texture (number of columns of texels in the lowest mipmap)
- Returns:
Texture width
-
inline uint16_t getHeight() const#
Get the height of this texture (number of rows of texels in the lowest mipmap)
- Returns:
Texture height
-
inline uint16_t getDepth() const#
Get the depth of this texture (number of (non-array) layers of texels in the lowest mipmap)
- Returns:
Texture depth
-
inline const DeviceMemory &getDeviceMemory() const#
If a memory object has been bound to the object, return it. Otherwise, return empty device memory.
- Returns:
If a memory object has been bound to the object, the memory object. Otherwise, empty device memory.
-
inline DeviceMemory &getDeviceMemory()#
If a memory object has been bound to the object, return it. Otherwise, return empty device memory.
- Returns:
If a memory object has been bound to the object, the memory object. Otherwise, empty device memory.
-
inline void bindMemoryNonSparse(DeviceMemory memory, VkDeviceSize offset = 0)#
Bind memory to this non sparse image.
- Parameters:
memory – The memory to attach to the given image object
offset – The offset into the given memory to attach to the given image object
-
inline const pvrvk::MemoryRequirements &getMemoryRequirement() const#
Get the memory requirements of the image.
- Returns:
The memory requirements of the image (MemoryRequirements)
Protected Attributes
-
pvrvk::MemoryRequirements _memReqs#
Image specific memory requirements.
-
DeviceMemory _memory#
Device memory bound to this image (Only for non sparse image).
-
pvrvk::ImageCreateInfo _createInfo#
Creation information used when creating the image.
Protected Static Functions
Protected function used to construct a pvrvk::Image. Note that this function shouldn’t normally be called directly and will be called by a friend of Image_ which will generally be a Device.
- Parameters:
device – The Device from which the image will be creted
createInfo – The ImageCreateInfo descriptor specifying creation parameters
- Returns:
Returns a successfully created pvrvk::Image
Protected function used to construct a pvrvk::Image. Note that this function shouldn’t normally be called directly and will be called by a friend of Image_ which will generally be a Device.
- Parameters:
device – The Device from which the image will be creted
- Returns:
Returns a successfully created pvrvk::Image
Friends
- friend class Device_
A class which restricts the creation of a pvrvk::Image to children or friends of a pvrvk::impl::Image_.
Protected Functions
Constructor for a make_shared_enabler.
Friends
- friend class Image_
-
pvrvk::SubresourceLayout getSubresourceLayout(const pvrvk::ImageSubresource &subresource) const#
Instance_#
Defined in InstanceVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkObjectBase< VkInstance, ObjectType::e_INSTANCE >
(PVRVkObjectBase)public std::enable_shared_from_this< Instance_ >
Class Documentation#
-
class Instance_ : public pvrvk::impl::PVRVkObjectBase<VkInstance, ObjectType::e_INSTANCE>, public std::enable_shared_from_this<Instance_>#
The Instance is a system-wide vulkan “implementation”, similar in concept to the “installation” of Vulkan libraries on a system. Contrast with the “Physical Device” which for example represents a particular driver implementing Vulkan for a specific Device. Conceptually, the Instance “Forwards” to the “Physical Device / Device”.
Public Functions
-
void retrievePhysicalDevices()#
Retrieve and initialise the list of physical devices.
-
inline const InstanceCreateInfo &getCreateInfo() const#
Get instance create info(const)
- Returns:
const InstanceCreateInfo&
-
inline DisplayPlaneSurface createDisplayPlaneSurface(const DisplayMode &displayMode, Extent2D imageExtent, const DisplaySurfaceCreateFlagsKHR flags = DisplaySurfaceCreateFlagsKHR::e_NONE, uint32_t planeIndex = 0, uint32_t planeStackIndex = 0, SurfaceTransformFlagsKHR transformFlags = SurfaceTransformFlagsKHR::e_IDENTITY_BIT_KHR, float globalAlpha = 0.0f, DisplayPlaneAlphaFlagsKHR alphaFlags = DisplayPlaneAlphaFlagsKHR::e_PER_PIXEL_BIT_KHR)#
Create a DisplayPlane surface.
- Parameters:
displayMode – A display mode to use for creating the DisplayPlane Surface
imageExtent – The image extent to use for creating the DisplayPlane Surface
flags – A set of DisplaySurfaceCreateFlagsKHR flags to use when creating the DisplayPlane surface
planeIndex – A plane index
planeStackIndex – A plane stack index
transformFlags – A set of SurfaceTransformFlagsKHR flags to use when creating the DisplayPlane surface
globalAlpha – A global alpha value
alphaFlags – A set of DisplayPlaneAlphaFlagsKHR flags to use when creating the DisplayPlane surface
- Returns:
Valid DisplayPlane object if success.
-
inline const VulkanExtensionList &getEnabledExtensionsList()#
Get a list of enabled extensions which includes names and spec versions.
- Returns:
-
inline const VulkanLayerList &getEnabledLayersList()#
Get a list of enabled layers which includes names and spec versions.
- Returns:
-
inline const InstanceExtensionTable &getEnabledExtensionTable() const#
Return a table which contains boolean members set to true/false corresponding to whether specific extensions have been enabled.
- Returns:
A table of extensions
-
inline DebugUtilsMessenger createDebugUtilsMessenger(const DebugUtilsMessengerCreateInfo &createInfo)#
Creates a debug utils messenger object.
- Parameters:
createInfo – DebugUtilsMessengerCreateInfo structure specifying how the debug utils messenger should function.
- Returns:
Returns the created debug utils messenger object.
-
inline DebugReportCallback createDebugReportCallback(const DebugReportCallbackCreateInfo &createInfo)#
Creates a debug report callback object.
- Parameters:
createInfo – DebugReportCallbackCreateInfo structure specifying how the debug report callback function should work.
- Returns:
Returns the created debug report callback object.
-
inline void debugReportMessage(DebugReportFlagsEXT flags, DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const std::string &layerPrefix, const std::string &message)#
Submits a debug report message directly into the debug stream.
- Parameters:
flags – Specifies the DebugReportFlagsEXT classification of this message.
objectType – Specifies the type of object being used or created at the time the event was triggered.
object – The object where the issue was detected. object can be VK_NULL_HANDLE if there is no object associated with the event.
location – An application defined value.
messageCode – An application defined value.
layerPrefix – The abbreviation of the component making this event/message.
message – The message itself detailing the trigger conditions.
-
inline void debugReportMessage(DebugReportFlagsEXT flags, PVRVkObjectBase object, size_t location, int32_t messageCode, const std::string &layerPrefix, const std::string &message)#
Submits a debug report message directly into the debug stream.
- Parameters:
flags – Specifies the DebugReportFlagsEXT classification of this message.
object – A PVRVkObjectBase object where the issue was detected.
location – An application defined value.
messageCode – An application defined value.
layerPrefix – The abbreviation of the component making this event/message.
message – The message itself detailing the trigger conditions.
-
inline void submitDebugUtilsMessage(DebugUtilsMessageSeverityFlagsEXT inMessageSeverity, DebugUtilsMessageTypeFlagsEXT inMessageTypes, const DebugUtilsMessengerCallbackData &inCallbackData)#
Submits a debug utils message directly into the debug stream.
- Parameters:
inMessageSeverity – the DebugUtilsMessageSeverityFlagBitsEXT severity of this event/message.
inMessageTypes – A bitmask of DebugUtilsMessageTypeFlagBitsEXT specifying which type of event(s) to identify with this message.
inCallbackData – Contains all the callback related data in the DebugUtilsMessengerCallbackDataEXT structure.
-
inline const VkInstanceBindings &getVkBindings() const#
Gets the instance dispatch table.
- Returns:
The instance dispatch table
-
const std::vector<PhysicalDevice> &getPhysicalDevices() const#
Get the list of physical devices (const)
- Returns:
const PhysicalDevice&
-
const PhysicalDevice &getPhysicalDevice(uint32_t id) const#
Get physical device (const)
- Parameters:
id – Physcialdevice id
- Returns:
const PhysicalDevice&
-
PhysicalDevice &getPhysicalDevice(uint32_t id)#
Get physical device (const)
- Parameters:
id – Physcialdevice id
- Returns:
const PhysicalDevice&
-
inline uint32_t getNumPhysicalDevices() const#
Get number of physcial device available.
- Returns:
uint32_t
-
void retrievePhysicalDevices()#
IDeviceMemory_#
Defined in DeviceMemoryVk.h
Inheritance Relationships#
Base Type#
public pvrvk::impl::PVRVkDeviceObjectBase< VkDeviceMemory, ObjectType::e_DEVICE_MEMORY >
(PVRVkDeviceObjectBase)
Derived Type#
public pvrvk::impl::DeviceMemory_
(DeviceMemory_)
Class Documentation#
-
class IDeviceMemory_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkDeviceMemory, ObjectType::e_DEVICE_MEMORY>#
VkDeviceMemory wrapper.
Subclassed by pvrvk::impl::DeviceMemory_
Public Functions
-
inline IDeviceMemory_()#
Constructor.
-
inline explicit IDeviceMemory_(DeviceWeakPtr device)#
Constructor.
- Parameters:
device – The device to use for allocating the device memory
-
inline IDeviceMemory_(const DeviceWeakPtr &device, VkDeviceMemory memory)#
Constructor.
- Parameters:
device – The device to use for allocating the device memory
memory – The vulkan device memory object
-
inline virtual ~IDeviceMemory_()#
-
virtual bool isMappable() const = 0#
Return true if this memory block is mappable by the host (const).
- Returns:
True is this memory block can be mapped, otherwise false.
-
virtual uint32_t getMemoryType() const = 0#
- Returns:
.
-
virtual pvrvk::MemoryPropertyFlags getMemoryFlags() const = 0#
Return the memory flags(const)
- Returns:
The flags of the memory
-
inline bool hasPropertyFlag(pvrvk::MemoryPropertyFlags flags) const#
Indicates whether the device memory’s property flags includes the given flag.
- Parameters:
flags – A device memory property flag
- Returns:
True if the device memory’s property flags includes the given flag
-
virtual VkDeviceSize getMappedOffset() const = 0#
Return this mapped memory offset (const)
- Returns:
The offset of the mapped range, if any.
-
virtual void *getMappedData() = 0#
Return a pointer to the mapped memory.
- Returns:
Mapped memory
-
virtual VkDeviceSize getMappedSize() const = 0#
Return this mapped memory size.
- Returns:
The size of the mapped range, if any.
-
virtual VkDeviceSize getSize() const = 0#
Return this memory size.
- Returns:
The memory size
-
virtual bool isMapped() const = 0#
Return true if this memory is being mapped by the host.
- Returns:
True if memory is already mapped, otherwise false.
-
virtual void *map(VkDeviceSize offset = 0, VkDeviceSize size = VK_WHOLE_SIZE, pvrvk::MemoryMapFlags memoryMapFlags = pvrvk::MemoryMapFlags::e_NONE) = 0#
map this memory. NOTE: Only memory created with HostVisible flag can be mapped and unmapped
- Parameters:
offset – Zero-based byte offset from the beginning of the memory object.
size – Size of the memory range to map, or VK_WHOLE_SIZE to map from offset to the end of the allocation.
memoryMapFlags – A pvrvk::MemoryMapFlags flag defining the how memory mapping should occur.
-
virtual void unmap() = 0#
Unmap this memory block.
-
virtual void flushRange(VkDeviceSize offset = 0, VkDeviceSize size = VK_WHOLE_SIZE) = 0#
Flush ranges of non-coherent memory from the host caches:
- Parameters:
offset – Zero-based byte offset from the beginning of the memory object
size – Either the size of range, or VK_WHOLE_SIZE to affect the range from offset to the end of the current mapping of the allocation.
-
virtual void invalidateRange(VkDeviceSize offset = 0, VkDeviceSize size = VK_WHOLE_SIZE) = 0#
To invalidate ranges of non-coherent memory from the host caches.
- Parameters:
offset – Zero-based byte offset from the beginning of the memory object.
size – Either the size of range, or VK_WHOLE_SIZE to affect the range from offset to the end of the current mapping of the allocation.
-
inline IDeviceMemory_()#
PhysicalDevice_#
Defined in PhysicalDeviceVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkInstanceObjectBase< VkPhysicalDevice, ObjectType::e_PHYSICAL_DEVICE >
(PVRVkInstanceObjectBase)public std::enable_shared_from_this< PhysicalDevice_ >
Class Documentation#
-
class PhysicalDevice_ : public pvrvk::impl::PVRVkInstanceObjectBase<VkPhysicalDevice, ObjectType::e_PHYSICAL_DEVICE>, public std::enable_shared_from_this<PhysicalDevice_>#
The representation of an entire actual, physical GPU device (as opposed to Device, which is a local, logical part of it). A Physical device is “determined”, or “found”, or “enumerated”, (while a logical device is “created”). You can use the physical device to create logical Devices, determine Extensions etc. See Vulkan spec.
Public Functions
-
inline const PhysicalDeviceProperties &getProperties() const#
Get device properties.
- Returns:
Returns PhysicalDeviceProperties
-
const std::vector<Display> &getDisplays() const#
Get the list of displays (const)
- Returns:
const std::vector<Display>&
-
const Display &getDisplay(uint32_t id) const#
Get Display (const)
- Parameters:
id – Display id
- Returns:
const Display&
-
Display &getDisplay(uint32_t id)#
Get Display (const)
- Parameters:
id – Display id
- Returns:
const Display&
-
inline uint32_t getNumDisplays() const#
Get the number of displays.
- Returns:
Returns the number of supported displays
-
inline const PhysicalDeviceMemoryProperties &getMemoryProperties() const#
Get supported memory properties (const)
- Returns:
PhysicalDeviceMemoryProperties
-
bool getSurfaceSupport(uint32_t queueFamilyIndex, Surface surface) const#
Determine whether the specified surface supports presentation.
- Parameters:
queueFamilyIndex – The queue family to check for WSI support
surface – The surface to check for WSI support for the specified queue family index
- Returns:
True if the specified queue family supports Window System Integration (WSI) with the specified surface
-
FormatProperties getFormatProperties(pvrvk::Format format)#
Get format properties.
- Parameters:
format – Format
- Returns:
FormatProperties
-
SurfaceCapabilitiesKHR getSurfaceCapabilities(const Surface &surface) const#
Get surface capabilities for a surface created using this physical device.
- Parameters:
surface – The surface to retrieve capabilities for
- Returns:
SurfaceCapabilities
-
inline const PhysicalDeviceFeatures &getFeatures() const#
Get This physical device features.
- Returns:
PhysicalDeviceFeatures
-
DisplayMode createDisplayMode(pvrvk::Display &display, const pvrvk::DisplayModeCreateInfo &displayModeCreateInfo)#
Create a display mode.
- Parameters:
display – The display from which to create a display mode
displayModeCreateInfo – Display Mode create info
- Returns:
The created DisplayMode
-
Device createDevice(const DeviceCreateInfo &deviceCreateInfo)#
create gpu device.
- Parameters:
deviceCreateInfo – Device create info
- Returns:
Device
-
inline const std::vector<QueueFamilyProperties> &getQueueFamilyProperties() const#
Get the list of queue family properties.
- Returns:
A list of QueueFamilyProperties for the physical device
-
std::vector<PresentModeKHR> getSurfacePresentModes(const Surface &surface) const#
Retrieves the set of supported surface presentation modes.
- Parameters:
surface – The surface to retrieve supported presentation modes for
- Returns:
vector of pvrvk::PresentModeKHR
-
std::vector<SurfaceFormatKHR> getSurfaceFormats(const Surface &surface) const#
Retrieves the set of supported surface formats.
- Parameters:
surface – The surface to retrieve supported formats for
- Returns:
vector of pvrvk::ExtensionProperties
-
std::vector<ExtensionProperties> &getDeviceExtensionsProperties()#
Enumerate device extensions properties.
- Returns:
vector of pvrvk::ExtensionProperties
-
const ImageFormatProperties getImageFormatProperties(pvrvk::Format format, pvrvk::ImageType imageType, pvrvk::ImageTiling tiling, pvrvk::ImageUsageFlags usage, pvrvk::ImageCreateFlags flags)#
Returns the image format properties for a given set of image creation parameters.
- Parameters:
format – The image format to get sparse image properties for.
imageType – The image type to get sparse image properties for.
tiling – The image tiling mode.
usage – The image usage flags.
flags – The image creation flags.
- Returns:
An ImageFormatProperties structure
-
const std::vector<SparseImageFormatProperties> getSparseImageFormatProperties(pvrvk::Format format, pvrvk::ImageType imageType, pvrvk::SampleCountFlags sampleCount, pvrvk::ImageUsageFlags usage, pvrvk::ImageTiling tiling)#
Returns the sparse image format properties for a given set of image creation parameters.
- Parameters:
format – The image format to get sparse image properties for.
imageType – The image type to get sparse image properties for.
sampleCount – The image sample count.
usage – The image usage flags.
tiling – The image tiling mode.
- Returns:
A list of SparseImageFormatProperties structures
-
uint32_t getMemoryTypeIndex(uint32_t allowedMemoryTypeBits, pvrvk::MemoryPropertyFlags requiredMemoryProperties, pvrvk::MemoryPropertyFlags &usedMemoryProperties) const#
Attempts to find the index for a suitable memory type supporting the memory type bits required from the set of memory type bits supported.
- Parameters:
allowedMemoryTypeBits – The memory type bits allowed. The required memory type chosen must be one of those allowed.
requiredMemoryProperties – The memory type property flags required.
usedMemoryProperties – The memory type property flags found which support the memory type bits and memory property flags. Note that the use memory property flags may be different to those that were provided as required although they will be a superset of those required.
- Returns:
The memory type index found supporting the specified MemoryPropertyFlags.
-
inline uint32_t getNumDisplayPlanes()#
Returns the number of supported display planes.
- Returns:
The number of supported display planes.
-
Display getDisplayPlaneProperties(uint32_t displayPlaneIndex, uint32_t ¤tStackIndex)#
Attempts to find the display plane properties for a given display.
- Parameters:
displayPlaneIndex – The display plane index to get display plane properties for.
currentStackIndex – The display to find display plane properties for.
- Returns:
The DisplayPlanePropertiesKHR for the given display else VK_NULL_HANDLE if the display does not currently have an associated display plane.
-
std::vector<Display> getDisplayPlaneSupportedDisplays(uint32_t planeIndex)#
Attempts to find the supported displays for a given display plane.
- Parameters:
planeIndex – The display plane index to check for supported displays.
- Returns:
The list of supported displays for the given plane.
-
DisplayPlaneCapabilitiesKHR getDisplayPlaneCapabilities(DisplayMode &mode, uint32_t planeIndex)#
Attempts to find the supported displays for a given display plane.
- Parameters:
mode – The display mode object to get display plane capabilities for.
planeIndex – The display plane index to check for supported displays.
- Returns:
The list of supported displays for the given plane.
-
bool populateExtensionFeatures(ExtensionFeatures &extensionFeatures)#
Populate an extension features class with the enabled features for this physical device.
- Parameters:
extensionFeatures – A physical device extension features instance.
- Returns:
True if features were populated
-
template<class VkPhysicalDeviceExtensionFeatures>
inline bool populateExtensionFeaturesVk(pvrvk::StructureType type, VkPhysicalDeviceExtensionFeatures *featuresStruct)# Populate an extension features struct with the enabled features for this physical device using vkGetPhysicalDeviceFeatures2KHR.
- Template Parameters:
VkPhysicalDeviceExtensionFeatures – A vulkan VkPhysicalDevice*Features structure.
- Parameters:
featuresStruct – Physical device extension features struct to be put in the pNext chain of VkPhysicalDeviceFeatures2KHR. Make sure pNext has been set! Easiest way is to initialize the struct as your_vk_features_struct = {};
- Returns:
True if struct was populated
-
template<class VkPhysicalDeviceExtensionProperties>
inline bool populateExtensionPropertiesVk(pvrvk::StructureType type, VkPhysicalDeviceExtensionProperties *propertiesStruct)# Populate an extension properties struct for this physical device using vkGetPhysicalDeviceProperties2KHR.
- Template Parameters:
VkPhysicalDeviceExtensionProperties – A vulkan VkPhysicalDevice*Properties structure.
- Parameters:
propertiesStruct – Physical device extension properties struct to be put in the pNext chain of vkGetPhysicalDeviceProperties2KHR. Make sure pNext has been set! Easiest way is to initialize the struct as your_vk_properties_struct = {};
- Returns:
True if struct was populated
-
std::vector<FragmentShadingRate> getAvailableFragmentShadingRates()#
Returns the possible fragment shading rate combinations for this physical device. Each member returned contains a possible fragment size and a bitmask of the possible MSAA sample counts that can be used with that FSR fragment size.
- Returns:
Vector of available fragment shading rates.
-
inline const PhysicalDeviceProperties &getProperties() const#
Pipeline#
Defined in PipelineVk.h
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkPipeline, ObjectType::e_PIPELINE >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< Pipeline< PVRVkPipeline, PVRVkPipelineCreateInfo > >
(DeviceObjectDebugUtils)
Class Documentation#
-
template<class PVRVkPipeline, class PVRVkPipelineCreateInfo>
class Pipeline : public pvrvk::impl::PVRVkDeviceObjectBase<VkPipeline, ObjectType::e_PIPELINE>, public pvrvk::impl::DeviceObjectDebugUtils<Pipeline<PVRVkPipeline, PVRVkPipelineCreateInfo>># A Graphics Pipeline is a PVRVk adapter to a Vulkan Pipeline to a pipeline created for VK_PIPELINE_BINDING_POINT_COMPUTE, and as such only supports the part of Vulkan that is supported for Graphics pipelines.
Public Functions
-
inline const PipelineLayout &getPipelineLayout() const#
Return pipeline layout.
- Returns:
const PipelineLayout&
-
inline const PVRVkPipelineCreateInfo &getCreateInfo() const#
return pipeline create param used to create the child pipeline
- Returns:
const PipelineCreateInfo<PVRVkPipeline>&
Protected Functions
-
inline ~Pipeline()#
Destructor for a PVRVk pipeline object.
-
inline Pipeline(const DeviceWeakPtr &device, VkPipeline vkPipeline, const PVRVkPipelineCreateInfo &desc)#
Constructor for a PVRVk pipeline object. This constructor shouldn’t be called directly and should instead be called indirectly via the creation of Graphics and Compute pipelines.
- Parameters:
device – The device from which this PVRVk pipeline will be created from.
vkPipeline – The Vulkan pipeline object itself.
desc – The pipeline creation information.
Protected Attributes
-
PVRVkPipelineCreateInfo _createInfo#
Pipeline creation information.
-
VkPipelineCache _pipeCache#
Pipeline cache object providing potential optimisations when create subsequent pipelines.
-
PVRVkPipeline _parent#
A parent pipeline to using when creating this pipeline. Its expected that the parent and this pipeline will have much commonality. Making use of a common parent pipeline means it may be more efficient to create this pipeline. The parent pipeline must have been created using the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT.
-
inline const PipelineLayout &getPipelineLayout() const#
PipelineCache_#
Defined in PipelineCacheVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkPipelineCache, ObjectType::e_PIPELINE_CACHE >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< PipelineCache_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class PipelineCache_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkPipelineCache, ObjectType::e_PIPELINE_CACHE>, public pvrvk::impl::DeviceObjectDebugUtils<PipelineCache_>#
A PVRVk pipeline cache object which allows the result of pipeline construction to be reused between pipelines and between runs of an application.
Public Functions
-
inline PipelineCacheCreateFlags getFlags() const#
Get the pipeline cache creation flags.
- Returns:
The set of pipeline cache creation flags
-
inline size_t getInitialDataSize() const#
Get the initial data size of the pipeline cache.
- Returns:
The initial data size of the pipeline cache
-
inline const void *getInitialData() const#
Get the initial data of the pipeline cache.
- Returns:
The initial data of the pipeline cache
-
inline size_t getCacheMaxDataSize() const#
Get the maximum size of the data that can be retrieved from the this pipeline cache, in bytes.
- Returns:
Returns maximum cache size
-
inline size_t getCacheData(size_t size, void *inOutData) const#
Get the cache data and the size.
- Parameters:
size – The size of the buffer, in bytes, pointed to by inOutData
inOutData – Pointer to the data where it gets written
- Returns:
Returns the amount of data actually written to the buffer
-
inline PipelineCacheCreateInfo getCreateInfo() const#
Get this pipeline cache’s create flags.
- Returns:
-
inline PipelineCacheCreateFlags getFlags() const#
PipelineLayout_#
Defined in PipelineLayoutVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkPipelineLayout, ObjectType::e_PIPELINE_LAYOUT >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< PipelineLayout_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class PipelineLayout_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkPipelineLayout, ObjectType::e_PIPELINE_LAYOUT>, public pvrvk::impl::DeviceObjectDebugUtils<PipelineLayout_>#
Vulkan implementation of the PipelineLayout class.
Public Functions
-
inline const DescriptorSetLayout &getDescriptorSetLayout(uint32_t index) const#
Get a descriptor set layout used by this pipeline layout.
- Parameters:
index – Layout index
- Returns:
std::vector<pvrvk::api::DescriptorSetLayout>&
-
inline const DescriptorSetLayoutSet &getDescriptorSetLayouts() const#
Get all the descriptor set layouts used by this object as (raw datastructure)
- Returns:
The underlying container of all descriptor set layouts used.
-
inline uint32_t getNumDescriptorSetLayouts() const#
Get number of descriptorSet layout.
- Returns:
the number of descriptor set layouts
-
inline const PipelineLayoutCreateInfo &getCreateInfo() const#
Return create param.
- Returns:
const PipelineLayoutCreateInfo&
-
inline const DescriptorSetLayout &getDescriptorSetLayout(uint32_t index) const#
PVRVkDeviceObjectBase#
Defined in PVRVkObjectBaseVk.h
Inheritance Relationships#
Base Type#
public pvrvk::impl::PVRVkObjectBase< VkHandleType, PVRVkObjectType >
(PVRVkObjectBase)
Class Documentation#
-
template<class VkHandleType, ObjectType PVRVkObjectType>
class PVRVkDeviceObjectBase : public pvrvk::impl::PVRVkObjectBase<VkHandleType, PVRVkObjectType># Defines a simple interface for a Vulkan object which holds a reference to a particular device.
Public Functions
- inline DECLARE_NO_COPY_SEMANTICS (PVRVkDeviceObjectBase) inline const Device getDevice() const
Get Device (const)
- Returns:
DeviceWeakPtr
Protected Functions
-
inline PVRVkDeviceObjectBase()#
default Constructor for a device object handle
-
inline explicit PVRVkDeviceObjectBase(const DeviceWeakPtr &device)#
Constructor for a device object handle initialising the Vulkan device.
- Parameters:
device – The Vulkan device used to create the Vulkan object.
-
inline explicit PVRVkDeviceObjectBase(const VkHandleType &handle)#
Constructor for a device object handle initialising the Vulkan object handle.
- Parameters:
handle – The Vulkan object handle given to the Vulkan object.
-
inline PVRVkDeviceObjectBase(const DeviceWeakPtr &device, const VkHandleType &handle)#
Constructor for a device object handle initialising the Vulkan device and device object handle.
- Parameters:
device – The Vulkan device used to create the Vulkan device.
handle – The Vulkan object handle given to the Vulkan object.
Protected Attributes
-
DeviceWeakPtr _device#
The device which was used to create this DeviceObject.
PVRVkInstanceObjectBase#
Defined in PVRVkObjectBaseVk.h
Inheritance Relationships#
Base Type#
public pvrvk::impl::PVRVkObjectBase< VkHandleType, PVRVkObjectType >
(PVRVkObjectBase)
Class Documentation#
-
template<class VkHandleType, ObjectType PVRVkObjectType>
class PVRVkInstanceObjectBase : public pvrvk::impl::PVRVkObjectBase<VkHandleType, PVRVkObjectType># Defines a simple interface for a Vulkan which holds a reference to a Vulkan instance.
Public Functions
- inline DECLARE_NO_COPY_SEMANTICS (PVRVkInstanceObjectBase) inline const Instance getInstance() const
Get instance (const)
- Returns:
Instance
Protected Functions
-
inline PVRVkInstanceObjectBase()#
default Constructor for an instance object handle
-
inline explicit PVRVkInstanceObjectBase(const InstanceWeakPtr &instance)#
Constructor for an instance object handle initialising the instance.
- Parameters:
instance – The Vulkan instance used to create the Vulkan object.
-
inline explicit PVRVkInstanceObjectBase(const VkHandleType &handle)#
Constructor for an instance object handle initialising the Vulkan object handle.
- Parameters:
handle – The Vulkan object handle given to the Vulkan object.
-
inline PVRVkInstanceObjectBase(const InstanceWeakPtr &instance, const VkHandleType &handle)#
Constructor for an instance object handle initialising the instance and Vulkan object handle.
- Parameters:
instance – The Vulkan instance used to create the Vulkan object.
handle – The Vulkan object handle given to the Vulkan object.
Protected Attributes
-
InstanceWeakPtr _instance#
The instance which was used to create this InstanceObject.
PVRVkObjectBase#
Defined in PVRVkObjectBaseVk.h
Inheritance Relationships#
Derived Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkAccelerationStructureKHR, ObjectType::e_ACCELERATION_STRUCTURE_KHR >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkBufferView, ObjectType::e_BUFFER_VIEW >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkBuffer, ObjectType::e_BUFFER >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkCommandBuffer, ObjectType::e_COMMAND_BUFFER >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkCommandPool, ObjectType::e_COMMAND_POOL >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkPipeline, ObjectType::e_PIPELINE >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkDescriptorPool, ObjectType::e_DESCRIPTOR_POOL >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkDescriptorSetLayout, ObjectType::e_DESCRIPTOR_SET_LAYOUT >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkDescriptorSet, ObjectType::e_DESCRIPTOR_SET >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkEvent, ObjectType::e_EVENT >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkFence, ObjectType::e_FENCE >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkFramebuffer, ObjectType::e_FRAMEBUFFER >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkDeviceMemory, ObjectType::e_DEVICE_MEMORY >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkImageView, ObjectType::e_IMAGE_VIEW >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkImage, ObjectType::e_IMAGE >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkPipelineCache, ObjectType::e_PIPELINE_CACHE >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkPipelineLayout, ObjectType::e_PIPELINE_LAYOUT >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkQueryPool, ObjectType::e_QUERY_POOL >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkQueue, ObjectType::e_QUEUE >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkRenderPass, ObjectType::e_RENDER_PASS >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkSampler, ObjectType::e_SAMPLER >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkSemaphore, ObjectType::e_SEMAPHORE >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkShaderModule, ObjectType::e_SHADER_MODULE >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkSwapchainKHR, ObjectType::e_SWAPCHAIN_KHR >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkInstanceObjectBase< VkDebugReportCallbackEXT, ObjectType::e_DEBUG_REPORT_CALLBACK_EXT >
(PVRVkInstanceObjectBase)public pvrvk::impl::PVRVkInstanceObjectBase< VkDebugUtilsMessengerEXT, ObjectType::e_DEBUG_UTILS_MESSENGER_EXT >
(PVRVkInstanceObjectBase)public pvrvk::impl::PVRVkInstanceObjectBase< VkPhysicalDevice, ObjectType::e_PHYSICAL_DEVICE >
(PVRVkInstanceObjectBase)public pvrvk::impl::PVRVkInstanceObjectBase< VkSurfaceKHR, ObjectType::e_SURFACE_KHR >
(PVRVkInstanceObjectBase)public pvrvk::impl::PVRVkPhysicalDeviceObjectBase< VkDevice, ObjectType::e_DEVICE >
(PVRVkPhysicalDeviceObjectBase)public pvrvk::impl::PVRVkPhysicalDeviceObjectBase< VkDisplayModeKHR, ObjectType::e_DISPLAY_MODE_KHR >
(PVRVkPhysicalDeviceObjectBase)public pvrvk::impl::PVRVkPhysicalDeviceObjectBase< VkDisplayKHR, ObjectType::e_DISPLAY_KHR >
(PVRVkPhysicalDeviceObjectBase)public pvrvk::impl::PVRVkDeviceObjectBase< VkHandleType, PVRVkObjectType >
(PVRVkDeviceObjectBase)public pvrvk::impl::PVRVkInstanceObjectBase< VkHandleType, PVRVkObjectType >
(PVRVkInstanceObjectBase)public pvrvk::impl::PVRVkPhysicalDeviceObjectBase< VkHandleType, PVRVkObjectType >
(PVRVkPhysicalDeviceObjectBase)
Class Documentation#
-
template<class VkHandleType, ObjectType PVRVkObjectType>
class PVRVkObjectBase# Defines a simple interface for a Vulkan object.
Subclassed by pvrvk::impl::PVRVkDeviceObjectBase< VkAccelerationStructureKHR, ObjectType::e_ACCELERATION_STRUCTURE_KHR >, pvrvk::impl::PVRVkDeviceObjectBase< VkBufferView, ObjectType::e_BUFFER_VIEW >, pvrvk::impl::PVRVkDeviceObjectBase< VkBuffer, ObjectType::e_BUFFER >, pvrvk::impl::PVRVkDeviceObjectBase< VkCommandBuffer, ObjectType::e_COMMAND_BUFFER >, pvrvk::impl::PVRVkDeviceObjectBase< VkCommandPool, ObjectType::e_COMMAND_POOL >, pvrvk::impl::PVRVkDeviceObjectBase< VkPipeline, ObjectType::e_PIPELINE >, pvrvk::impl::PVRVkDeviceObjectBase< VkDescriptorPool, ObjectType::e_DESCRIPTOR_POOL >, pvrvk::impl::PVRVkDeviceObjectBase< VkDescriptorSetLayout, ObjectType::e_DESCRIPTOR_SET_LAYOUT >, pvrvk::impl::PVRVkDeviceObjectBase< VkDescriptorSet, ObjectType::e_DESCRIPTOR_SET >, pvrvk::impl::PVRVkDeviceObjectBase< VkEvent, ObjectType::e_EVENT >, pvrvk::impl::PVRVkDeviceObjectBase< VkFence, ObjectType::e_FENCE >, pvrvk::impl::PVRVkDeviceObjectBase< VkFramebuffer, ObjectType::e_FRAMEBUFFER >, pvrvk::impl::PVRVkDeviceObjectBase< VkDeviceMemory, ObjectType::e_DEVICE_MEMORY >, pvrvk::impl::PVRVkDeviceObjectBase< VkImageView, ObjectType::e_IMAGE_VIEW >, pvrvk::impl::PVRVkDeviceObjectBase< VkImage, ObjectType::e_IMAGE >, pvrvk::impl::PVRVkDeviceObjectBase< VkPipelineCache, ObjectType::e_PIPELINE_CACHE >, pvrvk::impl::PVRVkDeviceObjectBase< VkPipelineLayout, ObjectType::e_PIPELINE_LAYOUT >, pvrvk::impl::PVRVkDeviceObjectBase< VkQueryPool, ObjectType::e_QUERY_POOL >, pvrvk::impl::PVRVkDeviceObjectBase< VkQueue, ObjectType::e_QUEUE >, pvrvk::impl::PVRVkDeviceObjectBase< VkRenderPass, ObjectType::e_RENDER_PASS >, pvrvk::impl::PVRVkDeviceObjectBase< VkSampler, ObjectType::e_SAMPLER >, pvrvk::impl::PVRVkDeviceObjectBase< VkSemaphore, ObjectType::e_SEMAPHORE >, pvrvk::impl::PVRVkDeviceObjectBase< VkShaderModule, ObjectType::e_SHADER_MODULE >, pvrvk::impl::PVRVkDeviceObjectBase< VkSwapchainKHR, ObjectType::e_SWAPCHAIN_KHR >, pvrvk::impl::PVRVkInstanceObjectBase< VkDebugReportCallbackEXT, ObjectType::e_DEBUG_REPORT_CALLBACK_EXT >, pvrvk::impl::PVRVkInstanceObjectBase< VkDebugUtilsMessengerEXT, ObjectType::e_DEBUG_UTILS_MESSENGER_EXT >, pvrvk::impl::PVRVkInstanceObjectBase< VkPhysicalDevice, ObjectType::e_PHYSICAL_DEVICE >, pvrvk::impl::PVRVkInstanceObjectBase< VkSurfaceKHR, ObjectType::e_SURFACE_KHR >, pvrvk::impl::PVRVkPhysicalDeviceObjectBase< VkDevice, ObjectType::e_DEVICE >, pvrvk::impl::PVRVkPhysicalDeviceObjectBase< VkDisplayModeKHR, ObjectType::e_DISPLAY_MODE_KHR >, pvrvk::impl::PVRVkPhysicalDeviceObjectBase< VkDisplayKHR, ObjectType::e_DISPLAY_KHR >, pvrvk::impl::PVRVkDeviceObjectBase< VkHandleType, PVRVkObjectType >, pvrvk::impl::PVRVkInstanceObjectBase< VkHandleType, PVRVkObjectType >, pvrvk::impl::PVRVkPhysicalDeviceObjectBase< VkHandleType, PVRVkObjectType >
Public Functions
- inline DECLARE_NO_COPY_SEMANTICS (PVRVkObjectBase) inline const VkHandleType &getVkHandle() const
Get vulkan object (const)
- Returns:
Returns the templated ‘HandleType’
-
inline ObjectType getObjectType() const#
Returns the specified object’s type.
- Returns:
The object type
Protected Functions
-
inline PVRVkObjectBase()#
default Constructor for an object handle
-
inline explicit PVRVkObjectBase(const VkHandleType &handle)#
Constructor for an object handle initialising the Vulkan object handle.
- Parameters:
handle – The Vulkan object handle given to the Vulkan object.
Protected Attributes
-
VkHandleType _vkHandle#
The Vulkan object handle representing the Vulkan object at an API level.
-
ObjectType _objectType#
The Vulkan object type.
PVRVkPhysicalDeviceObjectBase#
Defined in PVRVkObjectBaseVk.h
Inheritance Relationships#
Base Type#
public pvrvk::impl::PVRVkObjectBase< VkHandleType, PVRVkObjectType >
(PVRVkObjectBase)
Class Documentation#
-
template<class VkHandleType, ObjectType PVRVkObjectType>
class PVRVkPhysicalDeviceObjectBase : public pvrvk::impl::PVRVkObjectBase<VkHandleType, PVRVkObjectType># Defines a simple interface for a Vulkan which holds a reference to a Vulkan Physical Device.
Public Functions
- inline DECLARE_NO_COPY_SEMANTICS (PVRVkPhysicalDeviceObjectBase) inline const PhysicalDevice getPhysicalDevice() const
Get physical device (const)
- Returns:
PhysicalDevice
-
inline PhysicalDevice getPhysicalDevice()#
Get physical device.
- Returns:
PhysicalDevice
Protected Functions
-
inline PVRVkPhysicalDeviceObjectBase()#
default Constructor for a physical device object handle
-
inline explicit PVRVkPhysicalDeviceObjectBase(const PhysicalDeviceWeakPtr &physicalDevice)#
Constructor for a physical device object handle initialising the physical device.
- Parameters:
physicalDevice – The Vulkan physical device used to create the Vulkan object.
-
inline explicit PVRVkPhysicalDeviceObjectBase(const VkHandleType &handle)#
Constructor for a physical device object handle initialising the physical device and Vulkan object handle.
- Parameters:
handle – The Vulkan object handle given to the Vulkan object.
-
inline PVRVkPhysicalDeviceObjectBase(const PhysicalDeviceWeakPtr &physicalDevice, const VkHandleType &handle)#
Constructor for a physical device object handle initialising the physical device and Vulkan object handle.
- Parameters:
physicalDevice – The Vulkan physical device used to create the Vulkan object.
handle – The Vulkan object handle given to the Vulkan object.
Protected Attributes
-
PhysicalDeviceWeakPtr _physicalDevice#
The physical device which was used to create this PhysicalDeviceObject.
QueryPool_#
Defined in QueryPoolVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkQueryPool, ObjectType::e_QUERY_POOL >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< QueryPool_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class QueryPool_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkQueryPool, ObjectType::e_QUERY_POOL>, public pvrvk::impl::DeviceObjectDebugUtils<QueryPool_>#
Vulkan implementation of the Query Pool class. Destroying the query pool will also destroy the queries allocated from this pool.
Public Functions
-
bool getResults(uint32_t queryIndex, size_t dataSize, void *data, QueryResultFlags flags)#
Retrieves the status and results for a particular query.
- Parameters:
queryIndex – The initial query index
dataSize – The size of bytes of the buffer pointed to by data
data – A pointer to a user allocated buffer where the results will be written
flags – Specifies how and when results are returned
- Returns:
True if the results or status’ for the set of queries were successfully retrieved
-
bool getResults(uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void *data, VkDeviceSize stride, QueryResultFlags flags)#
Retrieves the status and results for a set of queries.
- Parameters:
firstQuery – The initial query index
queryCount – The number of queries
dataSize – The size of bytes of the buffer pointed to by data
data – A pointer to a user allocated buffer where the results will be written
stride – The stide in bytes between results for individual queries within data
flags – Specifies how and when results are returned
- Returns:
True if the results or statuses for the set of queries were successfully retrieved
-
inline QueryPoolCreateFlags getFlags() const#
Get the query pool creation flags.
- Returns:
The set of query pool creation flags
-
inline QueryPipelineStatisticFlags getQueryPipelineStatisticFlags() const#
Get the set of counters which will be returned in queries on the pool.
- Returns:
The set of counters which will be returned in queries on the pool
-
inline QueryType getQueryType() const#
Get the type of queries managed by this query pool.
- Returns:
The type of queries managed by this query pool
-
inline uint32_t getNumQueries() const#
Get the number of queries managed by the pool.
- Returns:
The number of queries managed by the pool
-
inline QueryPoolCreateInfo getCreateInfo() const#
Get this query pool’s create flags.
- Returns:
-
bool getResults(uint32_t queryIndex, size_t dataSize, void *data, QueryResultFlags flags)#
Queue_#
Defined in QueueVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkQueue, ObjectType::e_QUEUE >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< Queue_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class Queue_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkQueue, ObjectType::e_QUEUE>, public pvrvk::impl::DeviceObjectDebugUtils<Queue_>#
Wraps vulkan queue object.
Public Functions
-
inline void submit(const SubmitInfo &queueSubmitInfo, Fence signalFence = Fence())#
Submit.
- Parameters:
queueSubmitInfo – Queue submit info
signalFence – Optional handle to a fence to be signaled. If fence is not null handle, it defines a fence signal
-
void submit(const SubmitInfo *queueSubmitInfo, uint32_t numSubmitInfos, Fence signalFence = Fence())#
Submit.
- Parameters:
queueSubmitInfo – Pointer to submit info
numSubmitInfos – number of submit info
signalFence – Optional handle to a fence to be signaled. If fence is not null handle, it defines a fence signal
-
void present(const PresentInfo &presentInfo, Result *const results = nullptr)#
Present.
- Parameters:
presentInfo – Present info
results – An array of presentInfo.swapchainCount Results. Applications that do not need per-swapchain results can use nullptr for results. If non-NULL, each entry results will be set to the Result for presenting the swapchain corresponding to the same swapchain
-
void waitIdle()#
To wait on the host for the completion of outstanding queue operations for a given queue. This is equivalent to submitting a fence to a queue and waiting with an infinite timeout for that fence to signal.
-
inline pvrvk::QueueFlags getFlags() const#
Return supported queue flags.
- Returns:
pvrvk::QueueFlags
-
inline float getPriority() const#
Return the queues priority.
- Returns:
Queue Priority
-
void bindSparse(const BindSparseInfo *bindInfo, uint32_t numBindInfos, Fence &fenceSignal)#
Submit sparse binding operations.
- Parameters:
bindInfo – Pointer to bind infos
numBindInfos – Number of bind infos
fenceSignal – Optional handle to a fence to be signaled. If fence is not null handle, it defines a fence signal operation.
-
inline uint32_t getFamilyIndex() const#
Get family id.
32_t
- Returns:
uint
-
void beginDebugUtilsLabel(const pvrvk::DebugUtilsLabel &labelInfo)#
Begins identifying a region of work submitted to this queue. The calls to beginDebugUtilsLabel and endDebugUtilsLabel must be matched and balanced.
- Parameters:
labelInfo – Specifies the parameters of the label region to open
-
void endDebugUtilsLabel()#
Ends a label region of work submitted to this queue.
-
void insertDebugUtilsLabel(const pvrvk::DebugUtilsLabel &labelInfo)#
Inserts a single debug label any time.
- Parameters:
labelInfo – Specifies the parameters of the label region to insert
-
inline void submit(const SubmitInfo &queueSubmitInfo, Fence signalFence = Fence())#
RaytracingPipeline_#
Defined in RaytracingPipelineVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Type#
public pvrvk::impl::Pipeline< RaytracingPipeline, RaytracingPipelineCreateInfo >
(Pipeline)
Class Documentation#
-
class RaytracingPipeline_ : public pvrvk::impl::Pipeline<RaytracingPipeline, RaytracingPipelineCreateInfo>#
Vulkan RaytracingPipeline wrapper.
RenderPass_#
Defined in RenderPassVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkRenderPass, ObjectType::e_RENDER_PASS >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< RenderPass_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class RenderPass_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkRenderPass, ObjectType::e_RENDER_PASS>, public pvrvk::impl::DeviceObjectDebugUtils<RenderPass_>#
Vulkan implementation of the RenderPass class. Use through the Reference counted framework object pvrvk::api::RenderPass. RenderPass Compatibility: Framebuffers and graphics pipelines are created based on a specific render pass object. They must only be used with that render pass object, or one compatible with it. Two attachment references are compatible if they have matching format and sample count, Two arrays of attachment references are compatible if all corresponding pairs of attachments are compatible. If the arrays are of different lengths, attachment references not present in the smaller array are treated as unused. Two render passes that contain only a single subpass are compatible if their corresponding color, input, resolve, and depth/stencil attachment references are compatible. If two render passes contain more than one subpass, they are compatible if they are identical except for: - Initial and final image layout in attachment descriptions - Load and store operations in attachment descriptions - Image layout in attachment references A framebuffer is compatible with a render pass if it was created using the same render pass or a compatible render pass.
Public Functions
-
inline const RenderPassCreateInfo &getCreateInfo() const#
getCreateInfo
- Returns:
-
inline const RenderPassCreateInfo &getCreateInfo() const#
Sampler_#
Defined in SamplerVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkSampler, ObjectType::e_SAMPLER >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< Sampler_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class Sampler_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkSampler, ObjectType::e_SAMPLER>, public pvrvk::impl::DeviceObjectDebugUtils<Sampler_>#
SamplerVk_ implementation that wraps the vulkan sampler.
Public Functions
-
inline const SamplerCreateInfo &getCreateInfo() const#
Get sampler create info (const)
- Returns:
-
inline const SamplerCreateInfo &getCreateInfo() const#
SecondaryCommandBuffer_#
Defined in CommandBufferVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Type#
public pvrvk::impl::CommandBufferBase_
(CommandBufferBase_)
Class Documentation#
-
class SecondaryCommandBuffer_ : public pvrvk::impl::CommandBufferBase_#
Contains all the commands and states that need to be submitted to the gpu, including pipeline, texture, and samplers. Virtually everything that needs to happen on the GPU is submitted to the CommandBuffer.
Secondary command buffers cannot contain RenderPasses, and cannot be submitted to the GPU. SecondaryCommandBuffers can be submitted to the primaryCommandBuffer -It is invalid to submit commands to a command buffer while it is not being recorded. -It is invalid to reset a command buffer while it is being recorded. -It is invalid to submit a command buffer more than once if it is one time submit command buffer -Draw commands must be between a BeginRenderPass and an EndRenderPass command
Public Functions
-
void begin(const RenderPass &renderpass, uint32_t subpass = 0, const CommandBufferUsageFlags flags = CommandBufferUsageFlags::e_RENDER_PASS_CONTINUE_BIT)#
Call this function before beginning to record commands. If the Framebuffer object is known, prefer the Framebuffer overload as it may offer better performance.
- Parameters:
renderpass – A RenderPass object defining which render passes this SecondaryCommandBuffer will be compatible with and can be executed within.
subpass – The index of the subpass within the render pass instance that this CommandBuffer will be executed within.
flags – Flags is a bitmask of CommandBufferUsageFlagBits specifying usage behavior for the command buffer.
-
void begin(const Framebuffer &framebuffer, uint32_t subpass = 0, const CommandBufferUsageFlags flags = CommandBufferUsageFlags::e_RENDER_PASS_CONTINUE_BIT)#
Call this function before beginning to record commands.
- Parameters:
framebuffer – Refers to an Framebuffer object that this CommandBuffer will be rendering to if it is executed within a render pass instance.
subpass – The index of the subpass within the render pass instance that this CommandBuffer will be executed within.
flags – Flags is a bitmask of CommandBufferUsageFlagBits specifying usage behavior for the command buffer.
-
void begin(const CommandBufferUsageFlags flags = CommandBufferUsageFlags(0))#
Call this function before beginning to record commands.
- Parameters:
flags – Flags is a bitmask of CommandBufferUsageFlags specifying usage behavior for the command buffer.
Protected Static Functions
Protected function used to create a pvrvk::SecondaryCommandBuffer. Note that this function shouldn’t normally be called directly and will be called by a friend of SecondaryCommandBuffer_ which will generally be a CommandPool.
- Parameters:
device – The device used to allocate the secondary command buffer.
pool – The pool from which the command buffer will be allocated.
myHandle – The vulkan handle for this command buffer.
- Returns:
Returns a successfully created pvrvk::SecondaryCommandBuffer
Friends
- friend class CommandPool_
A class which restricts the creation of a pvrvk::SecondaryCommandBuffer to children or friends of a pvrvk::impl::SecondaryCommandBuffer_.
Protected Functions
Constructor for a make_shared_enabler.
Protected Attributes
- friend SecondaryCommandBuffer_
Indicates that a pvrvk::impl::SecondaryCommandBuffer_ is a friend.
-
void begin(const RenderPass &renderpass, uint32_t subpass = 0, const CommandBufferUsageFlags flags = CommandBufferUsageFlags::e_RENDER_PASS_CONTINUE_BIT)#
Semaphore_#
Defined in SemaphoreVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkSemaphore, ObjectType::e_SEMAPHORE >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< Semaphore_ >
(DeviceObjectDebugUtils)
Derived Type#
public pvrvk::impl::TimelineSemaphore_
(TimelineSemaphore_)
Class Documentation#
-
class Semaphore_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkSemaphore, ObjectType::e_SEMAPHORE>, public pvrvk::impl::DeviceObjectDebugUtils<Semaphore_>#
Vulkan implementation of the Semaphore class. Use to “serialize” access between CommandBuffer submissions and /Queues.
Subclassed by pvrvk::impl::TimelineSemaphore_
Public Functions
-
inline SemaphoreCreateFlags getFlags() const#
Get the Semaphore creation flags.
- Returns:
The set of Semaphore creation flags
-
inline SemaphoreCreateInfo getCreateInfo() const#
Get this Semaphore’s create flags.
- Returns:
Protected Attributes
-
SemaphoreCreateInfo _createInfo#
Creation information used when creating the Semaphore.
-
inline SemaphoreCreateFlags getFlags() const#
ShaderModule_#
Defined in ShaderModuleVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkShaderModule, ObjectType::e_SHADER_MODULE >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< ShaderModule_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class ShaderModule_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkShaderModule, ObjectType::e_SHADER_MODULE>, public pvrvk::impl::DeviceObjectDebugUtils<ShaderModule_>#
Vulkan shader module wrapper.
Public Functions
-
inline ShaderModuleCreateFlags getFlags() const#
Get the ShaderModule creation flags.
- Returns:
The set of ShaderModule creation flags
-
inline uint32_t getCodeSize() const#
Get the size of the shader sources.
- Returns:
The size of shader sources
-
inline const std::vector<uint32_t> &getShaderSources() const#
Get the shader sources.
- Returns:
The set of shader sources
-
inline ShaderModuleCreateInfo getCreateInfo() const#
Get this shader modules’s create flags.
- Returns:
-
inline ShaderModuleCreateFlags getFlags() const#
Surface_#
Defined in SurfaceVk.h
Inheritance Relationships#
Base Type#
public pvrvk::impl::PVRVkInstanceObjectBase< VkSurfaceKHR, ObjectType::e_SURFACE_KHR >
(PVRVkInstanceObjectBase)
Derived Type#
public pvrvk::impl::DisplayPlaneSurface_
(DisplayPlaneSurface_)
Class Documentation#
-
class Surface_ : public pvrvk::impl::PVRVkInstanceObjectBase<VkSurfaceKHR, ObjectType::e_SURFACE_KHR>#
A surface represents a renderable part of the “screen”, e.g. the inside part of the window.
Subclassed by pvrvk::impl::DisplayPlaneSurface_
SwapchainImage_#
Defined in ImageVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Type#
public pvrvk::impl::Image_
(Image_)
Class Documentation#
Swapchain_#
Defined in SwapchainVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Types#
public pvrvk::impl::PVRVkDeviceObjectBase< VkSwapchainKHR, ObjectType::e_SWAPCHAIN_KHR >
(PVRVkDeviceObjectBase)public pvrvk::impl::DeviceObjectDebugUtils< Swapchain_ >
(DeviceObjectDebugUtils)
Class Documentation#
-
class Swapchain_ : public pvrvk::impl::PVRVkDeviceObjectBase<VkSwapchainKHR, ObjectType::e_SWAPCHAIN_KHR>, public pvrvk::impl::DeviceObjectDebugUtils<Swapchain_>#
The Swapchain is the object wrapping the on - screen rendering Framebuffer images (aka front/backbuffers)
Public Functions
-
bool acquireNextImage(uint64_t timeOut, Semaphore signalSemaphore, Fence signalFence)#
Acquire next image. The acquired swapchain index can be retrieved by calling getSwapchainIndex. Note: The presenation engine may still be consuming the swapchain image, therefore the calle must synchronise it before using it.
- Parameters:
timeOut – indicates how long the function waits, in nanoseconds, if no image is available.
signalSemaphore – is null semaphore or a semaphore to signal
signalFence – is a null fence or fence to signal
- Returns:
Return true if image was acquired, false if timed out or suboptimal.
-
bool acquireNextImage(uint64_t timeOut, Semaphore signalSemaphore = Semaphore())#
Acquire next image. The acquired swapchain index can be retrieved by calling getSwapchainIndex. Note: The presenation engine may still be consuming the swapchain image, therefore the calle must synchronise it before using it.
- Parameters:
timeOut – indicates how long the function waits, in nanoseconds, if no image is available.
signalSemaphore – is null semaphore or a semaphore to signal
- Returns:
Return true if image was acquired, false if timed out or suboptimal.
-
inline uint32_t getSwapchainLength() const#
Get swapchain length.
32_t
- Returns:
uint
-
inline const uint32_t &getSwapchainIndex() const#
Get the acquired swapchain index. Note: The presenation engine may still be consuming the swapchain image, therefore the calle must synchronise it before using it. swapchain index.
- Returns:
-
inline const ImageView &getImageView(uint32_t swapchain) const#
Get swapchain image view.
- Parameters:
swapchain – swapchain index
- Returns:
ImageView
-
inline ImageView &getImageView(uint32_t swapchain)#
Get swapchain image view.
- Parameters:
swapchain – swapchain index
- Returns:
ImageView
-
inline const Image &getImage(uint32_t swapchain) const#
Get swapchain image.
- Parameters:
swapchain – swapchain index
- Returns:
Image
-
inline Image &getImage(uint32_t swapchain)#
Get swapchain image.
- Parameters:
swapchain – swapchain index
- Returns:
Image
-
inline Extent2D getDimension() const#
Get dimension.
- Returns:
Extent
-
inline bool isClipped() const#
Gets whether the swapchain images are clipped.
- Returns:
True if the swapchain images are clipped
-
inline CompositeAlphaFlagsKHR getCompositeAlphaFlags() const#
Gets the CompositeAlphaFlagsKHR of the swapchain images.
- Returns:
The CompositeAlphaFlagsKHR for the swapchain image
-
inline uint32_t getNumArrayLayers() const#
Gets the number of array layers of the swapchain images.
- Returns:
The number of array layers of the swapchain images
-
inline Format getImageFormat() const#
Get swapchain image format.
- Returns:
Format
-
inline ColorSpaceKHR getColorSpace() const#
Gets the color space of the swapchain images.
- Returns:
The color space of the swapchain images
-
inline SurfaceTransformFlagsKHR getTransformFlags() const#
Gets the surface transform flags of the swapchain images.
- Returns:
The surface transform flags of the swapchain images
-
inline SharingMode getSharingMode() const#
Gets the image sharing mode of the swapchain images.
- Returns:
The image sharing mode of the swapchain images
-
inline PresentModeKHR getPresentationMode() const#
Gets the presentation mode of the swapchain images.
- Returns:
The presentation mode of the swapchain images
-
inline uint32_t getNumQueueFamilyIndices() const#
Gets the number of queue families which can make use of the swapchain images.
- Returns:
The number of queue families which can make use of the swapchain images
-
inline std::vector<uint32_t> getQueueFamilyIndices() const#
Gets the queue family indicies for the queues which can make use of the swapchain images.
- Returns:
The queue family indicies for the queues which can make use of the swapchain images
-
inline ImageUsageFlags getUsage() const#
Gets the swapchain image usage flags.
- Returns:
The swapchain image usage
-
inline bool supportsUsage(const ImageUsageFlags &imageUsage) const#
Returns whether the swapchain supports the specified image usage flag bits.
- Parameters:
imageUsage – The ImageUsageFlags bits to check for support
- Returns:
True if the swapchain supports the specified image usage
-
bool acquireNextImage(uint64_t timeOut, Semaphore signalSemaphore, Fence signalFence)#
TimelineSemaphore_#
Defined in TimelineSemaphoreVk.h
Nested Relationships#
Nested Types#
Inheritance Relationships#
Base Type#
public pvrvk::impl::Semaphore_
(Semaphore_)
Class Documentation#
-
class TimelineSemaphore_ : public pvrvk::impl::Semaphore_#
Public Functions
-
bool wait(const uint64_t &waitValue, uint64_t timeoutNanos = static_cast<uint64_t>(-1))#
-
bool wait(const uint64_t &waitValue, uint64_t timeoutNanos = static_cast<uint64_t>(-1))#
ArrayOrVector#
Defined in TypesVk.h
Class Documentation#
-
template<typename ElementType, size_t staticSize>
class ArrayOrVector# Internal helper class that is used for unknown size arrays, utilising a small statically allocated space to avoid dynamic allocations if an array of “less-than” a number of items is required.
- Template Parameters:
ElementType – The type of items stored
staticSize – The amount of statically allocated memory used. If overran, a dynamic allocation takes place.
Public Functions
-
inline ElementType &operator[](size_t idx)#
Array indexing operator.
- Parameters:
idx – Array index
- Returns:
The indexed item
-
inline const ElementType &operator[](size_t idx) const#
Array indexing operator.
- Parameters:
idx – Array index
- Returns:
The indexed item
-
inline ArrayOrVector(size_t numItemsRequired)#
Constructor. Takes the actual, runtime size of the array.
- Parameters:
numItemsRequired – The size required for the array
-
inline ~ArrayOrVector()#
Destructor.
-
inline ElementType *get()#
Returns the pointer to the actual storage used (whether static or dynamic)
- Returns:
The pointer to the actual storage used.
-
inline const ElementType *get() const#
Returns the pointer to the actual storage used (whether static or dynamic)
- Returns:
The pointer to the actual storage used.
BarrierPipelineStageFlag2#
Defined in MemoryBarrierVk.h
Inheritance Relationships#
Derived Types#
public pvrvk::BufferMemoryBarrier2
(BufferMemoryBarrier2)public pvrvk::ImageMemoryBarrier2
(ImageMemoryBarrier2)public pvrvk::MemoryBarrier2
(MemoryBarrier2)
Class Documentation#
-
class BarrierPipelineStageFlag2#
Subclassed by pvrvk::BufferMemoryBarrier2, pvrvk::ImageMemoryBarrier2, pvrvk::MemoryBarrier2
Public Functions
-
inline BarrierPipelineStageFlag2()#
Constructor, zero initialization.
-
inline BarrierPipelineStageFlag2(pvrvk::PipelineStageFlagBits2KHR srcStageMaskParam, pvrvk::PipelineStageFlagBits2KHR dstStageMaskParam)#
Constructor, individual elements.
- Parameters:
srcStageMaskParam – Bitmask of pvrvk::PipelineStageFlagBits2KHR specifying a source pipeline stage mask.
dstStageMaskParam – Bitmask of pvrvk::PipelineStageFlagBits2KHR specifying a destination pipeline stage mask.
-
inline const PipelineStageFlagBits2KHR &getSrcStageMask() const#
Get srcStageMask.
- Returns:
An PipelineStageFlagBits2KHR structure specifying the source pipeline stage flags
-
inline void setSrcStageMask(const PipelineStageFlagBits2KHR &inSrcStageMask)#
Set srcStageMask.
- Parameters:
inSrcStageMask – An PipelineStageFlagBits2KHR structure specifying the source pipeline stage flags
-
inline const PipelineStageFlagBits2KHR &getDstStageMask() const#
Get dstStageMask.
- Returns:
An PipelineStageFlagBits2KHR structure specifying the destination pipeline stage flags
-
inline void setDstStageMask(const PipelineStageFlagBits2KHR &inDstStageMask)#
Set dstStageMask.
- Parameters:
inDstStageMask – An PipelineStageFlagBits2KHR structure specifying the destination pipeline stage flags
Protected Attributes
-
pvrvk::PipelineStageFlagBits2KHR srcStageMask#
Bitmask for the pipeline stage source stage mask, which is per-barrier in VK_KHR_synchronization2.
-
pvrvk::PipelineStageFlagBits2KHR dstStageMask#
Bitmask for the pipeline stage destination stage mask, which is per-barrier in VK_KHR_synchronization2.
-
inline BarrierPipelineStageFlag2()#
BarrierQueueFamilyIndex#
Defined in MemoryBarrierVk.h
Inheritance Relationships#
Derived Types#
public pvrvk::ImageMemoryBarrierTemplate< pvrvk::AccessFlagBits2KHR >
(ImageMemoryBarrierTemplate)public pvrvk::BufferMemoryBarrier2
(BufferMemoryBarrier2)public pvrvk::ImageMemoryBarrierTemplate< AccessFlagsType >
(ImageMemoryBarrierTemplate)
Class Documentation#
-
class BarrierQueueFamilyIndex#
Subclassed by pvrvk::ImageMemoryBarrierTemplate< pvrvk::AccessFlagBits2KHR >, pvrvk::BufferMemoryBarrier2, pvrvk::ImageMemoryBarrierTemplate< AccessFlagsType >
Public Functions
-
inline BarrierQueueFamilyIndex()#
Constructor, zero initialization.
-
inline BarrierQueueFamilyIndex(uint32_t srcQueueFamilyIndexParam, uint32_t dstQueueFamilyIndexParam)#
Constructor, individual elements.
- Parameters:
srcQueueFamilyIndexParam – Source queue index.
dstQueueFamilyIndexParam – Destination queue index.
-
inline uint32_t getSrcQueueFamilyIndex() const#
Get the source queue family index for the image associated with the memory barrier.
- Returns:
The source queue family index of the image associated with the memory barrier
-
inline void setSrcQueueFamilyIndex(uint32_t inSrcQueueFamilyIndex)#
Set the source queue family index.
- Parameters:
inSrcQueueFamilyIndex – The source queue family index of the image associated with the memory barrier
-
inline uint32_t getDstQueueFamilyIndex() const#
Get the destination queue family index for the image associated with the memory barrier.
- Returns:
The destination queue family index of the image associated with the memory barrier
-
inline void setDstQueueFamilyIndex(uint32_t inDstQueueFamilyIndex)#
Set the destination queue family index.
- Parameters:
inDstQueueFamilyIndex – The destination queue family index of the image associated with the memory barrier
-
inline BarrierQueueFamilyIndex()#
BufferMemoryBarrier2#
Defined in MemoryBarrierVk.h
Inheritance Relationships#
Base Types#
public pvrvk::BufferMemoryBarrierTemplate< pvrvk::AccessFlagBits2KHR >
(BufferMemoryBarrierTemplate)public pvrvk::BarrierPipelineStageFlag2
public pvrvk::BarrierQueueFamilyIndex
Class Documentation#
-
class BufferMemoryBarrier2 : public pvrvk::BufferMemoryBarrierTemplate<pvrvk::AccessFlagBits2KHR>, public pvrvk::BarrierPipelineStageFlag2, public pvrvk::BarrierQueueFamilyIndex#
A Buffer memory barrier similar to BufferMemoryBarrier but used in VK_KHR_synchronization2.
Public Functions
-
inline BufferMemoryBarrier2()#
Constructor, zero initialization.
-
inline BufferMemoryBarrier2(pvrvk::PipelineStageFlagBits2KHR srcStageMask, pvrvk::PipelineStageFlagBits2KHR dstStageMask, pvrvk::AccessFlagBits2KHR srcAccessMask, pvrvk::AccessFlagBits2KHR dstAccessMask, uint32_t srcQueueFamilyIndexParam, uint32_t dstQueueFamilyIndexParam, Buffer buffer, uint32_t offset, uint32_t size)#
Constructor, individual elements.
- Parameters:
srcStageMask – Bitmask for the source pipeline stage as in VK_KHR_synchronization2 it is defined per barrier.
dstStageMask – Bitmask for the destination pipeline stage as in VK_KHR_synchronization2 it is defined per barrier.
srcAccessMask – Bitmask of pvrvk::AccessFlagBits specifying a source access mask.
dstAccessMask – Bitmask of pvrvk::AccessFlagBits specifying a destination access mask.
srcQueueFamilyIndexParam – Source queue family for a queue family ownership transfer.
dstQueueFamilyIndexParam – Destination queue family for a queue family ownership transfer
buffer – Handle to the buffer whose backing memory is affected by the barrier.
offset – Offset in bytes into the backing memory for buffer. This is relative to the base offset as bound to the buffer
size – Size in bytes of the affected area of backing memory for buffer, or VK_WHOLE_SIZE to use the range from offset to the end of the buffer.
-
inline BufferMemoryBarrier2()#
BufferMemoryBarrierTemplate#
Defined in MemoryBarrierVk.h
Inheritance Relationships#
Base Type#
public pvrvk::MemoryBarrierTemplate< AccessFlagsType >
(MemoryBarrierTemplate)
Class Documentation#
-
template<class AccessFlagsType>
class BufferMemoryBarrierTemplate : public pvrvk::MemoryBarrierTemplate<AccessFlagsType># A Buffer memory barrier used only for memory accesses involving a specific range of the specified buffer object. It is also used to transfer ownership of an buffer range from one queue family to another.
Public Functions
-
inline BufferMemoryBarrierTemplate()#
Constructor, zero initialization.
-
inline BufferMemoryBarrierTemplate(AccessFlagsType srcAccessMaskParam, AccessFlagsType dstAccessMaskParam, Buffer bufferParam, uint32_t offsetParam, uint32_t sizeParam)#
Constructor, individual elements.
- Parameters:
srcAccessMask – Bitmask of pvrvk::AccessFlagBits specifying a source access mask.
dstAccessMask – Bitmask of pvrvk::AccessFlagBits specifying a destination access mask.
bufferParam – Handle to the buffer whose backing memory is affected by the barrier.
offsetParam – Offset in bytes into the backing memory for buffer. This is relative to the base offset as bound to the buffer
sizeParam – Size in bytes of the affected area of backing memory for buffer, or VK_WHOLE_SIZE to use the range from offset to the end of the buffer.
-
inline const Buffer &getBuffer() const#
Get Buffer associated with the memory barrier.
- Returns:
The PVRVk::Buffer associated with the memory barrier
-
inline void setBuffer(const Buffer &inBuffer)#
Set buffer associated with the memory barrier.
- Parameters:
inBuffer – The PVRVk::Buffer associated with the memory barrier
-
inline uint32_t getSize() const#
Get size corresponding to the slice of the Buffer associated with the memory barrier.
- Returns:
The size of the range of the PVRVk::Buffer associated with the memory barrier
-
inline void setSize(uint32_t inSize)#
Set the size of the slice of the buffer associated with the memory barrier.
- Parameters:
inSize – The size of the slice of the PVRVk::Buffer associated with the memory barrier
-
inline uint32_t getOffset() const#
Get the offset into the Buffer associated with the memory barrier.
- Returns:
The offset into PVRVk::Buffer associated with the memory barrier
-
inline void setOffset(uint32_t inOffset)#
Set the offset into the buffer associated with the memory barrier.
- Parameters:
inOffset – The offset into the PVRVk::Buffer associated with the memory barrier
Protected Attributes
-
uint32_t offset#
Offset in bytes into the backing memory for buffer. This is relative to the base offset as bound to the buffer.
-
uint32_t size#
Size in bytes of the affected area of backing memory for buffer, or VK_WHOLE_SIZE to use the range from offset to the end of the buffer.
-
inline BufferMemoryBarrierTemplate()#
ExtensionFeatures#
Defined in ExtensionsVk.h
Inheritance Relationships#
Derived Types#
public pvrvk::FragmentShadingRateFeatures
(FragmentShadingRateFeatures)public pvrvk::RayTracingPipelineFeatures
(RayTracingPipelineFeatures)
Class Documentation#
-
class ExtensionFeatures#
Base class for physical device extension features abstractions.
Subclassed by pvrvk::FragmentShadingRateFeatures, pvrvk::RayTracingPipelineFeatures
Public Functions
-
inline virtual void *getVkPtr() = 0#
Get the location of the vulkan physical device features struct.
- Returns:
Pointer to the beginning of the vulkan struct data (the sType member)
-
inline virtual StructureType getSType() const = 0#
Get sType.
- Returns:
Vulkan struct type
-
inline virtual void *getPNext() const = 0#
Get pNext.
- Returns:
pNext pointer
-
virtual ExtensionFeatures &setPNext(void *pNext) = 0#
Set pNext.
- Parameters:
pNext – pNext pointer
-
inline virtual void *getVkPtr() = 0#
FragmentShadingRate#
Defined in ExtensionsVk.h
Inheritance Relationships#
Base Type#
private VkPhysicalDeviceFragmentShadingRateKHR
Class Documentation#
-
class FragmentShadingRate : private VkPhysicalDeviceFragmentShadingRateKHR#
Defines a fragment shading rate as a fragment size and a bitmask of the MSAA sample counts that can be used with that fragment size. Use pvrvk::PhysicalDevice::getAvailableFragmentShadingRates() to get the available fragment shading rates for a particular physical devices.
Public Functions
-
inline FragmentShadingRate()#
-
inline FragmentShadingRate(VkPhysicalDeviceFragmentShadingRateKHR vkType)#
-
inline FragmentShadingRate(SampleCountFlags sampleCounts, Extent2D fragmentSize)#
-
inline VkPhysicalDeviceFragmentShadingRateKHR &get()#
Get the vulkan struct equivilent of this class.
- Returns:
VkPhysicalDeviceFragmentShadingRateKHR struct.
-
inline const VkPhysicalDeviceFragmentShadingRateKHR &get() const#
Get the vulkan struct equivilent of this class.
- Returns:
Const VkPhysicalDeviceFragmentShadingRateKHR struct.
-
inline Extent2D getFragmentSize() const#
Get the [x,y] fragment size that can be used for fragment shading rate functionality.
- Returns:
[x,y] integers corresponding to a fragment size.
-
inline SampleCountFlags getSampleCount() const#
Get a bitmask of the possible MSAA sample counts that can be used with the associated fragment size.
- Returns:
Bitmask of sample counts.
-
inline FragmentShadingRate()#
FragmentShadingRateFeatures#
Defined in ExtensionsVk.h
Inheritance Relationships#
Base Types#
private VkPhysicalDeviceFragmentShadingRateFeaturesKHR
public pvrvk::ExtensionFeatures
(ExtensionFeatures)
Class Documentation#
-
class FragmentShadingRateFeatures : private VkPhysicalDeviceFragmentShadingRateFeaturesKHR, public pvrvk::ExtensionFeatures#
List of supported fragment shading rate features for a physical device.
Public Functions
-
inline FragmentShadingRateFeatures(void *pNext = nullptr)#
-
inline FragmentShadingRateFeatures(VkPhysicalDeviceFragmentShadingRateFeaturesKHR vkType)#
-
inline virtual void *getVkPtr()#
Get the location of the vulkan physical device features struct.
- Returns:
Pointer to the beginning of the vulkan struct data (the sType member)
-
inline virtual StructureType getSType() const#
Get sType.
- Returns:
Vulkan struct type
-
inline virtual void *getPNext() const#
Get pNext.
- Returns:
pNext pointer
-
inline virtual ExtensionFeatures &setPNext(void *pNextPointer)#
Set pNext.
- Parameters:
pNext – pNext pointer
-
inline void setPipelineFeature(bool inPipelineFragmentShadingRate)#
Set pipeline fsr feature.
<param name”pipelineFragmentShadingRate”>boolean state
-
inline void setPrimitiveFeature(bool inPrimitiveFragmentShadingRate)#
Set primitive fsr feature.
<param name”primitiveFragmentShadingRate”>boolean state
-
inline void setAttachmentFeature(bool inAttachmentFragmentShadingRate)#
Set attachment fsr feature.
<param name”attachmentFragmentShadingRate”>boolean state
-
inline VkPhysicalDeviceFragmentShadingRateFeaturesKHR &get()#
Get the vulkan struct equivilent of this class.
- Returns:
VkPhysicalDeviceFragmentShadingRateFeaturesKHR struct
-
inline bool getPipelineFeature() const#
If members have been populated, returns wherever the pipeline fragment shading rate feature is enabled.
- Returns:
Bool is true if feature is enabled
-
inline bool getPrimitiveFeature() const#
If members have been populated, returns wherever the primitive fragment shading rate feature is enabled.
- Returns:
Bool is true if feature is enabled
-
inline bool getAttachmentFeature() const#
If members have been populated, returns wherever the attachment fragment shading rate feature is enabled.
- Returns:
Bool is true if feature is enabled
-
inline FragmentShadingRateFeatures(void *pNext = nullptr)#
FragmentShadingRateProperties#
Defined in ExtensionsVk.h
Inheritance Relationships#
Base Type#
public VkPhysicalDeviceFragmentShadingRatePropertiesKHR
Class Documentation#
-
class FragmentShadingRateProperties : public VkPhysicalDeviceFragmentShadingRatePropertiesKHR#
Set of fragment shading rate properties for a physical device.
Public Functions
-
inline FragmentShadingRateProperties(void *pNext = nullptr)#
-
inline FragmentShadingRateProperties(VkPhysicalDeviceFragmentShadingRatePropertiesKHR vkType)#
-
inline VkPhysicalDeviceFragmentShadingRatePropertiesKHR *getVkPtr()#
Get the location of the vulkan physical device features struct.
- Returns:
Pointer to the beginning of the vulkan struct data (the sType member)
-
inline VkPhysicalDeviceFragmentShadingRatePropertiesKHR &get()#
Get the vulkan struct equivilent of this class.
- Returns:
VkPhysicalDeviceFragmentShadingRatePropertiesKHR struct.
-
inline const VkPhysicalDeviceFragmentShadingRatePropertiesKHR &get() const#
Get the vulkan struct equivilent of this class.
- Returns:
Const VkPhysicalDeviceFragmentShadingRatePropertiesKHR struct.
-
inline void *getPNext() const#
Get pNext.
- Returns:
pNext pointer
-
inline FragmentShadingRateProperties &setPNext(void *pNextPointer)#
Set pNext.
- Parameters:
pNext – pNext pointer
-
inline FragmentShadingRateProperties(void *pNext = nullptr)#
ImageMemoryBarrier2#
Defined in MemoryBarrierVk.h
Inheritance Relationships#
Base Types#
public pvrvk::ImageMemoryBarrierTemplate< pvrvk::AccessFlagBits2KHR >
(ImageMemoryBarrierTemplate)public pvrvk::BarrierPipelineStageFlag2
Class Documentation#
-
class ImageMemoryBarrier2 : public pvrvk::ImageMemoryBarrierTemplate<pvrvk::AccessFlagBits2KHR>, public pvrvk::BarrierPipelineStageFlag2#
A Buffer memory barrier similar to ImageMemoryBarrier but used in VK_KHR_synchronization2.
Public Functions
-
inline ImageMemoryBarrier2()#
Constructor. All flags are zero initialized, and family indexes set to -1.
-
inline ImageMemoryBarrier2(pvrvk::PipelineStageFlagBits2KHR srcStageMask, pvrvk::PipelineStageFlagBits2KHR dstStageMask, pvrvk::AccessFlagBits2KHR srcMask, pvrvk::AccessFlagBits2KHR dstMask, const Image &image, const ImageSubresourceRange &subresourceRange, pvrvk::ImageLayout oldLayout, pvrvk::ImageLayout newLayout, uint32_t srcQueueFamilyIndex, uint32_t dstQueueFamilyIndex)#
Constructor. Set all individual elements.
- Parameters:
srcStageMask – Bitmask for the source pipeline stage as in VK_KHR_synchronization2 it is defined per barrier.
dstStageMask – Bitmask for the destination pipeline stage as in VK_KHR_synchronization2 it is defined per barrier.
srcMask – Bitmask of pvrvk::AccessFlagBits specifying a source access mask.
dstMask – Bitmask of pvrvk::AccessFlagBits specifying a destination access mask.
image – Handle to the image affected by this barrier
subresourceRange – Describes the image subresource range within image that is affected by this barrier
oldLayout – Old layout in an image layout transition.
newLayout – New layout in an image layout transition.
srcQueueFamilyIndex – Source queue family for a queue family ownership transfer.
dstQueueFamilyIndex – Destination queue family for a queue family ownership transfer
-
inline ImageMemoryBarrier2()#
ImageMemoryBarrierTemplate#
Defined in MemoryBarrierVk.h
Inheritance Relationships#
Base Types#
public pvrvk::MemoryBarrierTemplate< AccessFlagsType >
(MemoryBarrierTemplate)public pvrvk::BarrierQueueFamilyIndex
Class Documentation#
-
template<class AccessFlagsType>
class ImageMemoryBarrierTemplate : public pvrvk::MemoryBarrierTemplate<AccessFlagsType>, public pvrvk::BarrierQueueFamilyIndex# A Image memory barrier used only for memory accesses involving a specific subresource range of the specified image object. It is also used to perform a layout transition for an image subresource range, or to transfer ownership of an image subresource range from one queue family to another.
Public Functions
-
inline ImageMemoryBarrierTemplate()#
Constructor. All flags are zero initialized, and family indexes set to -1.
-
inline ImageMemoryBarrierTemplate(AccessFlagsType srcMask, AccessFlagsType dstMask, const Image &imageParam, const ImageSubresourceRange &subresourceRangeParam, pvrvk::ImageLayout oldLayoutParam, pvrvk::ImageLayout newLayoutParam, uint32_t srcQueueFamilyIndexParam, uint32_t dstQueueFamilyIndexParam)#
Constructor. Set all individual elements.
- Parameters:
srcMask – Bitmask of pvrvk::AccessFlagBits specifying a source access mask.
dstMask – Bitmask of pvrvk::AccessFlagBits specifying a destination access mask.
imageParam – Handle to the image affected by this barrier
subresourceRangeParam – Describes the image subresource range within image that is affected by this barrier
oldLayoutParam – Old layout in an image layout transition.
newLayoutParam – New layout in an image layout transition.
srcQueueFamilyIndexParam – Source queue family for a queue family ownership transfer.
dstQueueFamilyIndexParam – Destination queue family for a queue family ownership transfer
-
inline const ImageLayout &getOldLayout() const#
Get the old image layout of the image associated with the memory barrier.
- Returns:
The old image layout of the image associated with the memory barrier
-
inline void setOldLayout(const ImageLayout &inOldLayout)#
Set old image layout.
- Parameters:
inOldLayout – The old image layout of the image associated memory barrier
-
inline const ImageLayout &getNewLayout() const#
Get the new image layout of the image associated with the memory barrier.
- Returns:
The new image layout of the image associated with the memory barrier
-
inline void setNewLayout(const ImageLayout &inNewLayout)#
Set new image layout.
- Parameters:
inNewLayout – The new image layout of the image associated memory barrier
-
inline const Image &getImage() const#
Get Image.
- Returns:
The PVRVk::Image associated with the memory barrier
-
inline void setImage(const Image &inImage)#
Set Image.
- Parameters:
inImage – The PVRVk::Image associated with the memory barrier
-
inline const ImageSubresourceRange &getSubresourceRange() const#
Get the subresource range of the image associated with the memory barrier.
- Returns:
The subresource range of the image associated with the memory barrier
-
inline void setSubresourceRange(const ImageSubresourceRange &inSubresourceRange)#
Set the subresource range of the image associated with the memory barrier.
- Parameters:
inSubresourceRange – The subresource range of the image associated with the memory barrier
-
inline ImageMemoryBarrierTemplate()#
MemoryBarrier2#
Defined in MemoryBarrierVk.h
Inheritance Relationships#
Base Types#
public pvrvk::MemoryBarrierTemplate< pvrvk::AccessFlagBits2KHR >
(MemoryBarrierTemplate)public pvrvk::BarrierPipelineStageFlag2
Class Documentation#
-
class MemoryBarrier2 : public pvrvk::MemoryBarrierTemplate<pvrvk::AccessFlagBits2KHR>, public pvrvk::BarrierPipelineStageFlag2#
A memory barrier similar to MemoryBarrier but used in VK_KHR_synchronization2.
Public Functions
-
inline MemoryBarrier2()#
Constructor, zero initialization.
-
inline MemoryBarrier2(pvrvk::PipelineStageFlagBits2KHR srcStageMask, pvrvk::PipelineStageFlagBits2KHR dstStageMask, pvrvk::AccessFlagBits2KHR srcAccessMask, pvrvk::AccessFlagBits2KHR dstAccessMask)#
Constructor, individual elements.
- Parameters:
srcStageMask – Bitmask for the source pipeline stage as in VK_KHR_synchronization2 it is defined per barrier.
dstStageMask – Bitmask for the destination pipeline stage as in VK_KHR_synchronization2 it is defined per barrier.
srcAccessMask – Bitmask of pvrvk::AccessFlagBits specifying a source access mask.
dstAccessMask – Bitmask of pvrvk::AccessFlagBits specifying a destination access mask.
-
inline MemoryBarrier2()#
MemoryBarrierSetTemplate#
Defined in MemoryBarrierVk.h
Class Documentation#
-
template<class MemoryBarrierType, class BufferMemoryBarrierType, class ImageMemoryBarrierType>
class MemoryBarrierSetTemplate# Templatized utility function to hold all the memory, barrier and image barriers for both usual and VK_KHR_synchronization2 structs.
Public Functions
-
MemoryBarrierSetTemplate() = default#
Constructor. Empty barrier.
-
inline MemoryBarrierSetTemplate &clearAllBarriers()#
Clear this object of all barriers.
- Returns:
-
inline MemoryBarrierSetTemplate &clearAllMemoryBarriers()#
Clear this object of all Memory barriers.
- Returns:
-
inline MemoryBarrierSetTemplate &clearAllBufferRangeBarriers()#
Clear this object of all Buffer barriers.
- Returns:
-
inline MemoryBarrierSetTemplate &clearAllImageAreaBarriers()#
Clear this object of all Image barriers.
- Returns:
-
inline MemoryBarrierSetTemplate &addBarrier(MemoryBarrierType barrier)#
Add a generic Memory barrier.
- Parameters:
barrier – The barrier to add
- Returns:
This object (allow chained calls)
-
inline MemoryBarrierSetTemplate &addBarrier(const BufferMemoryBarrierType &barrier)#
Add a Buffer Range barrier, signifying that operations on a part of a buffer must complete before other operations on that part of the buffer execute.
- Parameters:
barrier – The barrier to add
- Returns:
This object (allow chained calls)
-
inline MemoryBarrierSetTemplate &addBarrier(const ImageMemoryBarrierType &barrier)#
Add a Buffer Range barrier, signifying that operations on a part of an Image must complete before other operations on that part of the Image execute.
- Parameters:
barrier – The barrier to add
- Returns:
This object (allow chained calls)
-
inline const std::vector<MemoryBarrierType> &getMemoryBarriers() const#
Get an array of the MemoryBarrierType object of this set.
- Returns:
All MemoryBarrierType objects that this object contains
-
inline const std::vector<ImageMemoryBarrierType> &getImageBarriers() const#
Get an array of the Image Barriers of this set.
- Returns:
All MemoryBarrierType objects that this object contains
-
inline const std::vector<BufferMemoryBarrierType> &getBufferBarriers() const#
Get an array of the Buffer Barriers of this set.
- Returns:
All MemoryBarrierType objects that this object contains
-
MemoryBarrierSetTemplate() = default#
MemoryBarrierTemplate#
Defined in MemoryBarrierVk.h
Inheritance Relationships#
Derived Types#
public pvrvk::BufferMemoryBarrierTemplate< pvrvk::AccessFlagBits2KHR >
(BufferMemoryBarrierTemplate)public pvrvk::ImageMemoryBarrierTemplate< pvrvk::AccessFlagBits2KHR >
(ImageMemoryBarrierTemplate)public pvrvk::BufferMemoryBarrierTemplate< AccessFlagsType >
(BufferMemoryBarrierTemplate)public pvrvk::ImageMemoryBarrierTemplate< AccessFlagsType >
(ImageMemoryBarrierTemplate)
Class Documentation#
-
template<class AccessFlagsType>
class MemoryBarrierTemplate# A Global memory barrier used for memory accesses for all memory objects.
Subclassed by pvrvk::BufferMemoryBarrierTemplate< pvrvk::AccessFlagBits2KHR >, pvrvk::ImageMemoryBarrierTemplate< pvrvk::AccessFlagBits2KHR >, pvrvk::BufferMemoryBarrierTemplate< AccessFlagsType >, pvrvk::ImageMemoryBarrierTemplate< AccessFlagsType >
Public Functions
-
inline MemoryBarrierTemplate()#
Constructor, zero initialization.
-
inline MemoryBarrierTemplate(AccessFlagsType srcAccessMaskParam, AccessFlagsType dstAccessMaskParam)#
Constructor, setting all members.
- Parameters:
srcAccessMaskParam – Bitmask of pvrvk::AccessFlagBits specifying a source access mask.
dstAccessMaskParam – Bitmask of pvrvk::AccessFlagBits specifying a destination access mask.
-
inline const AccessFlagsType &getSrcAccessMask() const#
Get srcAccessMask.
- Returns:
An AccessFlagsType structure specifying the source memory barrier access flags
-
inline void setSrcAccessMask(const AccessFlagsType &inSrcAccessMask)#
Set srcAccessMask.
- Parameters:
inSrcAccessMask – An AccessFlagsType structure specifying the source memory barrier access flags
-
inline const AccessFlagsType &getDstAccessMask() const#
Get dstAccessMask.
- Returns:
An AccessFlagsType structure specifying the destination memory barrier access flags
-
inline void setDstAccessMask(const AccessFlagsType &inDstAccessMask)#
Set dstAccessMask.
- Parameters:
inDstAccessMask – An AccessFlagsType structure specifying the destination memory barrier access flags
Protected Attributes
-
AccessFlagsType srcAccessMask#
Bitmask of pvrvk::AccessFlagBits specifying a source access mask.
-
AccessFlagsType dstAccessMask#
Bitmask of pvrvk::AccessFlagBits specifying a destination access mask.
-
inline MemoryBarrierTemplate()#
RayTracingPipelineFeatures#
Defined in ExtensionsVk.h
Inheritance Relationships#
Base Types#
private VkPhysicalDeviceRayTracingPipelineFeaturesKHR
public pvrvk::ExtensionFeatures
(ExtensionFeatures)
Class Documentation#
-
class RayTracingPipelineFeatures : private VkPhysicalDeviceRayTracingPipelineFeaturesKHR, public pvrvk::ExtensionFeatures#
List of supported ray tracing features for a physical device.
Public Functions
-
inline RayTracingPipelineFeatures(void *pNext = nullptr)#
-
inline RayTracingPipelineFeatures(VkPhysicalDeviceRayTracingPipelineFeaturesKHR vkType)#
-
inline virtual void *getVkPtr()#
Get the location of the vulkan physical device features struct.
- Returns:
Pointer to the beginning of the vulkan struct data (the sType member)
-
inline virtual StructureType getSType() const#
Get sType.
- Returns:
Vulkan struct type
-
inline virtual void *getPNext() const#
Get pNext.
- Returns:
pNext pointer
-
inline virtual ExtensionFeatures &setPNext(void *pNextPointer)#
Set pNext.
- Parameters:
pNext – pNext pointer
-
inline VkPhysicalDeviceRayTracingPipelineFeaturesKHR &get()#
Get the vulkan struct equivilent of this class.
- Returns:
VkPhysicalDeviceFragmentShadingRateFeaturesKHR struct
-
inline bool getRayTracingPipeline()#
Get boolean value indicating ray tracing pipeline support.
- Returns:
Indicates whether the implementation supports the ray tracing pipeline functionality
-
inline bool getRayTracingPipelineShaderGroupHandleCaptureReplay()#
Get boolean value indicating ray tracing pipeline shader group handle capture replay support.
- Returns:
Indicates whether the implementation supports saving and reusing shader group handles
-
inline bool getRayTracingPipelineShaderGroupHandleCaptureReplayMixed()#
Get boolean value indicating ray tracing pipeline shader group handle capture replay mixed support.
- Returns:
Indicates whether the implementation supports reuse of shader group handles being arbitrarily mixed with creation of non-reused shader group handles. If this is VK_FALSE, all reused shader group handles must be specified before any non-reused handles may be created.
-
inline bool getRayTracingPipelineTraceRaysIndirect()#
Get boolean value indicating ray tracing pipeline indirect trace rays support.
- Returns:
Indicates whether the implementation supports indirect trace ray commands e.g. vkCmdTraceRaysIndirect
-
inline bool getRayTraversalPrimitiveCulling()#
Get boolean value indicating ray traversal primitive culling support.
- Returns:
Indicates whether the implementation supports primitive culling during ray traversal
-
inline RayTracingPipelineFeatures(void *pNext = nullptr)#
VulkanBase#
Defined in VulkanBase.h
Inheritance Relationships#
Base Type#
public pvr::Shell
Class Documentation#
-
class VulkanBase : public pvr::Shell#
Class implementing only Shell::preInitApplication method.