Explore Reference Workload

You need the following Simdify® modules to complete this exercise: Simdify® Free Edition

Simdify® Free Edition includes reference document layouts for 888 RGB and 8888 ARGB. Think of these as pre-made workloads that show you how to use a set of fundamental Simdify® features. In this exercise, you'll learn how to access reference workloads and export a working OpenGL® application.

Start The Layout application

  1. Start the Layout app. (Start » Programs » Scenomics » Layout) or (Windows® key and then type 'Layout' to find the app icon.)

    The application displays a splash screen and then the application desktop appears. The main menu is composed of three items that contain commands relevant to the current context (which is an empty document). The interface changes when you create a new file or load a file from disk.

    This is a picture of the desktop.

Open Workload

  1. Select File » Open From GLSL Reference Library » from the main menu.

    The software displays the reference library document selector.

    This is a picture of the reference library document selector.
  2. Select 430 for the GLSL version.
  3. Select sampler2D for the sampler type.
  4. Click OK or hit ENTER when you are finished.

    The software displays the open dialog. There is a single file named sampler2D.box contained in the folder.

    This is a picture of the open dialog.
  5. Double click the file named sampler2D.box to open the file.

    The reference document appears.

    This is a picture of the reference document.

    This is a pretty simple workload designed to render a texture to the screen. Yes, it's simple, but it's very important to be able to see results!

Export The Workload

  1. Examine the main menu and select Export » Windows 64-Bit from the main menu.
  2. The software displays a dialog that allows you to export the application layout to the Simdify runtime format.

    This is a picture of the exporter dialog.
  3. Click OK or hit ENTER to export the workload.

    The software exports the document, generating all the binary files needed for the runtime. This could take 30-60 seconds depending on what you're doing. When the export is complete, the software opens the folder containing the exported document.

    This is a picture of a folder containing the exported document.
  4. Examine the folder and find the file named run_engine.cmd.
  5. Double click run_engine.cmd to load the exported docuent in the Simdify runtime. This is a picture of the workload being executed in a custom OpenGL application.

    This shows your OpenGL workload running in real-time.

  6. Hit ESC to close the window.

    This is the basic process that you'll use every time you export a workload from the Layout application.

  7. Return to the running Layout application.
  8. Examine the output window at the bottom of the workspace.

    You'll notice the build log (a partial build log is shown below). Build messages, including errors and warnings, are displayed here. If you have problems, please email support@scenomics.com and we'll do our best to get you up and running.

    
    --- <Executing Command 'ExportLayoutToTargetPlatform'> ---
    
    Processing <Model3D> named Layout.
    Traversing <Group> named Layout.
    Processing <IncludePaletteNode> named Includes.
    Traversing <Group> named Includes.
    Processing <DataPaletteNode> named Locals.
    Traversing <Group> named Locals.
    Processing <ShaderPaletteNode> named Shaders.
    Traversing <Group> named Shaders.
    Processing <Program> named Visual.
    Traversing <Group> named Visual.
    Processing <TexturePaletteNode> named Textures.
    Traversing <Group> named Textures.
    Processing <Texture> named IPF_8888_ARGB.
    Processing <GeometryPaletteNode> named Geometry.
    Traversing <Group> named Geometry.
    Processing <ParametricMesh> named Mesh.
    Traversing <Group> named Mesh.
    Processing <TexturePaletteNode> named Load.
    Traversing <Group> named Load.
    Processing <NodeLink> named Load: IPF_8888_ARGB.
    Traversing <Group> named Load: IPF_8888_ARGB.
    Processing <ShaderResourceNode> named Visual.
    Traversing <Group> named Visual.
    Processing <ProgramBindNode> named Bind Visual.
    Traversing <Group> named Bind Visual.
    Processing <Float32MatrixNode> named uniform mat4x4 modelViewMatrix.
    Processing <Float32MatrixNode> named uniform mat4x4 modelViewProjectionMatrix.
    Processing <Int32Node> named uniform int image_width.
    Processing <Int32Node> named uniform int image_height.
    Processing <Float32Node> named uniform float format_min.
    Processing <Float32Node> named uniform float format_max.
    Processing <SamplerNode> named layout( binding = 0 ) uniform sampler2D pixel_data.
    Processing <ShaderResourceNode> named Render.
    Traversing <Group> named Render.
    Processing <NodeLink> named Mesh.
    Traversing <Group> named Mesh.
    Validating <Program>: /Shaders/Visual
    Validating vertex shader: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\vertex_shader.glsl
    Validating fragment shader: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\fragment_shader.glsl
    Validating <Float32MatrixNode>: /Visual/uniform mat4x4 modelViewMatrix
    Validating <Float32MatrixNode>: /Visual/uniform mat4x4 modelViewProjectionMatrix
    Validating <Int32Node>: /Visual/uniform int image_width
    Validating <Int32Node>: /Visual/uniform int image_height
    Validating <Float32Node>: /Visual/uniform float format_min
    Validating <Float32Node>: /Visual/uniform float format_max
    Validating <SamplerNode>: /Visual/layout( binding = 0 ) uniform sampler2D pixel_data
    Building OpenGL Export Version Info...
    Setting OpenGL context to version 4.3.
    Using platform profile flag: WGL_CONTEXT_CORE_PROFILE_BIT_ARB
    
    Exporting Document...
    Exported <EditModel3D> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Layout-256EDB4E-5A6D-4498-9FC9-58C09D4DCD5B.spa_binary_node
    Exported <IncludePaletteNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Includes-8CE4484E-3AD5-4D4C-8CB8-635810E9DD8D.spa_binary_node
    Exported <DataPaletteNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Locals-15377097-4918-42F8-A48F-1933683D177D.spa_binary_node
    Exported <ShaderPaletteNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Shaders-38D7B4A5-8505-4404-8C40-400348BC91EB.spa_binary_node
    Exported <Program> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Visual-E2B147A5-16BC-44ED-BA59-C474E91F2748.spa_binary_node
    Exported <TexturePaletteNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Textures-C5097B00-2773-4F0F-B29D-7062C7F79059.spa_binary_node
    Exported <Texture> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\IPF_8888_ARGB-49F64CCD-79B4-490E-9D68-14B9F47F727B.spa_binary_node
    Exported <GeometryPaletteNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Geometry-9C90EF6F-D053-40CA-8BC9-E51FFB31B132.spa_binary_node
    Exported <ParametricMesh> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Mesh-2EB4B221-3D5A-42A4-9D8A-CAF420E23C67.spa_binary_node
    Exported <TexturePaletteNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Load-2F4F45E0-053D-4D4C-93AD-2A294FCF3A24.spa_binary_node
    Exported <NodeLink> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Load__IPF_8888_ARGB-192E1CFB-9B24-494E-8939-01E5330B8279.spa_binary_node
    Exported <ShaderResourceNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Visual-DC4DA5B5-DF1B-41F5-93D9-D333293FA574.spa_binary_node
    Exported <ProgramBindNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Bind_Visual-883F089B-CCA8-4D74-97D2-6F1887F6F7A1.spa_binary_node
    Exported <Float32MatrixNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\uniform_mat4x4_modelViewMatrix-28239F31-DC63-43E2-8FE4-2144132DA998.spa_binary_node
    Exported <Float32MatrixNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\uniform_mat4x4_modelViewProjectionMatrix-F78756C0-4A88-4709-A188-4EA10767A889.spa_binary_node
    Exported <Int32Node> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\uniform_int_image_width-88BD7551-7843-4071-AABB-991240F8BFF7.spa_binary_node
    Exported <Int32Node> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\uniform_int_image_height-EAC94C3D-7A1E-498B-B64E-D1CB1E539F57.spa_binary_node
    Exported <Float32Node> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\uniform_float_format_min-3C479C78-746D-4153-9B96-79AD68295E06.spa_binary_node
    Exported <Float32Node> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\uniform_float_format_max-BD190945-715B-4EDB-B1A7-FE50F8692FAC.spa_binary_node
    Exported <SamplerNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\layout(_binding_=_0_)_uniform_sampler2D_pixel_data-E7329EAB-9EF0-4149-80CA-4B369754E028.spa_binary_node
    Exported <ShaderResourceNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Render-20B26E27-47FA-4F8C-8DE4-58E1BC513845.spa_binary_node
    Exported <NodeLink> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Mesh-5FEB1A3E-7212-4B28-A523-9AD9B1CA016C.spa_binary_node
    Exported <Model3D> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\sampler2D.spa_binary_graph
    Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\vertex_shader.glsl
    Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\fragment_shader.glsl
    
    Document export complete.
    
  9. Close the Layout application without saving changes.

    This demonstrates the entire process of taking a document, exporting it, and executing the workload in the Simdify runtime.