Execute Workload

NOTE: This exercise assumes you have completed the previous exercise.

In this exercise, you'll learn to execute the build command and view the terrain analysis report.

Examine Debug Settings

  1. Go to the text editor and find the script app_octopus_workload_terrain_util.ssl.

    Instead of copying each function in, one-by-one, in this exercise we'll copy in the entire script source code and then review the functions in the next section.

  2. Find the Execute( ... ) function.

    ///////////////////////////////////////////////////////////////////////////////
    // function
    ///////////////////////////////////////////////////////////////////////////////
    
    function bool Execute( FileNode p_oData, CommandPresentationModuleInfo p_oInfo, StrList p_slMessages )
    {
    //////////////////////////////////////////////////
    // Declare and initialize build objects.
    //////////////////////////////////////////////////
    
    WorkloadNode a_oWorkload = (WorkloadNode)p_oData.GetParent();
    
    bool a_bDebug = a_oWorkload.Debug;
    int a_nDebugMaxChunksX = 4;
    int a_nDebugMaxChunksY = 4;
    
    auto BuildInputs a_oInputs;
    auto BuildOutputs a_oOutputs;
    
    ...
    

    Note that a_nDebugMaxChunksX / a_nDebugMaxChunksY are both set to 4, but only if the <WorkloadNode> is in debug mode. This allows us to run the compute workload on a limited set of data if we need to debug, or if we are only interested in a small area in the terrain. a_nDebugMaxChunksX and a_nDebugMaxChunksY are used only when a_bDebug is true. You can use the debug flag in a variety of ways in your own implementations.

  3. Examine the hierarchy.
  4. Right click over the <WorkloadNode> named Western-Washington-Mt-Baker-Terrain-Analysis and select Toggle Debug from the listed options.

    The node icon turns orange, indicating that it is in debug mode. Now we can be sure that we'll only execute a small workload for the first run.

Execute Partial Workload

  1. Return to the running Octopus app.
  2. Select Graph » Build All from the main menu.

    The build process starts. Note that this should take around 10-20 seconds, depending on your computing hardware.

    The application creates a report and launches it in the default web browser on your computer.

    This is a picture of the debug avalanche terrain analysis.
  3. Left click one of the cells of the terrain to see the analysis: This is a picture of the debug analysis.

    This allows you to see the analysis for each cell.

Examine The Log Message

  1. Return to the running Octopus application.
  2. Examine the output window.

    There is a detailed log message, including timings for each major operation.

    Start loading scripts
    Done loading scripts; 1 loaded in 108.72 ms; avg 108.72
    Compiling Program 0x000002811CA0D380 0x0000000000000000 <(null)>
    Compiling Program 0x000002811CA0F9C0 0x0000000000000000 <(null)>
    Compiling Program 0x000002811CA12990 0x0000000000000000 <(null)>
    Compiling Program 0x000002811CA10350 0x0000000000000000 <(null)>
    Compiling Program 0x000002811CA0DD10 0x0000000000000000 <(null)>
    Compiling Program 0x000002811CA0C060 0x0000000000000000 <(null)>
    
    --- <Building Project 'D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\Western-Washington-Mt-Baker-Terrain-Analysis.box'> ---
    
    GLSL compiler version: 460
    <FileNode> source data found: D:\Release6\Content\Library\Textures\Elevation\USGS_13_n49w122.tif
    Created directory: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122
    Created directory: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Arrays
    Created directory: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Maps
    Created directory: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Analysis
    Created directory: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Analysis\Images
    Using 'Lens' sub-range for analysis: [0,0] spanning [4,4] chunks.
    Using scale factor: 111139
    Geotiff Original Width: 10812
    Geotiff Original Height: 10812
    Geotiff Original Chunks X: 43
    Geotiff Original Chunks Y: 43
    Geotiff Original Chunks Width: 256
    Geotiff Original Chunks Height: 256
    Geotiff Elevation Spacing X   10.2906481407
    Geotiff Elevation Spacing Y   10.2906481407
    Dst Range X Start 0
    Dst Range Y Start 0
    Dst Range Z Count 4
    Dst Range W Count 4
    Analyzing area of 'Lens' sub-range for analysis. 10537 metres x 10537 metres requested.
    Starting analysis at chunk [0,0].
    Analysis spans [4x4] chunks.
    Building array texture of dimensions 256x256 with 16 slices.
    Source data allocation succeeded! Requested: 256x4096 pixels.
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Arrays\elevation_tiles.image
    Created Array Texture From GEOTIFF In: 0 seconds.
    
    Start <Program> setup.
    Setting shader source and binding shader program to rendering device...
    Found shader source: D:\Release6\Content\Library\Shader\Avalanche Quantize Elevation\430\avalanche_quantize_elevation_compute_shader.glsl
    Successfully bound shader program: 1
    Setting shader uniforms...
    Setting shader constant: 'uniform float format_min': 0.00000000000
    Setting shader constant: 'uniform float format_max': 1.00000000000
    Setting shader constant: 'uniform int array_slices': 16
    Setting up shader buffer...
    Validated binding index: 'data' buffer index is: 0
    Validated buffer size: 'data' buffer size is 128 bytes.
    Successfully created buffer 'data' on device.
    Uploading buffer data data to GPU...
    Copy data to shader buffer: 1
    Found constant index for <Texture> named 'src' at constant index 4.
    <Texture> named 'src' will use texture unit 0.
    Successfully uploaded <Texture> named 'src'.
    Found constant index for <Texture> named 'dst' at constant index 1.
    <Texture> named 'dst' will use texture unit 1.
    Successfully uploaded <Texture> named 'dst'.
    <Program> Execution status: 1
    Reading texture back from GPU...
    Readback operation status: 1
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Arrays\elevation_tiles.png
    Successfully created overhead map!
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Maps\elevation_map.png
    Destroyed shader program at ID: <1>.
    Created RGBA Textures In: 1 seconds.
    
    Start <Program> setup.
    Setting shader source and binding shader program to rendering device...
    Found shader source: D:\Release6\Content\Library\Shader\Avalanche Normal Map\430\avalanche_normal_map_compute_shader.glsl
    Successfully bound shader program: 1
    Setting shader uniforms...
    Setting shader constant: 'uniform float region_size_x': 10.0000000000
    Setting shader constant: 'uniform float region_size_y': 10.0000000000
    Setting shader constant: 'uniform int array_slices': 16
    Found constant index for <Texture> named 'src' at constant index 4.
    <Texture> named 'src' will use texture unit 0.
    Successfully uploaded <Texture> named 'src'.
    Found constant index for <Texture> named 'dst' at constant index 1.
    <Texture> named 'dst' will use texture unit 1.
    Successfully uploaded <Texture> named 'dst'.
    Compute Shader Execution status: 1
    Reading texture back from GPU...
    Readback operation status: 1
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Arrays\aspect_tiles.png
    Successfully created overhead map!
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Maps\aspect_map.png
    Destroyed shader program at ID: <1>.
    Created Aspect Textures In: 2 seconds.
    
    Start <Program> setup.
    Setting shader source and binding shader program to rendering device...
    Found shader source: D:\Release6\Content\Library\Shader\Avalanche Slope Map\430\avalanche_slope_map_compute_shader.glsl
    Successfully bound shader program: 1
    Setting shader uniforms...
    Setting shader constant: 'uniform float region_size_x': 10.0000000000
    Setting shader constant: 'uniform float region_size_y': 10.0000000000
    Setting up shader buffer...
    Validated binding index: 'data' buffer index is: 0
    Validated buffer size: 'data' buffer size is 128 bytes.
    Successfully created buffer 'data' on device.
    Uploading buffer data data to GPU...
    Copy data to shader buffer: 1
    Setting shader constant: 'uniform int array_slices': 16
    Found constant index for <Texture> named 'src' at constant index 4.
    <Texture> named 'src' will use texture unit 0.
    Successfully uploaded <Texture> named 'src'.
    Found constant index for <Texture> named 'dst' at constant index 1.
    <Texture> named 'dst' will use texture unit 1.
    Successfully uploaded <Texture> named 'dst'.
    Compute Shader Execution status: 1
    Reading texture back from GPU...
    Readback operation status: 1
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Arrays\slope_tiles.png
    Successfully created overhead map!
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Maps\slope_map.png
    Destroyed shader program at ID: <1>.
    Created Slope Textures In: 1 seconds.
    
    Start <Program> setup.
    Setting shader source and binding shader program to rendering device...
    Found shader source: D:\Release6\Content\Library\Shader\Avalanche Openness Map\430\avalanche_openness_map_compute_shader.glsl
    Successfully bound shader program: 1
    Setting shader uniforms...
    Setting shader constant: 'uniform int radius': 64
    Setting shader constant: 'uniform float min_angle': 90.0000000000
    Setting shader constant: 'uniform float max_angle': 0.00000000000
    Setting shader constant: 'uniform int array_slices': 16
    Found constant index for <Texture> named 'src' at constant index 5.
    <Texture> named 'src' will use texture unit 0.
    Successfully uploaded <Texture> named 'src'.
    Found constant index for <Texture> named 'dst' at constant index 1.
    <Texture> named 'dst' will use texture unit 1.
    Successfully uploaded <Texture> named 'dst'.
    Compute Shader Execution status: 1
    Reading texture back from GPU...
    Readback operation status: 1
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Arrays\openness_tiles.png
    Successfully created overhead map!
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Maps\openness_map.png
    Destroyed shader program at ID: <1>.
    Created Openness Textures In: 1 seconds.
    
    Start <Program> setup.
    Setting shader source and binding shader program to rendering device...
    Found shader source: D:\Release6\Content\Library\Shader\Avalanche Surface Area\430\avalanche_surface_area_compute_shader.glsl
    Successfully bound shader program: 1
    Setting shader uniforms...
    Setting shader constant: 'uniform int array_slices': 16
    Setting shader constant: 'uniform float region_size_x': 10.0000000000
    Setting shader constant: 'uniform float region_size_y': 10.0000000000
    Found constant index for <Texture> named 'src_image' at constant index 4.
    <Texture> named 'src_image' will use texture unit 0.
    Successfully uploaded <Texture> named 'src_image'.
    Found constant index for <Texture> named 'dst_image' at constant index 1.
    <Texture> named 'dst_image' will use texture unit 1.
    Successfully uploaded <Texture> named 'dst_image'.
    Compute Shader Execution status: 1
    Reading texture back from GPU...
    Readback operation status: 1
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Arrays\surface_tiles.image
    Successfully created overhead map!
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Maps\surface_map.png
    Destroyed shader program at ID: <1>.
    Created Surface Textures In: 1 seconds.
    
    Start <Program> setup.
    Setting shader source and binding shader program to rendering device...
    Found shader source: D:\Release6\Content\Library\Shader\Avalanche Prefix Sum\430\avalanche_prefix_sum_compute_shader.glsl
    Successfully bound shader program: 1
    Wrote layout declaration 'layout( local_size_x = 256, local_size_y = 1, local_size_z = 1 ) in;' to: D:\Release6\Content\Library\Shader\Avalanche Prefix Sum\430\avalanche_prefix_sum_local_group_decl.glsl
    Setting shader uniforms...
    Setting shader constant: 'uniform int array_slices': 16
    Found constant index for <Texture> named 'input_image' at constant index 1.
    <Texture> named 'input_image' will use texture unit 0.
    Successfully uploaded <Texture> named 'input_image'.
    Found constant index for <Texture> named 'output_image' at constant index 2.
    <Texture> named 'output_image' will use texture unit 1.
    Successfully uploaded <Texture> named 'output_image'.
    First Pass Execution status: 1
    Found constant index for <Texture> named 'input_image' at constant index 1.
    <Texture> named 'input_image' will use texture unit 0.
    Successfully uploaded <Texture> named 'input_image'.
    Found constant index for <Texture> named 'output_image' at constant index 2.
    <Texture> named 'output_image' will use texture unit 1.
    Successfully uploaded <Texture> named 'output_image'.
    Second Pass Execution status: 1
    Reading texture back from GPU...
    Readback operation status: 1
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Arrays\sum_tiles.image
    Successfully created overhead map!
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Maps\sum_map.png
    Destroyed shader program at ID: <1>.
    Created Sum Textures In: 0 seconds.
    
    Generated report at: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Analysis\report.htm
    
    Build completed.
    Processed elevation data for: USGS_13_n49w122.tif
    Successfully executed <FileNode> workload named 'USGS_13_n49w122.tif'.
    
    Executed build for <WorkloadNode> named 'Western-Washington-Mt-Baker-Terrain-Analysis'.
    
    Build completed.

Execute Complete Workload

  1. Return to the running Shader app.
  2. Examine the hierarchy.
  3. Right click over the <WorkloadNode> named Western-Washington-Mt-Baker-Terrain-Analysis and select Toggle Debug from the listed options.

    The node icon turns blue, indicating that it is in release mode. Now we'll execute the entire workload. Note that this can take 15-30 minutes, depending on your computing hardware.

  4. Select Graph » Build All from the main menu.

    The build process starts. Note that this could take 15-30 minutes to complete, depending on your computing hardware. RAM use could peak at around 10GB, and GPU memory use could peak at around 2GB. The build could take longer if you have less than the recommended CPU or GPU memory.

    The application creates a report and launches it in the default web browser on your computer. The full report uses very large images (approximately 400MB), so you might have to wait while the web browser loads content from disk.

    This is a picture of the release avalanche terrain analysis.
  5. Left click one of the cells of the terrain to see the analysis: This is a picture of the release analysis.

    This allows you to see the analysis for each cell.

Examine The Log Message

  1. Return to the running Octopus application.
  2. Examine the output window.

    There is a detailed log message, including timings for each major operation.

    Start loading scripts
    Done loading scripts; 1 loaded in 14.03 ms; avg 14.03
    Compiling Program 0x000001EC23E3C390 0x0000000000000000 <(null)>
    Compiling Program 0x000001EC23E3E040 0x0000000000000000 <(null)>
    Compiling Program 0x000001EC23E3B070 0x0000000000000000 <(null)>
    Compiling Program 0x000001EC23E3BA00 0x0000000000000000 <(null)>
    Compiling Program 0x000001EC23E3CD20 0x0000000000000000 <(null)>
    Compiling Program 0x000001EC23E3D6B0 0x0000000000000000 <(null)>
    
    --- <Building Project 'D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\Western-Washington-Mt-Baker-Terrain-Analysis.box'> ---
    
    GLSL compiler version: 460
    
    <FileNode> source data found: D:\Release6\Content\Library\Textures\Elevation\USGS_13_n49w122.tif
    Created directory: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122
    Created directory: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Arrays
    Created directory: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Maps
    Created directory: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Analysis
    Created directory: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Analysis\Images
    Using 'Lens' sub-range for analysis: [0,0] spanning [43,43] chunks.
    Using scale factor: 111139
    Geotiff Original Width: 10812
    Geotiff Original Height: 10812
    Geotiff Original Chunks X: 43
    Geotiff Original Chunks Y: 43
    Geotiff Original Chunks Width: 256
    Geotiff Original Chunks Height: 256
    Geotiff Elevation Spacing X   10.2906481407
    Geotiff Elevation Spacing Y   10.2906481407
    Dst Range X Start 0
    Dst Range Y Start 0
    Dst Range Z Count 43
    Dst Range W Count 43
    Analyzing area of 'Lens' sub-range for analysis. 113279 metres x 113279 metres requested.
    Starting analysis at chunk [0,0].
    Analysis spans [43x43] chunks.
    Building array texture of dimensions 256x256 with 1849 slices.
    Source data allocation succeeded! Requested: 256x473344 pixels.
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Arrays\elevation_tiles.image
    Created Array Texture From GEOTIFF In: 17 seconds.
    
    Start <Program> setup.
    Setting shader source and binding shader program to rendering device...
    Found shader source: D:\Release6\Content\Library\Shader\Avalanche Quantize Elevation\430\avalanche_quantize_elevation_compute_shader.glsl
    Successfully bound shader program: 1
    Setting shader uniforms...
    Setting shader constant: 'uniform float format_min': 0.00000000000
    Setting shader constant: 'uniform float format_max': 1.00000000000
    Setting shader constant: 'uniform int array_slices': 1849
    Setting up shader buffer...
    Validated binding index: 'data' buffer index is: 0
    Validated buffer size: 'data' buffer size is 14792 bytes.
    Successfully created buffer 'data' on device.
    Uploading buffer data data to GPU...
    Copy data to shader buffer: 1
    Found constant index for <Texture> named 'src' at constant index 4.
    <Texture> named 'src' will use texture unit 0.
    Successfully uploaded <Texture> named 'src'.
    Found constant index for <Texture> named 'dst' at constant index 1.
    <Texture> named 'dst' will use texture unit 1.
    Successfully uploaded <Texture> named 'dst'.
    <Program> Execution status: 1
    Reading texture back from GPU...
    Readback operation status: 1
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Arrays\elevation_tiles.png
    Successfully created overhead map!
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Maps\elevation_map.png
    Destroyed shader program at ID: <1>.
    Created RGBA Textures In: 82 seconds.
    
    Start <Program> setup.
    Setting shader source and binding shader program to rendering device...
    Found shader source: D:\Release6\Content\Library\Shader\Avalanche Normal Map\430\avalanche_normal_map_compute_shader.glsl
    Successfully bound shader program: 1
    Setting shader uniforms...
    Setting shader constant: 'uniform float region_size_x': 10.0000000000
    Setting shader constant: 'uniform float region_size_y': 10.0000000000
    Setting shader constant: 'uniform int array_slices': 1849
    Found constant index for <Texture> named 'src' at constant index 4.
    <Texture> named 'src' will use texture unit 0.
    Successfully uploaded <Texture> named 'src'.
    Found constant index for <Texture> named 'dst' at constant index 1.
    <Texture> named 'dst' will use texture unit 1.
    Successfully uploaded <Texture> named 'dst'.
    Compute Shader Execution status: 1
    Reading texture back from GPU...
    Readback operation status: 1
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Arrays\aspect_tiles.png
    Successfully created overhead map!
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Maps\aspect_map.png
    Destroyed shader program at ID: <1>.
    Created Aspect Textures In: 243 seconds.
    
    Start <Program> setup.
    Setting shader source and binding shader program to rendering device...
    Found shader source: D:\Release6\Content\Library\Shader\Avalanche Slope Map\430\avalanche_slope_map_compute_shader.glsl
    Successfully bound shader program: 1
    Setting shader uniforms...
    Setting shader constant: 'uniform float region_size_x': 10.0000000000
    Setting shader constant: 'uniform float region_size_y': 10.0000000000
    Setting up shader buffer...
    Validated binding index: 'data' buffer index is: 0
    Validated buffer size: 'data' buffer size is 14792 bytes.
    Successfully created buffer 'data' on device.
    Uploading buffer data data to GPU...
    Copy data to shader buffer: 1
    Setting shader constant: 'uniform int array_slices': 1849
    Found constant index for <Texture> named 'src' at constant index 4.
    <Texture> named 'src' will use texture unit 0.
    Successfully uploaded <Texture> named 'src'.
    Found constant index for <Texture> named 'dst' at constant index 1.
    <Texture> named 'dst' will use texture unit 1.
    Successfully uploaded <Texture> named 'dst'.
    Compute Shader Execution status: 1
    Reading texture back from GPU...
    Readback operation status: 1
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Arrays\slope_tiles.png
    Successfully created overhead map!
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Maps\slope_map.png
    Destroyed shader program at ID: <1>.
    Created Slope Textures In: 136 seconds.
    
    Start <Program> setup.
    Setting shader source and binding shader program to rendering device...
    Found shader source: D:\Release6\Content\Library\Shader\Avalanche Openness Map\430\avalanche_openness_map_compute_shader.glsl
    Successfully bound shader program: 1
    Setting shader uniforms...
    Setting shader constant: 'uniform int radius': 64
    Setting shader constant: 'uniform float min_angle': 90.0000000000
    Setting shader constant: 'uniform float max_angle': 0.00000000000
    Setting shader constant: 'uniform int array_slices': 500
    Found constant index for <Texture> named 'src' at constant index 5.
    <Texture> named 'src' will use texture unit 0.
    Successfully uploaded <Texture> named 'src'.
    Found constant index for <Texture> named 'dst' at constant index 1.
    <Texture> named 'dst' will use texture unit 1.
    Successfully uploaded <Texture> named 'dst'.
    Compute Shader Execution status: 1
    Reading texture back from GPU...
    Readback operation status: 1
    
    Setting shader uniforms...
    Setting shader constant: 'uniform int radius': 64
    Setting shader constant: 'uniform float min_angle': 90.0000000000
    Setting shader constant: 'uniform float max_angle': 0.00000000000
    Setting shader constant: 'uniform int array_slices': 500
    Found constant index for <Texture> named 'src' at constant index 5.
    <Texture> named 'src' will use texture unit 0.
    Successfully uploaded <Texture> named 'src'.
    Found constant index for <Texture> named 'dst' at constant index 1.
    <Texture> named 'dst' will use texture unit 1.
    Successfully uploaded <Texture> named 'dst'.
    Compute Shader Execution status: 1
    Reading texture back from GPU...
    Readback operation status: 1
    
    Setting shader uniforms...
    Setting shader constant: 'uniform int radius': 64
    Setting shader constant: 'uniform float min_angle': 90.0000000000
    Setting shader constant: 'uniform float max_angle': 0.00000000000
    Setting shader constant: 'uniform int array_slices': 500
    Found constant index for <Texture> named 'src' at constant index 5.
    <Texture> named 'src' will use texture unit 0.
    Successfully uploaded <Texture> named 'src'.
    Found constant index for <Texture> named 'dst' at constant index 1.
    <Texture> named 'dst' will use texture unit 1.
    Successfully uploaded <Texture> named 'dst'.
    Compute Shader Execution status: 1
    Reading texture back from GPU...
    Readback operation status: 1
    
    Setting shader uniforms...
    Setting shader constant: 'uniform int radius': 64
    Setting shader constant: 'uniform float min_angle': 90.0000000000
    Setting shader constant: 'uniform float max_angle': 0.00000000000
    Setting shader constant: 'uniform int array_slices': 349
    Found constant index for <Texture> named 'src' at constant index 5.
    <Texture> named 'src' will use texture unit 0.
    Successfully uploaded <Texture> named 'src'.
    Found constant index for <Texture> named 'dst' at constant index 1.
    <Texture> named 'dst' will use texture unit 1.
    Successfully uploaded <Texture> named 'dst'.
    Compute Shader Execution status: 1
    Reading texture back from GPU...
    Readback operation status: 1
    
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Arrays\openness_tiles.png
    Successfully created overhead map!
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Maps\openness_map.png
    Destroyed shader program at ID: <1>.
    Created Openness Textures In: 128 seconds.
    
    Start <Program> setup.
    Setting shader source and binding shader program to rendering device...
    Found shader source: D:\Release6\Content\Library\Shader\Avalanche Surface Area\430\avalanche_surface_area_compute_shader.glsl
    Successfully bound shader program: 1
    Setting shader uniforms...
    Setting shader constant: 'uniform int array_slices': 1849
    Setting shader constant: 'uniform float region_size_x': 10.0000000000
    Setting shader constant: 'uniform float region_size_y': 10.0000000000
    Found constant index for <Texture> named 'src_image' at constant index 4.
    <Texture> named 'src_image' will use texture unit 0.
    Successfully uploaded <Texture> named 'src_image'.
    Found constant index for <Texture> named 'dst_image' at constant index 1.
    <Texture> named 'dst_image' will use texture unit 1.
    Successfully uploaded <Texture> named 'dst_image'.
    Compute Shader Execution status: 1
    Reading texture back from GPU...
    Readback operation status: 1
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Arrays\surface_tiles.image
    Successfully created overhead map!
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Maps\surface_map.png
    Destroyed shader program at ID: <1>.
    Created Surface Textures In: 117 seconds.
    
    Start <Program> setup.
    Setting shader source and binding shader program to rendering device...
    Found shader source: D:\Release6\Content\Library\Shader\Avalanche Prefix Sum\430\avalanche_prefix_sum_compute_shader.glsl
    Successfully bound shader program: 1
    Wrote layout declaration 'layout( local_size_x = 256, local_size_y = 1, local_size_z = 1 ) in;' to: D:\Release6\Content\Library\Shader\Avalanche Prefix Sum\430\avalanche_prefix_sum_local_group_decl.glsl
    Setting shader uniforms...
    Setting shader constant: 'uniform int array_slices': 1849
    Found constant index for <Texture> named 'input_image' at constant index 1.
    <Texture> named 'input_image' will use texture unit 0.
    Successfully uploaded <Texture> named 'input_image'.
    Found constant index for <Texture> named 'output_image' at constant index 2.
    <Texture> named 'output_image' will use texture unit 1.
    Successfully uploaded <Texture> named 'output_image'.
    First Pass Execution status: 1
    Found constant index for <Texture> named 'input_image' at constant index 1.
    <Texture> named 'input_image' will use texture unit 0.
    Successfully uploaded <Texture> named 'input_image'.
    Found constant index for <Texture> named 'output_image' at constant index 2.
    <Texture> named 'output_image' will use texture unit 1.
    Successfully uploaded <Texture> named 'output_image'.
    Second Pass Execution status: 1
    Reading texture back from GPU...
    Readback operation status: 1
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Arrays\sum_tiles.image
    Successfully created overhead map!
    Generated image: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Maps\sum_map.png
    Destroyed shader program at ID: <1>.
    Created Sum Textures In: 60 seconds.
    
    Generated report at: D:\Release6\Content\Library\Octopus\Western-Washington-Mt-Baker-Terrain-Analysis\USGS_13_n49w122\Analysis\report.htm
    
    Build completed.
    Processed elevation data for: USGS_13_n49w122.tif
    Successfully executed <FileNode> workload named 'USGS_13_n49w122.tif'.
    
    Executed build for <WorkloadNode> named 'Western-Washington-Mt-Baker-Terrain-Analysis'.
    
    Build completed.

    This series of exercises is complete. Return to tutorials.