MCPcopy Create free account
hub / github.com/TomClabault/HIPRT-Path-Tracer / render_debug_kernel

Method render_debug_kernel

src/Renderer/GPURendererThread.cpp:257–296  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

255}
256
257void GPURendererThread::render_debug_kernel()
258{
259 m_frame_rendered = false;
260
261 GPUKernelCompilerOptions compiler_options_copy = m_renderer->m_global_compiler_options->deep_copy();
262 // Copying the render data here to avoid race concurrency issues with
263 // the asynchronous ImGui UI which may also modifiy the render data
264 HIPRTRenderData render_data_copy = m_renderer->get_render_data();
265
266 // Updating the previous and current camera
267 render_data_copy.current_camera = m_renderer->m_camera.to_hiprt(m_renderer->m_render_resolution.x, m_renderer->m_render_resolution.y);
268 render_data_copy.prev_camera = m_renderer->m_previous_frame_camera.to_hiprt(m_renderer->m_render_resolution.x, m_renderer->m_render_resolution.y);
269
270 launch_debug_kernel(render_data_copy);
271
272 // Recording GPU frame time stop timestamp and computing the frame time
273 struct CallbackPayload
274 {
275 bool* frame_rendered;
276 bool* currently_rendering;
277 std::condition_variable* render_completed_condition_variable;
278 };
279
280 CallbackPayload* payload = new CallbackPayload;
281 payload->currently_rendering = &m_currently_rendering;
282 payload->frame_rendered = &m_frame_rendered;
283 payload->render_completed_condition_variable = &m_render_completed_condition_variable;
284
285 OROCHI_CHECK_ERROR(oroLaunchHostFunc(m_renderer->get_main_stream(), [](void* payload)
286 {
287 CallbackPayload* payload_struct = reinterpret_cast<CallbackPayload*>(payload);
288 *payload_struct->frame_rendered = true;
289 *payload_struct->currently_rendering = false;
290 payload_struct->render_completed_condition_variable->notify_all();
291
292 delete payload_struct;
293 }, payload));
294
295 post_sample_update(render_data_copy, compiler_options_copy);
296}
297
298GPUKernel& GPURendererThread::get_debug_trace_kernel()
299{

Callers

nothing calls this directly

Calls 3

deep_copyMethod · 0.80
to_hiprtMethod · 0.80
get_main_streamMethod · 0.80

Tested by

no test coverage detected