summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Seibert <stan@mtrr.org>2012-01-02 21:01:54 -0500
committertlatorre <tlatorre@uchicago.edu>2021-05-09 08:42:38 -0700
commit33b2e558cb94c77e5a6515d1e84cc843d2298a0e (patch)
treeddd3b8dd0dc7d497edc5166ead58501b84dc6131
parentfb49d3c96b4c5a24e63442d17a7e037929aa8bbd (diff)
downloadchroma-33b2e558cb94c77e5a6515d1e84cc843d2298a0e.tar.gz
chroma-33b2e558cb94c77e5a6515d1e84cc843d2298a0e.tar.bz2
chroma-33b2e558cb94c77e5a6515d1e84cc843d2298a0e.zip
Saving the material codes and colors in page-locked host memory is unnecessary.
-rw-r--r--chroma/gpu/geometry.py13
1 files changed, 4 insertions, 9 deletions
diff --git a/chroma/gpu/geometry.py b/chroma/gpu/geometry.py
index 6682f8f..f3a3b19 100644
--- a/chroma/gpu/geometry.py
+++ b/chroma/gpu/geometry.py
@@ -34,7 +34,7 @@ def compute_layer_configuration(n, branch_degree):
return layer_conf
class GPUGeometry(object):
- def __init__(self, geometry, wavelengths=None, print_usage=False, branch_degree=32):
+ def __init__(self, geometry, wavelengths=None, print_usage=False, branch_degree=3):
if wavelengths is None:
wavelengths = standard_wavelengths
@@ -147,19 +147,14 @@ class GPUGeometry(object):
len(geometry.mesh.triangles),
self.triangles,
self.branch_degree)
- print 'bvh after'
+ print 'bvh after', cuda.mem_get_info()
material_codes = (((geometry.material1_index & 0xff) << 24) |
((geometry.material2_index & 0xff) << 16) |
((geometry.surface_index & 0xff) << 8)).astype(np.uint32)
- self.pagelocked_material_codes = cuda.pagelocked_empty_like(material_codes, mem_flags=cuda.host_alloc_flags.DEVICEMAP | cuda.host_alloc_flags.WRITECOMBINED)
- self.pagelocked_material_codes[:] = material_codes
- self.material_codes = np.intp(self.pagelocked_material_codes.base.get_device_pointer())
-
+ self.material_codes = ga.to_gpu(material_codes)
colors = geometry.colors.astype(np.uint32)
- self.pagelocked_colors = cuda.pagelocked_empty_like(colors, mem_flags=cuda.host_alloc_flags.DEVICEMAP | cuda.host_alloc_flags.WRITECOMBINED)
- self.pagelocked_colors[:] = colors
- self.colors = np.intp(self.pagelocked_colors.base.get_device_pointer())
+ self.colors = ga.to_gpu(colors)
self.solid_id_map = ga.to_gpu(geometry.solid_id.astype(np.uint32))
self.gpudata = make_gpu_struct(geometry_struct_size,