1. 20 5月, 2021 1 次提交
  2. 03 5月, 2021 1 次提交
    • M
      Generalize GPU rendering path to run on both CPU and GPU (#125) · e90458fb
      Matt Pharr 提交于
      * Generalize GPU rendering path to run on both CPU and GPU
      
      Now we have a WavefrontIntegrator that can both run on the CPU (backed by
      ParallelFor() for parallelization and pbrt's aggregates for ray
      intersection acceleration) and on the GPU (backed by GPUParallelFor() for
      parallelization and OptiX for ray intersection on NVIDIA GPUs.)
      
      Beyond generalizing the code, this refactor allows CPU-side debugging and
      testing of the wavefront integrator.  Doing so allows further isolation of
      the GPU-specific code into a few source files, now just ~2.5k lines of code.
      
      This includes a bug fix in the wavefront medium code to resolve MixMaterials
      to one of their constituent materials before enqueuing material evaluation
      and shading work.
      
      Note that on the CPU, the wavefront integrator runs 5-10x more slowly than
      pbrt's regular CPU integrators, so it is not recommended for regular use...
      Co-authored-by: NWenzel Jakob <wenzel.jakob@epfl.ch>
      e90458fb
  3. 18 4月, 2021 1 次提交
    • M
      GPU: copy SOA<PixelSampleState> in RayIntersectParameters · fdcaa3a8
      Matt Pharr 提交于
      This fixes the debug build on Windows on the GPU. (Release crashes with OptiX complaining about malformed PTX.)
      
      The issue is essentially the same as why *this is copied in GPU lambdas
      rather than being passed as a pointer; we are accessing the GPUPathIntegrator
      in read-only fashion from the CPU during rendering and with unified
      memory on Windows, it isn't allowed to concurrently access it on the GPU.
      
      This also fits with the data point that 82ace326 is when things first started crashing.
      
      Issues #41, #48, #72, #89 , and #96.
      fdcaa3a8
  4. 13 2月, 2021 1 次提交
  5. 25 11月, 2020 1 次提交
  6. 19 11月, 2020 1 次提交
  7. 18 8月, 2020 1 次提交