web page header logo

Revision History

This page summarizes changes and revisions to the real time correction rasterizer. Note that effective v1.01 we are updating the name to NRTCR (Nextgen Real Time Correction Rasterizer) to reflect the new rasterizer library incorporated into the library.

V2.091 Windows 2/12/2020

Speed Improvement

This version has a new version of sffcorrections that contains a memory allocation optimization that becomes important for any input GDS file where the number of textual structure references for any cell definition is large ( > 1M). For files that are output from SFGEN which by design creates semi-flat GDS file, the number of cell references could be in the millions depending on the nature of input file and user parameters.
In a use case consistent with this scenario, a reduction in the execution of sffcorrections was seen to be reduced from 20 minutes to 40 seconds - the larger the number of cell references, the more the improvement in throughput can be expected.
This problem was manifest more on WIndows platforms are opposed to LINUX.

sffcorrection64.exe improved log

This version includes a new sffcorrection64.exe with better log report.

Version 2.09 11/7/2019

New Polyhierarchy

Updated Polyhierarchy module - The new module fixed a problem in the quad-tree code where window queries were failing because of an integer overflow during the quad tree construction for designs with very large extents.

Version 3.02 9/4/2019

New API QisMWindowProbe

This release contains a new API `QisMWindowProbe` to get statistical information (polygons extents, polygon & vertex counts etc) from a view of the database.

  • This API will serve a need for checking if a field is empty and to get the bounds of the data for sparse fields.
  • The header file for this API is ${install}/include/qismwindowprobe.h. As with all other header files, the API is fully documented inline with the code.
  • User can find the sample use of this API in ${install}/samplecode/rtcr.cpp (STEP 3.1 & 5.1).
  • The new API requires a license -- 11113 (one per active probe object).
  • You can also test this feature via the new scripting system.
  • New scripting support QisMScript

    This release contains a new scripting support (called QisMScript) for QisMLib and all it's extensions.

  • User can quickly prototype the flow using scripts before writing a C++ application. User can also use this system to easily learn and explore the QisMLib APIs.
  • Included in this package is a command-line tool ${install}/artwork/qismscript64.exe which provides a console interface to run qismlib commands in form of scripts. The usage for this tool is described here: QisMScript Usage.
  • The complete list of commands available at this time is documented here: QisMScript Commands. You will also find here the C++ code equivalent to each of the commands
  • A sample script to run a RTCR flow can be found at ${install}/examples/rtcr.script. A batch file ${install}/examples/rtcr_script.bat provides a sample execution of this script using qismscript64.exe.
    This script also demonstrates the use of the new QisMWindowProbe API in form of a script command `probe.window`
  • You can access all QisMLib related details here: QisMLib Documentation.

  • Version 3.01 7/15/2019

    Software Updates

    This release contains a new extension, qismrtcrexten64.dll that provides the QisMRTCR API.
    qismrtcrclient64.exe uses the QisMRTCR API.
    The include folder contains the header files (qismrtcr.h has the new API).
    The samplecode folder contains the sample code (rtcr.cpp for using QisMRTCR).
    The reference folder contains the documentation PDF qismlib-api-list.pdf

    Version 2.08 4/5/2018

    File not Released

    This version fixes the bug where the file being used to generate the raster images is not released during EndJob.
    The file in reference here is the GDSII that is the direct source for the raster images.

    Version 2.07 8/28/2017

    RTCRImageServerCreate and RTCRImageServerDestroy

    This version contains the fix that allows the user to call RTCRImageServerCreate and RTCRImageServerDestroy multiple times in succession.
    Note: While you may create multiple instances of the RTCRImageServer object, these instances are not truly independent. They are all bound by a common file database and therefore, calling SetupJob from any of these instances will invalidate the file data loaded by another.

    Version 2.06 10/5/2016

    Invalid Buffer Error

    Fixed a bug which resulted in an invalid buffer error message if the client passes a NULL buffer to IRTCRImageServer::GetRasterizedTile per the auto-allocation feature.
    Note: In this mode, it is the client's responsibility to free the buffer allocated by NRTCR (per window) using the IRTCRImageServer::DeAllocateRasterBuffer method to avoid memory leak.
    Also, it is advisable to avoid using this mode if all the windows in the set have the same size & resolution (therefore same raster image size) because allocating and releasing buffer per window may hit the performance.

    Invalid Buffer Error

    Fixed a bug which resulted in an invalid buffer error message if the client passes a NULL buffer to Modified the behavior of IRTCRImageServer::GetRasterizedTile if the client passes a pre-allocated buffer (larger than the required size) so that NRTCR maintains the windows extents and disregards any extra space in the pre-allocated buffer.
    Previously, if the client buffer was larger than the required size, NRTCR adjusted the data extents to fill the buffer completely.
    Note: If the client specified buffer happens to be smaller than the required size (based on the window extents and resolution), IRTCRImageServer::GetRasterizedTile will return error and a suitable message listing the specified and expected buffer sizes.

    Version 2.031 10/4/2016

    Auto-allocation Error

    Auto-allocation of the image buffer (per tile, if the client specifies a NULL buffer) was resulting in an error code (Invalid buffer/size). This has been fixed.

    Version 2.03 12/23/2015

    Fixed Log Output

    The new version fixes the logging bug that produced repeating entries.

    New Progress API

    A new progress function updates API (the old one is obsolete and requires code change on your part). Details for the new progress API can be found in the sample code and is also being using by the RTCRClient64.exe

    Documentation on NRTCR API

    Documentation for the new NRTCR API is now available here: NRTCR API

    Specific documentation for the progress function is here: API Progress

    Version 2.01 12/3/2015

    Log File Fix

    This version contains a fix for the log file (repeated lines)

    Rasterizer Crash Fixed

    A customer reported rasterization crash was analyzed and a fix applied to the code.

    Version 2.00 10/21/2015

    New RTCR API

    v2.00 has a re-designed API (rtcr_api.h) with the following improvements:

      no longer uses STL; therefore is compatible with newer versions of Visual Studio (tested with VC2008, VC2010, VC2012 and VC2013) as long as the appropriate redistributable packages are installed properly.

      allows the client program to load the RTCR module (RTCRImageServer.dll) on-demand at run-time using Win32 LoadLibrary function without need for build-time linking.

      The new RTCR api can be modified to include new changes without breaking backward/forward compatibility (source and binary).

    NOTE: The new API associated with v2.00 is not backwards compatible (source and binary) with earlier versions.

    Version 1.02 06/17/2015

    Support for Grey Dithering

    This version now supports grey dithering correctly. This is a fix/enhancement to the NextGen based version of RTCR. The initial release using the third generation rasterizer did not support dithering properly in the presence of corrections.

    The fix was tied to the SFFCORRECTION engine; now this engine preserves layer/datatypes from input to output. There is no significant impact on throughput to support grey scale (assuming the amount of "data" is small compared to "regular" data - otherwise it presents the same load as the monochrome output).

    Version 1.01 06/09/2015

    New Name and Internal Architecture

    The library is now referred to as NRTCR due to major changes in the internal architecture intended to speed up processing of stripes instead of optimizing for maximum speed over the entire image.

    Version 1.01a 03/18/2015

    Fix for LCD file.

    Fixed issue with 17 Inch LCD.

    Version 1.00 06/15/2013

    Initial Release

    The initial release of the RTRC program.

    Download Revision History     Price