KiCad PCB EDA Suite
Loading...
Searching...
No Matches
rhi_upload_commands.h File Reference
#include <rhi/rhi_handle.h>
#include <rhi/rhi_buffer.h>
#include <rhi/rhi_texture.h>
#include <cstddef>
#include <cstdint>
#include <memory>
#include <variant>
#include <vector>

Go to the source code of this file.

Classes

struct  RHI_STAGING
 Staging data owned by the upload command, so the UI thread can reuse its source at once without racing the render thread. More...
 
struct  RHI_GEOMETRY_UPLOAD
 
struct  RHI_TEXTURE_UPLOAD
 
struct  RHI_BUFFER_CREATE
 Create the GPU buffer for a handle the UI thread already reserved, so only the render thread writes the device's resource maps. More...
 
struct  RHI_TEXTURE_CREATE
 Texture counterpart of RHI_BUFFER_CREATE. More...
 
struct  RHI_BUFFER_DESTROY
 Destroy a buffer the UI thread created, queued so it runs after the handle's create and uploads. More...
 
struct  RHI_TEXTURE_DESTROY
 Texture counterpart of RHI_BUFFER_DESTROY. More...
 

Typedefs

using RHI_UPLOAD_COMMAND
 One entry in the render thread upload queue.
 

Functions

void RhiUploadCopyStaging (RHI_STAGING &aUpload, const void *aSrc, size_t aBytes)
 Copy the source into the upload, for data the producer keeps using after queuing.
 
template<typename T>
void RhiUploadAdoptStaging (RHI_STAGING &aUpload, std::vector< T > &&aVector)
 Move the vector into the upload without a copy, for data the producer does not read after queuing.
 

Typedef Documentation

◆ RHI_UPLOAD_COMMAND

Initial value:
std::variant<
>
Create the GPU buffer for a handle the UI thread already reserved, so only the render thread writes t...
Destroy a buffer the UI thread created, queued so it runs after the handle's create and uploads.
Texture counterpart of RHI_BUFFER_CREATE.
Texture counterpart of RHI_BUFFER_DESTROY.

One entry in the render thread upload queue.

Definition at line 133 of file rhi_upload_commands.h.

Function Documentation

◆ RhiUploadAdoptStaging()

template<typename T>
void RhiUploadAdoptStaging ( RHI_STAGING & aUpload,
std::vector< T > && aVector )
inline

Move the vector into the upload without a copy, for data the producer does not read after queuing.

Definition at line 81 of file rhi_upload_commands.h.

References RHI_STAGING::stagingData, RHI_STAGING::stagingOwner, RHI_STAGING::stagingSize, and T.

Referenced by KIGFX::GAL_MODERN::Flush().

◆ RhiUploadCopyStaging()

void RhiUploadCopyStaging ( RHI_STAGING & aUpload,
const void * aSrc,
size_t aBytes )
inline

Copy the source into the upload, for data the producer keeps using after queuing.

Definition at line 67 of file rhi_upload_commands.h.

References RHI_STAGING::stagingData, RHI_STAGING::stagingOwner, and RHI_STAGING::stagingSize.

Referenced by KIGFX::GAL_MODERN::Flush(), KIGFX::GAL_MODERN::submitSpan(), KIGFX::RHI_DEVICE_PROXY::UpdateBuffer(), and KIGFX::RHI_DEVICE_PROXY::UploadTexture().