@@ -655,7 +655,7 @@ core::smart_refctd_ptr<IGPUImageView> Renderer::createScreenSizedTexture(E_FORMA
655
655
return m_driver->createGPUImageView (std::move (viewparams));
656
656
}
657
657
658
- constexpr uint16_t m_maxDepth = 5u ;
658
+ constexpr uint16_t m_maxDepth = 3u ;
659
659
constexpr uint16_t m_UNUSED_russianRouletteDepth = 5u ;
660
660
bool extractIntegratorInfo (const ext::MitsubaLoader::CElementIntegrator& integrator, uint32_t &bxdfSamples, uint32_t &maxNEESamples)
661
661
{
@@ -869,7 +869,10 @@ void Renderer::init(const SAssetBundle& meshes, core::smart_refctd_ptr<ICPUBuffe
869
869
};
870
870
auto createEmptyInteropBufferAndSetUpInfo = [&](IGPUDescriptorSet::SDescriptorInfo* info, InteropBuffer& interopBuffer, size_t size) -> void
871
871
{
872
- interopBuffer.buffer = m_driver->createDeviceLocalGPUBufferOnDedMem (size);
872
+ if (static_cast <COpenGLDriver*>(m_driver)->runningInRenderdoc ()) // makes Renderdoc capture the modifications done by OpenCL
873
+ interopBuffer.buffer = m_driver->createUpStreamingGPUBufferOnDedMem (size);
874
+ else
875
+ interopBuffer.buffer = m_driver->createDeviceLocalGPUBufferOnDedMem (size);
873
876
interopBuffer.asRRBuffer = m_rrManager->linkBuffer (interopBuffer.buffer .get (), CL_MEM_READ_ONLY);
874
877
875
878
info->buffer .size = size;
@@ -1359,11 +1362,11 @@ uint32_t Renderer::traceBounce(uint32_t raycount)
1359
1362
{
1360
1363
m_driver->copyBuffer (m_rayCountBuffer.get (),m_littleDownloadBuffer.get (),sizeof (uint32_t )*m_raytraceCommonData.rayCountWriteIx ,0u ,sizeof (uint32_t ));
1361
1364
static_assert (core::isPoT (RAYCOUNT_N_BUFFERING)," Raycount Buffer needs to be PoT sized!" );
1362
- m_raytraceCommonData.rayCountWriteIx = (++m_raytraceCommonData.rayCountWriteIx )&RAYCOUNT_N_BUFFERING_MASK;
1363
1365
glFinish (); // sync CPU to GL
1364
1366
const uint32_t nextTraceRaycount = *reinterpret_cast <uint32_t *>(m_littleDownloadBuffer->getBoundMemory ()->getMappedPointer ());
1365
1367
if (nextTraceRaycount==0u )
1366
1368
return 0u ;
1369
+ m_raytraceCommonData.rayCountWriteIx = (++m_raytraceCommonData.rayCountWriteIx )&RAYCOUNT_N_BUFFERING_MASK;
1367
1370
1368
1371
auto commandQueue = m_rrManager->getCLCommandQueue ();
1369
1372
const cl_mem clObjects[] = {m_rayBuffer[writeIx].asRRBuffer .second ,m_intersectionBuffer[writeIx].asRRBuffer .second };
0 commit comments