summaryrefslogtreecommitdiff
path: root/gpu.py
diff options
context:
space:
mode:
Diffstat (limited to 'gpu.py')
-rw-r--r--gpu.py30
1 files changed, 12 insertions, 18 deletions
diff --git a/gpu.py b/gpu.py
index e6b6856..ffa17a6 100644
--- a/gpu.py
+++ b/gpu.py
@@ -143,37 +143,31 @@ class GPU(object):
triangles['w'] = ((geometry.material1_index & 0xff) << 24) | ((geometry.material2_index & 0xff) << 16) | ((geometry.surface_index & 0xff) << 8)
self.triangles_gpu = gpuarray.to_gpu(triangles)
- lower_bounds_float4 = np.empty(geometry.lower_bounds.shape[0], dtype=gpuarray.vec.float4)
- lower_bounds_float4['x'] = geometry.lower_bounds[:,0]
- lower_bounds_float4['y'] = geometry.lower_bounds[:,1]
- lower_bounds_float4['z'] = geometry.lower_bounds[:,2]
- self.lower_bounds_gpu = gpuarray.to_gpu(lower_bounds_float4)
-
- upper_bounds_float4 = np.empty(geometry.upper_bounds.shape[0], dtype=gpuarray.vec.float4)
- upper_bounds_float4['x'] = geometry.upper_bounds[:,0]
- upper_bounds_float4['y'] = geometry.upper_bounds[:,1]
- upper_bounds_float4['z'] = geometry.upper_bounds[:,2]
- self.upper_bounds_gpu = gpuarray.to_gpu(upper_bounds_float4)
+ lower_bounds_float3 = np.empty(geometry.lower_bounds.shape[0], dtype=gpuarray.vec.float3)
+ lower_bounds_float3['x'] = geometry.lower_bounds[:,0]
+ lower_bounds_float3['y'] = geometry.lower_bounds[:,1]
+ lower_bounds_float3['z'] = geometry.lower_bounds[:,2]
+ self.lower_bounds_gpu = gpuarray.to_gpu(lower_bounds_float3)
+
+ upper_bounds_float3 = np.empty(geometry.upper_bounds.shape[0], dtype=gpuarray.vec.float3)
+ upper_bounds_float3['x'] = geometry.upper_bounds[:,0]
+ upper_bounds_float3['y'] = geometry.upper_bounds[:,1]
+ upper_bounds_float3['z'] = geometry.upper_bounds[:,2]
+ self.upper_bounds_gpu = gpuarray.to_gpu(upper_bounds_float3)
self.colors_gpu = gpuarray.to_gpu(geometry.colors.astype(np.uint32))
self.node_map_gpu = gpuarray.to_gpu(geometry.node_map.astype(np.uint32))
self.node_map_end_gpu = gpuarray.to_gpu(geometry.node_map_end.astype(np.uint32))
self.solid_id_map_gpu = gpuarray.to_gpu(geometry.solid_id.astype(np.uint32))
- self.geo_funcs.set_global_mesh_variables(self.triangles_gpu, self.vertices_gpu, self.colors_gpu, np.uint32(geometry.node_map.size-1), np.uint32(geometry.first_node), block=(1,1,1), grid=(1,1))
+ self.geo_funcs.set_global_mesh_variables(self.triangles_gpu, self.vertices_gpu, self.colors_gpu, np.uint32(geometry.node_map.size-1), np.uint32(geometry.first_node), self.lower_bounds_gpu, self.upper_bounds_gpu, block=(1,1,1), grid=(1,1))
- self.lower_bounds_tex = self.module.get_texref('lower_bounds')
- self.upper_bounds_tex = self.module.get_texref('upper_bounds')
self.node_map_tex = self.module.get_texref('node_map')
self.node_map_end_tex = self.module.get_texref('node_map_end')
- self.lower_bounds_tex.set_address(self.lower_bounds_gpu.gpudata, self.lower_bounds_gpu.nbytes)
- self.upper_bounds_tex.set_address(self.upper_bounds_gpu.gpudata, self.upper_bounds_gpu.nbytes)
self.node_map_tex.set_address(self.node_map_gpu.gpudata, self.node_map_gpu.nbytes)
self.node_map_end_tex.set_address(self.node_map_end_gpu.gpudata, self.node_map_end_gpu.nbytes)
- self.lower_bounds_tex.set_format(cuda.array_format.FLOAT, 4)
- self.upper_bounds_tex.set_format(cuda.array_format.FLOAT, 4)
self.node_map_tex.set_format(cuda.array_format.UNSIGNED_INT32, 1)
self.node_map_end_tex.set_format(cuda.array_format.UNSIGNED_INT32, 1)