Skip to content

Class ILLIXR::offload_rendering_client

ClassList > ILLIXR > offload_rendering_client

Inherits the following classes: ILLIXR::threadloop, ILLIXR::vulkan::app

Public Functions

Type Name
void destroy () override
Clean up resources on destruction.
bool is_external () override
Indicates this is an external renderer.
offload_rendering_client (const std::string & name, phonebook * pb)
Constructor initializes the client with configuration from environment variables.
void record_command_buffer (VkCommandBuffer commandBuffer, VkFramebuffer framebuffer, int buffer_ind, bool left) override
Record command buffer (no-op in this implementation)
void setup (VkRenderPass render_pass, uint32_t subpass, std::shared_ptr< vulkan::buffer_pool< data_format::fast_pose_type > > buffer_pool) override
Set up Vulkan resources and initialize frame buffers.
void start () override
Start the client thread and initialize FFmpeg/CUDA resources.
void update_uniforms (const data_format::pose_type & render_pose) override
Update uniforms (no-op in this implementation)

Public Functions inherited from ILLIXR::threadloop

See ILLIXR::threadloop

Type Name
virtual void internal_stop ()
Stops the thread.
virtual void start () override
Starts the thread.
virtual void stop () override
Joins the thread.
threadloop (const std::string & name, phonebook * pb)
~threadloop () override

Public Functions inherited from ILLIXR::plugin

See ILLIXR::plugin

Type Name
std::string get_name () noexcept const
plugin (std::string name, phonebook * pb)
void spd_add_file_sink (const std::string & file_name, const std::string & extension, const std::string & log_level)
auto spdlogger (const char * log_level)
virtual void start ()
A method which Spindle calls when it starts the component.
virtual void stop ()
A method which Spindle calls when it stops the component.
virtual ~plugin () = default

Protected Types inherited from ILLIXR::threadloop

See ILLIXR::threadloop

Type Name
enum skip_option

Protected Attributes inherited from ILLIXR::threadloop

See ILLIXR::threadloop

Type Name
std::size_t iteration_no = 0
std::size_t skip_no = 0

Protected Attributes inherited from ILLIXR::plugin

See ILLIXR::plugin

Type Name
const std::shared_ptr< gen_guid > gen_guid_
const std::size_t id_
std::string name_
const phonebook * phonebook_
std::shared_ptr< spdlog::logger > plugin_logger_
const std::shared_ptr< record_logger > record_logger_

Protected Functions

Type Name
void _p_one_iteration () override
Main processing loop for frame decoding and display.
skip_option _p_should_skip () override
Determines if the current iteration should be skipped.
void _p_thread_setup () override
Thread setup (no-op in this implementation)
void copy_image_to_cpu_and_save_file (AVFrame * frame)
void save_nv12_img_to_png (AVFrame * cuda_frame) const
void transition_layout (VkCommandBuffer cmd_buf, AVFrame * frame, VkImageLayout old_layout, VkImageLayout new_layout)

Protected Functions inherited from ILLIXR::threadloop

See ILLIXR::threadloop

Type Name
virtual void _p_one_iteration () = 0
Override with the computation the thread does every loop.
virtual skip_option _p_should_skip ()
Gets called in a tight loop, to gate the invocation of _p_one_iteration() __
virtual void _p_thread_setup ()
Gets called at setup time, from the new thread.
bool should_terminate ()
Whether the thread has been asked to terminate.

Public Functions Documentation

function destroy

Clean up resources on destruction.

void ILLIXR::offload_rendering_client::destroy () override


function is_external

Indicates this is an external renderer.

inline bool ILLIXR::offload_rendering_client::is_external () override

Returns:

true since this is an external renderer


function offload_rendering_client

Constructor initializes the client with configuration from environment variables.

ILLIXR::offload_rendering_client::offload_rendering_client (
    const std::string & name,
    phonebook * pb
) 

Parameters:

  • name Plugin name
  • pb Phonebook for component lookup

function record_command_buffer

Record command buffer (no-op in this implementation)

inline void ILLIXR::offload_rendering_client::record_command_buffer (
    VkCommandBuffer commandBuffer,
    VkFramebuffer framebuffer,
    int buffer_ind,
    bool left
) override


function setup

Set up Vulkan resources and initialize frame buffers.

void ILLIXR::offload_rendering_client::setup (
    VkRenderPass render_pass,
    uint32_t subpass,
    std::shared_ptr< vulkan::buffer_pool< data_format::fast_pose_type > > buffer_pool
) override

Parameters:

  • render_pass The Vulkan render pass to use
  • subpass The subpass index
  • buffer_pool The buffer pool for frame data

function start

Start the client thread and initialize FFmpeg/CUDA resources.

void ILLIXR::offload_rendering_client::start () override


function update_uniforms

Update uniforms (no-op in this implementation)

inline void ILLIXR::offload_rendering_client::update_uniforms (
    const data_format::pose_type & render_pose
) override


Protected Functions Documentation

function _p_one_iteration

Main processing loop for frame decoding and display.

void ILLIXR::offload_rendering_client::_p_one_iteration () override

This method: * Sends the latest pose to the server * Receives and decodes encoded frames * Performs color space conversion * Updates display buffers * Tracks performance metrics


function _p_should_skip

Determines if the current iteration should be skipped.

inline skip_option ILLIXR::offload_rendering_client::_p_should_skip () override


function _p_thread_setup

Thread setup (no-op in this implementation)

inline void ILLIXR::offload_rendering_client::_p_thread_setup () override


function copy_image_to_cpu_and_save_file

void ILLIXR::offload_rendering_client::copy_image_to_cpu_and_save_file (
    AVFrame * frame
) 

function save_nv12_img_to_png

void ILLIXR::offload_rendering_client::save_nv12_img_to_png (
    AVFrame * cuda_frame
) const

function transition_layout

void ILLIXR::offload_rendering_client::transition_layout (
    VkCommandBuffer cmd_buf,
    AVFrame * frame,
    VkImageLayout old_layout,
    VkImageLayout new_layout
) 


The documentation for this class was generated from the following file /home/friedel/devel/ILLIXR/plugins/offload_rendering_client/offload_rendering_client.hpp