Rendu
A lightweight rendering engine for experimentations
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
GPUContext Struct Reference

Global GPU context, storing all structures used for resource allocation and tracking, operations recording and rendering. More...

#include <GPUInternal.hpp>

Public Member Functions

void nextFrame ()
 Move to the next frame.
 
VkCommandBuffer & getRenderCommandBuffer ()
 
VkCommandBuffer & getUploadCommandBuffer ()
 

Public Attributes

VkInstance instance = VK_NULL_HANDLE
 Native instance handle.
 
VkDebugUtilsMessengerEXT debugMessenger = VK_NULL_HANDLE
 Native debug extension handle.
 
VkPhysicalDevice physicalDevice = VK_NULL_HANDLE
 Native physical device handle.
 
VkDevice device = VK_NULL_HANDLE
 Native logical device handle.
 
VkSurfaceKHR surface = VK_NULL_HANDLE
 Native surface handle.
 
VkCommandPool commandPool = VK_NULL_HANDLE
 Command pool for all frames.
 
std::vector< VkCommandBuffer > renderCommandBuffers
 Per-frame command buffers.
 
std::vector< VkCommandBuffer > uploadCommandBuffers
 Per-frame command buffers.
 
VkQueue graphicsQueue = VK_NULL_HANDLE
 Graphics submission queue.
 
VkQueue presentQueue = VK_NULL_HANDLE
 Presentation submission queue.
 
DescriptorAllocator descriptorAllocator
 Descriptor sets common allocator.
 
std::unordered_map< GPUQuery::Type, QueryAllocatorqueryAllocators
 Per-type query buffered allocators.
 
PipelineCache pipelineCache
 Pipeline cache and creation.
 
SamplerLibrary samplerLibrary
 List of static samplers shared by all programs.
 
std::deque< ResourceToDeleteresourcesToDelete
 List of resources waiting for deletion.
 
std::deque< AsyncTextureTasktextureTasks
 List of async tasks waiting for completion.
 
uint64_t tasksCount = 0
 Number of async tasks created.
 
VkPipeline graphicsPipeline = VK_NULL_HANDLE
 Current graphics pipeline.
 
VkPipeline computePipeline = VK_NULL_HANDLE
 Current compute pipeline.
 
uint32_t graphicsId = 0
 Graphics queue index.
 
uint32_t presentId = 0
 Present queue index.
 
uint64_t frameIndex = 0
 Current frame index.
 
uint32_t swapIndex = 0
 Current buffered frame (in 0, frameCount-1).
 
double timestep = 0.0
 Query timing timestep.
 
size_t uniformAlignment = 0
 Minimal buffer alignment.
 
bool portability = false
 If the portability extension is present, we have to enable it.
 
const uint frameCount = 2
 Number of buffered frames (should be lower or equal to the swapchain image count).
 
bool newRenderPass = true
 Has a render pass just started (pipeline needs to be re-bound).
 
bool hadRenderPass = false
 Has a render pass just ended.
 
bool inRenderPass = false
 Is a rendering pass currently active.
 
bool markersEnabled = false
 Are debug markers and labels enabled.
 

Detailed Description

Global GPU context, storing all structures used for resource allocation and tracking, operations recording and rendering.

Member Function Documentation

◆ getRenderCommandBuffer()

VkCommandBuffer & GPUContext::getRenderCommandBuffer ( )
inline
Returns
the command buffer for the current frame.

◆ getUploadCommandBuffer()

VkCommandBuffer & GPUContext::getUploadCommandBuffer ( )
inline
Returns
the command buffer for the current frame.

The documentation for this struct was generated from the following file: