News
Scenome 22.5 — 2/6/2022
Release details are described below.
- Scenome GLSL API. Optimizations to file path handling to improve performance.
- Scenome Applications. Performance updates to video texture download. Previously, this might create a new OpenGL resource once per frame, but it now updates the existing texture resource on the GPU.
- Product Documentation. Tutorials, data interface, and command documentation updated.
- Scenome Platform. The <Texture> node now exposes parameters for GL_NEAREST, GL_LINEAR, GL_NEAREST_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_NEAREST, GL_NEAREST_MIPMAP_LINEAR, and GL_LINEAR_MIPMAP_LINEAR. Note that we set these values to the most useful defaults and they should not require modification in most cases. On some GPUs, it might be necessary to set very specific values for some textures. For example, on Intel® GPUs, integer (signed/unsigned) textures must use GL_LINEAR.
- Shader Application.
The <StructInstanceNode> and
<StructInstanceArrayNode> upgrade is ongoing.
There is now full, experimental support for editing scalar/scalar array data members
of struct instances declared in GLSL.
- Open APP_SERVICE_FEATURE_FLAGS_UTIL.SSL
- Set function bool StructInstanceAllocator(){ return true; } to return true.
- Insert the following GLSL into a shader (for example: insert this code into fragment shader).
struct data_info { int location_info; vec4 point_info[2]; }; struct test_data { data_info info[2]; int count; vec4 pos; vec4 sca; vec4 ore[2]; }; buffer test_buffer_a { int counter; test_data data[]; }; struct test_info { int tl_info; uint my_uint; uint64_t my_uint_64; int64_t my_int_64; vec4 tp_info[2]; }; buffer test_buffer_b { int counter_b; test_info info_region; }; uniform test_info my_instance;
- Save the changes to the shader source code and return to the Shader application.
- select Graph » Rebuild All from the main menu.
You'll notice that there are now <StructInstanceNode> objects and <StructInstanceArrayNode> objects in the document. You can double click these to edit the struct data members. Note that this does not actually send any data to the GPU, but this feature is enabled for preview. Please send email to support@scenomics.com with comments. NOTE: Don't forget to disable the feature flag and remove the sample GLSL from your shader when you are finished.
- Shader Application. <Int32ArrayDataCapture> and all similar have been upgraded to support array subscripting via a new data member <ArraySubscriptParams>. These upgrades are also complete in vector array classes such as <Int32VectorArrayDataCapture>. Previously, these classes were mostly used for raw storage, although very elaborate data capture behaviors were always supported. These classes now support the same array subscript features as the equivalent <VariableNode> classes. For example, the array subscripting features of <Int32ArrayDataCapture> are now the same as <Int32ArrayNode>. This infrastructure upgrade is part of the <StructInstanceNode> and <StructInstanceArrayNode> upgrade. Note that the <VariableNode> class hierarchy has a sandwich class <VariableArrayNode> that incorporates these features and makes the available to all relevant <VariableArrayNode> sub-classes. The <DataCapture> class hierarchy does not use a similar sandwich class, so each <DataCapture> class that implements anby array support contains its own <ArraySubscriptParams> data member.
- Scenome Platform. Improved allocation guards in the <VariableNode> array type class hierarchy (such as <Float32ArrayNode> and <Float32VectorArrayNode>) and <DataCapture> array type class hierarchy (such as <Float32ArrayDataCapture> and <Float32VectorArrayDataCapture>). Previously, in certain cases, allocations were not guarded. Typically this is not problematic in a 64-bit address space in the context of allocation sizes used in OpenGL® applications. Nonetheless, additional allocation guards have been added so that any failures will be as graceful as possible.
- Scenome GLSL API. Added SPA_GL_BROADCOM to SPA_VENDOR.GLSL. This is used during export to devices with Broadcom® GPUs such as Raspberry Pi®
- Scenome Platform. Added to the <TextFile> data interface support for generating new lines that are compatible with Linux®.
- Scenome Platform. GPU compatibility improvements to video support on Intel® GPUs.
- Scenome Scripting Language API. The name of the <VariableArrayNode> data interface Dimensionality has been changed to SubscriptCount. Please update your Scenome Scripting Language code as needed.