ID 437221 - System intensive Blink kernels will crash/freeze system until render is complete on macOS

Follow

Problem summary
System intensive Blink kernels will crash/freeze system until render is complete on macOS


Customer reported version
nuke.12.1v1


Customer reported platform
10.15


Steps to reproduce


1) Open a blank comp in Nuke.
2) Paste the script below.
3) Make sure the viewer is viewing the Blinkscript node.
4) Open the blinkscript node and click on Recompile
5) Go into the "Kernel Parameters" tab and drag the "saturation" knob from side to side


CheckerBoard2 {
inputs 0
name CheckerBoard1
selected true
xpos 139
ypos -225
}
BlinkScript {
recompileCount 5
ProgramGroup 1
KernelDescription "2 \"SaturationKernel\" iterate pixelWise 485fa3492eaf926e5d816b684500ee85d28eb4330f093732513ab6fc6c41df67 2 \"src\" Read Point \"dst\" Write Point 1 \"Saturation\" Float 1 mpmZPw== 1 \"saturation\" 1 1 1 \"coefficients\" Float 3 1 AAAAAAAAAAAAAAAAAAAAAA=="
kernelSource "kernel SaturationKernel : ImageComputationKernel<ePixelWise>\n{\n Image<eRead, eAccessPoint, eEdgeClamped> src; // the input image\n Image<eWrite> dst; // the output image\n\n param:\n float saturation; // This parameter is made available to the user.\n\n local:\n float3 coefficients; // This local variable is not exposed to the user.\n\n // In define(), parameters can be given labels and default values.\n void define() {\n defineParam(saturation, \"Saturation\", 1.2f);\n }\n\n // The init() function is run before any calls to process().\n // Local variables can be initialized here.\n void init() {\n // Initialise coefficients according to rec. 709 standard.\n coefficients.x = 0.2126f;\n coefficients.y = 0.7152f;\n coefficients.z = 0.0722f;\n }\n\n void process() {\n // Read the input image\n float x = saturation;\n for(int i=1; i<=6000000; i++){\n\tx+=saturation;\n }\n SampleType(src) input = src();\n\n // Isolate the RGB components\n float3 srcPixel(input.x, input.y, input.z);\n\n // Calculate luma\n float luma = srcPixel.x * coefficients.x\n + srcPixel.y * coefficients.y\n + srcPixel.z * coefficients.z;\n // Apply saturation\n float3 saturatedPixel = (srcPixel - luma) * saturation + luma;\n // Write the result to the output image\n dst() = float4(saturatedPixel.x, saturatedPixel.y, saturatedPixel.z, x);\n }\n};\n"
rebuild ""
SaturationKernel_Saturation 0.86
rebuild_finalise ""
name BlinkScript1
selected true
xpos 139
ypos -140
}


Expected behaviour
For the Nuke UI to still be responsive


Actual behaviour

Nuke crashes trying to calculate the image with the following error in the Terminal

GPU hang occurred, msgtracer returned -1
Abort trap: 6


Workaround
Unknown.


Reproduced by support
This bug has been reproduced in:

NukeX 12.1v2 - macOS 10.14.6

NukeX 12.1v1 - macOS 10.14.6 - regression


Unable to reproduce bug in:
NukeX 12.1v2 - Windows 10 - CentOS7

NukeX 11.3v6 - macOS 10.14.6


Earliest version tested
NukeX 11.3v6 - This issue doesn't appear in this version and has regressed

    We're sorry to hear that

    Please tell us why