KiCad PCB EDA Suite
Loading...
Searching...
No Matches
RHI_COMPUTE_JOB Class Reference

Plain owning command data, recordable on any thread without device access. More...

#include <rhi_compute.h>

Classes

struct  COMMAND
 Backend command representation; payload bytes are owned by the job. More...
 

Public Types

enum class  OP {
  UPLOAD , BIND , BIND_GROUP , PUSH_CONSTANTS ,
  DISPATCH , BARRIER , READBACK
}
 

Public Member Functions

void Upload (RHI_BufferHandle aBuffer, const void *aData, size_t aBytes, size_t aOffset=0)
 Copy upload bytes immediately.
 
void Bind (RHI_ComputePipelineHandle aPipeline)
 
void BindGroup (uint32_t aIndex, RHI_BindGroupHandle aGroup)
 
void PushConstants (const void *aData, size_t aBytes)
 
void Dispatch (uint32_t aGroupsX, uint32_t aGroupsY=1)
 
void Barrier ()
 
void Readback (RHI_BufferHandle aBuffer, size_t aOffset, size_t aBytes, void *aDestination)
 
bool IsValid () const
 
const std::vector< COMMAND > & Commands () const
 

Private Attributes

bool m_valid = true
 
std::vector< COMMAND > m_commands
 

Detailed Description

Plain owning command data, recordable on any thread without device access.

Readback destinations must remain valid until Submit() returns. Handles belong to the GPU_COMPUTE instance that created them.

Definition at line 90 of file rhi_compute.h.

Member Enumeration Documentation

◆ OP

enum class RHI_COMPUTE_JOB::OP
strong
Enumerator
UPLOAD 
BIND 
BIND_GROUP 
PUSH_CONSTANTS 
DISPATCH 
BARRIER 
READBACK 

Definition at line 93 of file rhi_compute.h.

Member Function Documentation

◆ Barrier()

void RHI_COMPUTE_JOB::Barrier ( )

Definition at line 207 of file rhi_compute.cpp.

References BARRIER, and m_commands.

Referenced by BOOST_AUTO_TEST_CASE().

◆ Bind()

void RHI_COMPUTE_JOB::Bind ( RHI_ComputePipelineHandle aPipeline)

◆ BindGroup()

void RHI_COMPUTE_JOB::BindGroup ( uint32_t aIndex,
RHI_BindGroupHandle aGroup )

◆ Commands()

const std::vector< COMMAND > & RHI_COMPUTE_JOB::Commands ( ) const
inline

◆ Dispatch()

void RHI_COMPUTE_JOB::Dispatch ( uint32_t aGroupsX,
uint32_t aGroupsY = 1 )

◆ IsValid()

bool RHI_COMPUTE_JOB::IsValid ( ) const
inline

Definition at line 129 of file rhi_compute.h.

References m_valid.

Referenced by BOOST_AUTO_TEST_CASE(), and RhiValidateComputeJob().

◆ PushConstants()

void RHI_COMPUTE_JOB::PushConstants ( const void * aData,
size_t aBytes )

◆ Readback()

void RHI_COMPUTE_JOB::Readback ( RHI_BufferHandle aBuffer,
size_t aOffset,
size_t aBytes,
void * aDestination )

◆ Upload()

void RHI_COMPUTE_JOB::Upload ( RHI_BufferHandle aBuffer,
const void * aData,
size_t aBytes,
size_t aOffset = 0 )

Copy upload bytes immediately.

Invalid pointers mark the job invalid.

Definition at line 171 of file rhi_compute.cpp.

References copyBytes(), m_commands, m_valid, and UPLOAD.

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().

Member Data Documentation

◆ m_commands

std::vector<COMMAND> RHI_COMPUTE_JOB::m_commands
private

Definition at line 134 of file rhi_compute.h.

Referenced by Barrier(), Bind(), BindGroup(), Commands(), Dispatch(), PushConstants(), Readback(), and Upload().

◆ m_valid

bool RHI_COMPUTE_JOB::m_valid = true
private

Definition at line 133 of file rhi_compute.h.

Referenced by IsValid(), PushConstants(), Readback(), and Upload().


The documentation for this class was generated from the following files: