It happened again in a slightly different way. Instead of the layer refusing to render, it kept rendering the same thing, and changing any setting didn't change the outcome or even restart the layer render. It just kept crunching. Ctrl+Z caused crash-to-desktop (not even the usual crash recovery dialog). This is also new and didn't happen other times.
One thing I need to mention, all these 'corrupt layers' started to happen after I wrote and started using a certain transformation by default on a stack of 5 layers:
mjdTieredRendering { ; 2026-04-28
; Made by Mark Jeronimus <mark.jeronimus+ultrafractal.com@gmail.com>.
; CC BY-NC-SA 4.0 (Give credit, Don't make money, Same license, No liability)
global:
import "common.ulb"
; $DEFINE DEBUG
float halfWidth =
float halfHeight =
float areaSteps = @tiers
float areaStep1 = @tier - 1
float areaStep2 = @tier
if @factor > 1
float areaSteps = (@factor ^ areaSteps - 1) / (@factor - 1)
float areaStep1 = (@factor ^ areaStep1 - 1) / (@factor - 1)
float areaStep2 = (@factor ^ areaStep2 - 1) / (@factor - 1)
endif
float radius1 = sqrt(areaStep1 / areaSteps)
float radius2 = sqrt(areaStep2 / areaSteps)
print(radius1, " - ", radius2)
transform:
float x = real(
float y = imag(
float r = sqrt(x * x + y * y)
if r < radius1 || r >= radius2
endif
default:
title = "Tiered Rendering"
int param tiers
caption = "Number of tiers"
min = 2
default = 5
endparam
int param tier
caption = "Tier
min = 1
default = 5
endparam
int param factor
caption = "Shrink factor"
min = 1
default = 4
endparam
}
It happened again in a slightly different way. Instead of the layer refusing to render, it kept rendering the same thing, and changing any setting didn't change the outcome or even restart the layer render. It just kept crunching. Ctrl+Z caused crash-to-desktop (not even the usual crash recovery dialog). This is also new and didn't happen other times.
One thing I need to mention, all these 'corrupt layers' started to happen after I wrote and started using a certain transformation by default on a stack of 5 layers:
````
mjdTieredRendering { ; 2026-04-28
; Made by Mark Jeronimus <mark.jeronimus+ultrafractal.com@gmail.com>.
; CC BY-NC-SA 4.0 (Give credit, Don't make money, Same license, No liability)
global:
import "common.ulb"
; $DEFINE DEBUG
float halfWidth = #width / 2
float halfHeight = #height / 2
float areaSteps = @tiers
float areaStep1 = @tier - 1
float areaStep2 = @tier
if @factor > 1
float areaSteps = (@factor ^ areaSteps - 1) / (@factor - 1)
float areaStep1 = (@factor ^ areaStep1 - 1) / (@factor - 1)
float areaStep2 = (@factor ^ areaStep2 - 1) / (@factor - 1)
endif
float radius1 = sqrt(areaStep1 / areaSteps)
float radius2 = sqrt(areaStep2 / areaSteps)
print(radius1, " - ", radius2)
transform:
float x = real(#screenpixel / halfWidth) - 1
float y = imag(#screenpixel / halfHeight) - 1
float r = sqrt(x * x + y * y)
if r < radius1 || r >= radius2
#solid = true
endif
default:
title = "Tiered Rendering"
int param tiers
caption = "Number of tiers"
min = 2
default = 5
endparam
int param tier
caption = "Tier #"
min = 1
default = 5
endparam
int param factor
caption = "Shrink factor"
min = 1
default = 4
endparam
}
````