AcademySoftwareFoundation / AcademySoftwareFoundation/OpenRV

[Bug]: OpenRV 3.1.0 - GL program ERROR with custom colorspace in OCIO 2.1.0

Open
#1,145 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
764
Forks
246
Avg merge
6d 12h
Merged PRs (30d)
13

Description

### What happened?

Hi!
We are currently using a custom ColorSpace definition in the OCIO config to view
files with a baked display view transform without the need to change the display transform in RV itself:

```yaml
- !
name: Output - ACES 1.0 - SDR Video (Rec.1886 Rec.709)
aliases: [rec709]
family: Output
description: ACES 1.0 SDR-video for Rec.709 HD video with Rec.1886 gamma (2.4)
isdata: false
categories: [ file-io ]
encoding: sdr-video
from_reference: !
children:
- ! {src: ACES2065-1, display: "Rec.1886 Rec.709 - Display", view: "ACES 1.0 - SDR Video"}
- ! {min_in_value: 0., min_out_value: 0., max_in_value: 1., max_out_value: 1.}
```

The colorspace itself looks correct (and also works for all our dccs like nuke, houdini),
but as soon as I switch from sequence to the source directly, the error occurs and the view gets black.

I found this old issue which is very similar, but since it was closed and produced a different error,
I am reopening a new issue for this.
https://github.com/AcademySoftwareFoundation/OpenRV/issues/403

Any help is appreciated,
thanks,
Sebastian

### List all the operating systems versions where this is happening

Windows 11

### On what computer hardware is this happening?

Memory: 128GB, CPU: Intel i9 14900k , GPU: NVIDIA GeForce RTX 4080 Super

### Relevant console log output

```shell
ERROR: //
ERROR: // VERTEX PROGRAM
ERROR: //
ERROR: 1: #version 150
ERROR: 2:
ERROR: 3: in vec2 in_Position;
ERROR: 4: uniform mat4 projMatrix, modelviewMatrix;
ERROR: 5: in vec2 in_TexCoord0;
ERROR: 6: out vec2 TexCoord0;
ERROR: 7: void main()
ERROR: 8: {
ERROR: 9: TexCoord0 = in_TexCoord0;
ERROR: 10: gl_Position = projMatrix * modelviewMatrix * vec4(in_Position, 0, 1);
ERROR: 11: }
ERROR: 12:
ERROR: //
ERROR: // FUNCTION: ResizeDownSampleDerivative
ERROR: //
ERROR: 1:
ERROR: 2:
ERROR: 3:
ERROR: 4:
ERROR: 5:
ERROR: 6: vec4 ResizeDownSampleDerivativeb6a2019f (const in vec2 _offset)
ERROR: 7: {
ERROR: 8:
ERROR: 9: vec2 absDer = fwidth( in0.st );
ERROR: 10:
ERROR: 11:
ERROR: 12: float maxAbsDer = max( absDer.x, absDer.y );
ERROR: 13:
ERROR: 14:
ERROR: 15:
ERROR: 16:
ERROR: 17: int KERNEL_SIZE = int( maxAbsDer / 2.0 );
ERROR: 18:
ERROR: 19:
ERROR: 20:
ERROR: 21:
ERROR: 22:
ERROR: 23:
ERROR: 24:
ERROR: 25:
ERROR: 26:
ERROR: 27:
ERROR: 28:
ERROR: 29:
ERROR: 30:
ERROR: 31:
ERROR: 32:
ERROR: 33:
ERROR: 34:
ERROR: 35:
ERROR: 36:
ERROR: 37:
ERROR: 38:
ERROR: 39:
ERROR: 40: if ( KERNEL_SIZE ERROR: 41: {
ERROR: 42: KERNEL_SIZE = 0;
ERROR: 43: }
ERROR: 44: else if ( KERNEL_SIZE > 16 )
ERROR: 45: {
ERROR: 46: KERNEL_SIZE = 16;
ERROR: 47: }
ERROR: 48:
ERROR: 49:
ERROR: 50: vec4 averageColor=vec4(0.0,0.0,0.0,0.0);
ERROR: 51: for ( int x = -KERNEL_SIZE ; x ERROR: 52: {
ERROR: 53: for ( int y = -KERNEL_SIZE ; y ERROR: 54: {
ERROR: 55: averageColor+= in0( vec2 ( x , y ) );
ERROR: 56: }
ERROR: 57: }
ERROR: 58:
ERROR: 59:
ERROR: 60: float nbSamples = float( ( KERNEL_SIZE * 2 + 1 )* ( KERNEL_SIZE * 2 + 1 ) );
ERROR: 61: averageColor /= vec4(nbSamples);
ERROR: 62:
ERROR: 63: return averageColor;
ERROR: 64: }
ERROR: 65:
ERROR: 66:
ERROR: //
ERROR: // FUNCTION: OCIO_d_Rec_1886_Rec_709_Display_ACES_1_0_SDR_Video_displayGroup0_colorPipeline_0_a70bdbda61d952ca
ERROR: //
ERROR: 1:
ERROR:
ERROR: 2:
ERROR: 3:
ERROR: 4: const int ocio_grading_rgbcurve_knotsOffsets_03d1ac249[8] = int[8](-1, 0, -1, 0, -1, 0, 0, 9);
ERROR: 5: const float ocio_grading_rgbcurve_knots_03d1ac249[9] = float[9](-5.26017761, -3.75502753, -2.24987745, -0.744727492, 1.06145251, 1.96573484, 2.86763239, 3.77526045, 4.67381239);
ERROR: 6: const int ocio_grading_rgbcurve_coefsOffsets_03d1ac249[8] = int[8](-1, 0, -1, 0, -1, 0, 0, 24);
ERROR: 7: const float ocio_grading_rgbcurve_coefs_03d1ac249[24] = float[24](0.185970441, 0.403778881, -0.0748505071, -0.185833707, -0.192129433, -0.19314684, -0.0501050949, -0.0511224195, 0., 0.559826851, 1.77532244, 1.54999995, 0.878701687, 0.531223178, 0.182825878, 0.0918722972, -4., -3.57868838, -1.82131326, 0.681241214, 2.87457752, 3.51206255, 3.8340621, 3.95872402);
ERROR: 8:
ERROR: 9: float ocio_grading_rgbcurve_evalBSplineCurve_03d1ac249(in int curveIdx, in float x)
ERROR: 10: {
ERROR: 11: int knotsOffs = ocio_grading_rgbcurve_knotsOffsets_03d1ac249[curveIdx * 2];
ERROR: 12: int knotsCnt = ocio_grading_rgbcurve_knotsOffsets_03d1ac249[curveIdx * 2 + 1];
ERROR: 13: int coefsOffs = ocio_grading_rgbcurve_coefsOffsets_03d1ac249[curveIdx * 2];
ERROR: 14: int coefsCnt = ocio_grading_rgbcurve_coefsOffsets_03d1ac249[curveIdx * 2 + 1];
ERROR: 15: int coefsSets = coefsCnt / 3;
ERROR: 16: if (coefsSets == 0)
ERROR: 17: {
ERROR: 18: return x;
ERROR: 19: }
ERROR: 20: float knStart = ocio_grading_rgbcurve_knots_03d1ac249[knotsOffs];
ERROR: 21: float knEnd = ocio_grading_rgbcurve_knots_03d1ac249[knotsOffs + knotsCnt - 1];
ERROR: 22: if (x ERROR: 23: {
ERROR: 24: float B = ocio_grading_rgbcurve_coefs_03d1ac249[coefsOffs + coefsSets];
ERROR: 25: float C = ocio_grading_rgbcurve_coefs_03d1ac249[coefsOffs + coefsSets * 2];
ERROR: 26: return (x - knStart) * B + C;
ERROR: 27: }
ERROR: 28: else if (x >= knEnd)
ERROR: 29: {
ERROR: 30: float A = ocio_grading_rgbcurve_coefs_03d1ac249[coefsOffs + coefsSets - 1];
ERROR: 31: float B = ocio_grading_rgbcurve_coefs_03d1ac249[coefsOffs + coefsSets * 2 - 1];
ERROR: 32: float C = ocio_grading_rgbcurve_coefs_03d1ac249[coefsOffs + coefsSets * 3 - 1];
ERROR: 33: float kn = ocio_grading_rgbcurve_knots_03d1ac249[knotsOffs + knotsCnt - 2];
ERROR: 34: float t = knEnd - kn;
ERROR: 35: float slope = 2. * A * t + B;
ERROR: 36: float offs = ( A * t + B ) * t + C;
ERROR: 37: return (x - knEnd) * slope + offs;
ERROR: 38: }
ERROR: 39: int i = 0;
ERROR: 40: for (i = 0; i ERROR: 41: {
ERROR: 42: if (x ERROR: 43: {
ERROR: 44: break;
ERROR: 45: }
ERROR: 46: }
ERROR: 47: float A = ocio_grading_rgbcurve_coefs_03d1ac249[coefsOffs + i];
ERROR: 48: float B = ocio_grading_rgbcurve_coefs_03d1ac249[coefsOffs + coefsSets + i];
ERROR: 49: float C = ocio_grading_rgbcurve_coefs_03d1ac249[coefsOffs + coefsSets * 2 + i];
ERROR: 50: float kn = ocio_grading_rgbcurve_knots_03d1ac249[knotsOffs + i];
ERROR: 51: float t = x - kn;
ERROR: 52: return ( A * t + B ) * t + C;
ERROR: 53: }
ERROR: 54:
ERROR: 55: const int ocio_grading_rgbcurve_knotsOffsets_13d1ac249[8] = int[8](-1, 0, -1, 0, -1, 0, 0, 15);
ERROR: 56: const float ocio_grading_rgbcurve_knots_13d1ac249[15] = float[15](-2.54062366, -2.08035731, -1.62009084, -1.15982437, -0.69955802, -0.239291579, 0.220974833, 0.681241214, 1.01284635, 1.34445143, 1.6760565, 2.00766158, 2.33926654, 2.67087173, 3.00247669);
ERROR: 57: const int ocio_grading_rgbcurve_coefsOffsets_13d1ac249[8] = int[8](-1, 0, -1, 0, -1, 0, 0, 42);
ERROR: 58: const float ocio_grading_rgbcurve_coefs_13d1ac249[42] = float[42](0.521772683, 0.0654487088, 0.272604734, 0.123911291, 0.0858645961, -0.0171162505, 0.0338416733, -0.194834962, -0.201688975, -0.476983279, -0.276004612, -0.139139131, -0.0922630876, -0.0665909499, 0., 0.480308801, 0.54055649, 0.791498125, 0.90556252, 0.984603703, 0.968847632, 1., 0.870783448, 0.737021267, 0.420681119, 0.237632066, 0.145353615, 0.0841637775, -1.69896996, -1.58843505, -1.35350001, -1.04694998, -0.656400025, -0.221410006, 0.22814402, 0.681241214, 0.991421878, 1.25800002, 1.44994998, 1.55910003, 1.62259996, 1.66065454);
ERROR: 59:
ERROR: 60: float ocio_grading_rgbcurve_evalBSplineCurve_13d1ac249(in int curveIdx, in float x)
ERROR: 61: {
ERROR: 62: int knotsOffs = ocio_grading_rgbcurve_knotsOffsets_13d1ac249[curveIdx * 2];
ERROR: 63: int knotsCnt = ocio_grading_rgbcurve_knotsOffsets_13d1ac249[curveIdx * 2 + 1];
ERROR: 64: int coefsOffs = ocio_grading_rgbcurve_coefsOffsets_13d1ac249[curveIdx * 2];
ERROR: 65: int coefsCnt = ocio_grading_rgbcurve_coefsOffsets_13d1ac249[curveIdx * 2 + 1];
ERROR: 66: int coefsSets = coefsCnt / 3;
ERROR: 67: if (coefsSets == 0)
ERROR: 68: {
ERROR: 69: return x;
ERROR: 70: }
ERROR: 71: float knStart = ocio_grading_rgbcurve_knots_13d1ac249[knotsOffs];
ERROR: 72: float knEnd = ocio_grading_rgbcurve_knots_13d1ac249[knotsOffs + knotsCnt - 1];
ERROR: 73: if (x ERROR: 74: {
ERROR: 75: float B = ocio_grading_rgbcurve_coefs_13d1ac249[coefsOffs + coefsSets];
ERROR: 76: float C = ocio_grading_rgbcurve_coefs_13d1ac249[coefsOffs + coefsSets * 2];
ERROR: 77: return (x - knStart) * B + C;
ERROR: 78: }
ERROR: 79: else if (x >= knEnd)
ERROR: 80: {
ERROR: 81: float A = ocio_grading_rgbcurve_coefs_13d1ac249[coefsOffs + coefsSets - 1];
ERROR: 82: float B = ocio_grading_rgbcurve_coefs_13d1ac249[coefsOffs + coefsSets * 2 - 1];
ERROR: 83: float C = ocio_grading_rgbcurve_coefs_13d1ac249[coefsOffs + coefsSets * 3 - 1];
ERROR: 84: float kn = ocio_grading_rgbcurve_knots_13d1ac249[knotsOffs + knotsCnt - 2];
ERROR: 85: float t = knEnd - kn;
ERROR: 86: float slope = 2. * A * t + B;
ERROR: 87: float offs = ( A * t + B ) * t + C;
ERROR: 88: return (x - knEnd) * slope + offs;
ERROR: 89: }
ERROR: 90: int i = 0;
ERROR: 91: for (i = 0; i ERROR: 92: {
ERROR: 93: if (x ERROR: 94: {
ERROR: 95: break;
ERROR: 96: }
ERROR: 97: }
ERROR: 98: float A = ocio_grading_rgbcurve_coefs_13d1ac249[coefsOffs + i];
ERROR: 99: float B = ocio_grading_rgbcurve_coefs_13d1ac249[coefsOffs + coefsSets + i];
ERROR: 100: float C = ocio_grading_rgbcurve_coefs_13d1ac249[coefsOffs + coefsSets * 2 + i];
ERROR: 101: float kn = ocio_grading_rgbcurve_knots_13d1ac249[knotsOffs + i];
ERROR: 102: float t = x - kn;
ERROR: 103: return ( A * t + B ) * t + C;
ERROR: 104: }
ERROR: 105:
ERROR: 106:
ERROR: 107:
ERROR: 108: vec4 OCIO_d_Rec_1886_Rec_709_Display_ACES_1_0_SDR_Video_displayGroup0_colorPipeline_0_a70bdbda61d952ca3d1ac249 ( in vec4 inPixel)
ERROR: 109: {
ERROR: 110: vec4 outColor = inPixel;
ERROR: 111:
ERROR: 112:
ERROR: 113:
ERROR: 114: {
ERROR: 115: vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);
ERROR: 116: vec4 tmp = res;
ERROR: 117: res = mat4(0.69545224135745187, 0.044794563372037716, -0.0055258825581135443, 0., 0.14067869647029416, 0.85967111845642163, 0.0040252103059786595, 0., 0.16386906217225405, 0.0955343181715404, 1.0015006722521349, 0., 0., 0., 0., 1.) * tmp;
ERROR: 118: outColor.rgb = vec3(res.x, res.y, res.z);
ERROR: 119: outColor.a = res.w;
ERROR: 120: }
ERROR: 121:
ERROR: 122:
ERROR: 123:
ERROR: 124: {
ERROR: 125: float chroma = sqrt( outColor.rgb.b * (outColor.rgb.b - outColor.rgb.g) + outColor.rgb.g * (outColor.rgb.g - outColor.rgb.r) + outColor.rgb.r * (outColor.rgb.r - outColor.rgb.b) );
ERROR: 126: float YC = (outColor.rgb.b + outColor.rgb.g + outColor.rgb.r + 1.75 * chroma) / 3.;
ERROR: 127: float maxval = max( outColor.rgb.r, max( outColor.rgb.g, outColor.rgb.b));
ERROR: 128: float minval = min( outColor.rgb.r, min( outColor.rgb.g, outColor.rgb.b));
ERROR: 129: float sat = ( max(1e-10, maxval) - max(1e-10, minval) ) / max(1e-2, maxval);
ERROR: 130: float x = (sat - 0.4) * 5.;
ERROR: 131: float t = max( 0., 1. - 0.5 * abs(x));
ERROR: 132: float s = 0.5 * (1. + sign(x) * (1. - t * t));
ERROR: 133: float GlowGain = 0.0500000007 * s;
ERROR: 134: float GlowMid = 0.0799999982;
ERROR: 135: float glowGainOut = mix(GlowGain, GlowGain * (GlowMid / YC - 0.5), float( YC > GlowMid * 2. / 3. ));
ERROR: 136: glowGainOut = mix(glowGainOut, 0., float( YC > GlowMid * 2. ));
ERROR: 137: outColor.rgb = outColor.rgb * glowGainOut + outColor.rgb;
ERROR: 138: }
ERROR: 139:
ERROR: 140:
ERROR: 141:
ERROR: 142: {
ERROR: 143: float a = 2.0 * outColor.rgb.r - (outColor.rgb.g + outColor.rgb.b);
ERROR: 144: float b = 1.7320508075688772 * (outColor.rgb.g - outColor.rgb.b);
ERROR: 145: float hue = atan(b, a);
ERROR: 146: float knot_coord = clamp(2. + hue * float(1.6976527), 0., 4.);
ERROR: 147: int j = int(min(knot_coord, 3.));
ERROR: 148: float t = knot_coord - float(j);
ERROR: 149: vec4 monomials = vec4(t*t*t, t*t, t, 1.);
ERROR: 150: vec4 m0 = vec4(0.25, 0., 0., 0.);
ERROR: 151: vec4 m1 = vec4(-0.75, 0.75, 0.75, 0.25);
ERROR: 152: vec4 m2 = vec4(0.75, -1.5, 0., 1.);
ERROR: 153: vec4 m3 = vec4(-0.25, 0.75, -0.75, 0.25);
ERROR: 154: vec4 coefs = mix(m0, m1, float(j == 1));
ERROR: 155: coefs = mix(coefs, m2, float(j == 2));
ERROR: 156: coefs = mix(coefs, m3, float(j == 3));
ERROR: 157: float f_H = dot(coefs, monomials);
ERROR: 158: float maxval = max( outColor.rgb.r, max( outColor.rgb.g, outColor.rgb.b));
ERROR: 159: float minval = min( outColor.rgb.r, min( outColor.rgb.g, outColor.rgb.b));
ERROR: 160: float f_S = ( max(1e-10, maxval) - max(1e-10, minval) ) / max(1e-2, maxval);
ERROR: 161: outColor.rgb.r = outColor.rgb.r + f_H * f_S * (0.0299999993 - outColor.rgb.r) * 0.180000007;
ERROR: 162: }
ERROR: 163:
ERROR: 164:
ERROR: 165:
ERROR: 166: {
ERROR: 167: outColor.rgb = max(vec3(0., 0., 0.), outColor.rgb);
ERROR: 168: }
ERROR: 169:
ERROR: 170:
ERROR: 171:
ERROR: 172: {
ERROR: 173: vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);
ERROR: 174: vec4 tmp = res;
ERROR: 175: res = mat4(1.4514393161456653, -0.07655377339602043, 0.008316148425697719, 0., -0.23651074689374019, 1.1762296998335731, -0.0060324497910210278, 0., -0.21492856925192524, -0.099675926437552201, 0.9977163013653233, 0., 0., 0., 0., 1.) * tmp;
ERROR: 176: outColor.rgb = vec3(res.x, res.y, res.z);
ERROR: 177: outColor.a = res.w;
ERROR: 178: }
ERROR: 179:
ERROR: 180:
ERROR: 181:
ERROR: 182: {
ERROR: 183: outColor.rgb = max(vec3(0., 0., 0.), outColor.rgb);
ERROR: 184: }
ERROR: 185:
ERROR: 186:
ERROR: 187:
ERROR: 188: {
ERROR: 189: vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);
ERROR: 190: vec4 tmp = res;
ERROR: 191: res = mat4(0.97088914867099996, 0.010889148671, 0.010889148671, 0., 0.026963270631999998, 0.98696327063199996, 0.026963270631999998, 0., 0.0021475806959999999, 0.0021475806959999999, 0.96214758069600004, 0., 0., 0., 0., 1.) * tmp;
ERROR: 192: outColor.rgb = vec3(res.x, res.y, res.z);
ERROR: 193: outColor.a = res.w;
ERROR: 194: }
ERROR: 195:
ERROR: 196:
ERROR: 197:
ERROR: 198: {
ERROR: 199: outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);
ERROR: 200: outColor.rgb = log(outColor.rgb) * vec3(0.434294462, 0.434294462, 0.434294462);
ERROR: 201: }
ERROR: 202:
ERROR: 203:
ERROR: 204:
ERROR: 205: {
ERROR: 206: outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve_03d1ac249(0, outColor.rgb.r);
ERROR: 207: outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve_03d1ac249(1, outColor.rgb.g);
ERROR: 208: outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve_03d1ac249(2, outColor.rgb.b);
ERROR: 209: outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve_03d1ac249(3, outColor.rgb.r);
ERROR: 210: outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve_03d1ac249(3, outColor.rgb.g);
ERROR: 211: outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve_03d1ac249(3, outColor.rgb.b);
ERROR: 212: }
ERROR: 213:
ERROR: 214:
ERROR: 215:
ERROR: 216: {
ERROR: 217: outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve_13d1ac249(0, outColor.rgb.r);
ERROR: 218: outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve_13d1ac249(1, outColor.rgb.g);
ERROR: 219: outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve_13d1ac249(2, outColor.rgb.b);
ERROR: 220: outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve_13d1ac249(3, outColor.rgb.r);
ERROR: 221: outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve_13d1ac249(3, outColor.rgb.g);
ERROR: 222: outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve_13d1ac249(3, outColor.rgb.b);
ERROR: 223: }
ERROR: 224:
ERROR: 225:
ERROR: 226:
ERROR: 227: {
ERROR: 228: outColor.rgb = pow( vec3(10., 10., 10.), outColor.rgb);
ERROR: 229: }
ERROR: 230:
ERROR: 231:
ERROR: 232:
ERROR: 233: {
ERROR: 234: vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);
ERROR: 235: res = vec4(0.0208420176, 0.0208420176, 0.0208420176, 1.) * res;
ERROR: 236: res = vec4(-0.000416840339, -0.000416840339, -0.000416840339, 0.) + res;
ERROR: 237: outColor.rgb = vec3(res.x, res.y, res.z);
ERROR: 238: outColor.a = res.w;
ERROR: 239: }
ERROR: 240:
ERROR: 241:
ERROR: 242:
ERROR: 243: {
ERROR: 244: float Y = max( 1e-10, 0.27222871678091454 * outColor.rgb.r + 0.67408176581114831 * outColor.rgb.g + 0.053689517407937051 * outColor.rgb.b );
ERROR: 245: float Ypow_over_Y = pow( Y, -0.0188999772);
ERROR: 246: outColor.rgb = outColor.rgb * Ypow_over_Y;
ERROR: 247: }
ERROR: 248:
ERROR: 249:
ERROR: 250:
ERROR: 251: {
ERROR: 252: vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);
ERROR: 253: vec4 tmp = res;
ERROR: 254: res = mat4(1.604753433346922, -0.10208245810655031, -0.0032671116532946819, 0., -0.531080948604018, 1.1081341286221253, -0.072755424133422703, 0., -0.073672484741910349, -0.0060516705145729488, 1.0760225357877193, 0., 0., 0., 0., 1.) * tmp;
ERROR: 255: outColor.rgb = vec3(res.x, res.y, res.z);
ERROR: 256: outColor.a = res.w;
ERROR: 257: }
ERROR: 258:
ERROR: 259:
ERROR: 260:
ERROR: 261: {
ERROR: 262: vec4 gamma = vec4(0.41666666666666669, 0.41666666666666669, 0.41666666666666669, 1.);
ERROR: 263: vec4 res = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma );
ERROR: 264: outColor.rgb = vec3(res.x, res.y, res.z);
ERROR: 265: outColor.a = res.w;
ERROR: 266: }
ERROR: 267:
ERROR: 268: return outColor;
ERROR: 269: }
ERROR: 270:
ERROR: //
ERROR: // FUNCTION: OCIO_c_Output_ACES_1_0_SDR_Video_Rec_1886_Rec_709_2_ACEScg_sourceGroup000000_tolinPipeline_0_62236c128fa3023c
ERROR: //
ERROR: 1:
ERROR:
ERROR: 2:
ERROR: 3:
ERROR: 4: const int ocio_grading_rgbcurve_knotsOffsets_05eaefa7f[8] = int[8](-1, 0, -1, 0, -1, 0, 0, 15);
ERROR: 5: const float ocio_grading_rgbcurve_knots_05eaefa7f[15] = float[15](-2.54062366, -2.08035731, -1.62009084, -1.15982437, -0.69955802, -0.239291579, 0.220974833, 0.681241214, 1.01284635, 1.34445143, 1.6760565, 2.00766158, 2.33926654, 2.67087173, 3.00247669);
ERROR: 6: const int ocio_grading_rgbcurve_coefsOffsets_05eaefa7f[8] = int[8](-1, 0, -1, 0, -1, 0, 0, 42);
ERROR: 7: const float ocio_grading_rgbcurve_coefs_05eaefa7f[42] = float[42](0.521772683, 0.0654487088, 0.272604734, 0.123911291, 0.0858645961, -0.0171162505, 0.0338416733, -0.194834962, -0.201688975, -0.476983279, -0.276004612, -0.139139131, -0.0922630876, -0.0665909499, 0., 0.480308801, 0.54055649, 0.791498125, 0.90556252, 0.984603703, 0.968847632, 1., 0.870783448, 0.737021267, 0.420681119, 0.237632066, 0.145353615, 0.0841637775, -1.69896996, -1.58843505, -1.35350001, -1.04694998, -0.656400025, -0.221410006, 0.22814402, 0.681241214, 0.991421878, 1.25800002, 1.44994998, 1.55910003, 1.62259996, 1.66065454);
ERROR: 8:
ERROR: 9: float ocio_grading_rgbcurve_evalBSplineCurve_05eaefa7f(in int curveIdx, in float x)
ERROR: 10: {
ERROR: 11: int knotsOffs = ocio_grading_rgbcurve_knotsOffsets_05eaefa7f[curveIdx * 2];
ERROR: 12: int knotsCnt = ocio_grading_rgbcurve_knotsOffsets_05eaefa7f[curveIdx * 2 + 1];
ERROR: 13: int coefsOffs = ocio_grading_rgbcurve_coefsOffsets_05eaefa7f[curveIdx * 2];
ERROR: 14: int coefsCnt = ocio_grading_rgbcurve_coefsOffsets_05eaefa7f[curveIdx * 2 + 1];
ERROR: 15: int coefsSets = coefsCnt / 3;
ERROR: 16: if (coefsSets == 0)
ERROR: 17: {
ERROR: 18: return x;
ERROR: 19: }
ERROR: 20: float knStart = ocio_grading_rgbcurve_knots_05eaefa7f[knotsOffs];
ERROR: 21: float knEnd = ocio_grading_rgbcurve_knots_05eaefa7f[knotsOffs + knotsCnt - 1];
ERROR: 22: float knStartY = ocio_grading_rgbcurve_coefs_05eaefa7f[coefsOffs + coefsSets * 2];
ERROR: 23: float knEndY;
ERROR: 24: {
ERROR: 25: float A = ocio_grading_rgbcurve_coefs_05eaefa7f[coefsOffs + coefsSets - 1];
ERROR: 26: float B = ocio_grading_rgbcurve_coefs_05eaefa7f[coefsOffs + coefsSets * 2 - 1];
ERROR: 27: float C = ocio_grading_rgbcurve_coefs_05eaefa7f[coefsOffs + coefsSets * 3 - 1];
ERROR: 28: float kn = ocio_grading_rgbcurve_knots_05eaefa7f[knotsOffs + knotsCnt - 2];
ERROR: 29: float t = knEnd - kn;
ERROR: 30: knEndY = ( A * t + B ) * t + C;
ERROR: 31: }
ERROR: 32: if (x ERROR: 33: {
ERROR: 34: float B = ocio_grading_rgbcurve_coefs_05eaefa7f[coefsOffs + coefsSets];
ERROR: 35: float C = ocio_grading_rgbcurve_coefs_05eaefa7f[coefsOffs + coefsSets * 2];
ERROR: 36: return abs(B) ERROR: 37: }
ERROR: 38: else if (x >= knEndY)
ERROR: 39: {
ERROR: 40: float A = ocio_grading_rgbcurve_coefs_05eaefa7f[coefsOffs + coefsSets - 1];
ERROR: 41: float B = ocio_grading_rgbcurve_coefs_05eaefa7f[coefsOffs + coefsSets * 2 - 1];
ERROR: 42: float C = ocio_grading_rgbcurve_coefs_05eaefa7f[coefsOffs + coefsSets * 3 - 1];
ERROR: 43: float kn = ocio_grading_rgbcurve_knots_05eaefa7f[knotsOffs + knotsCnt - 2];
ERROR: 44: float t = knEnd - kn;
ERROR: 45: float slope = 2. * A * t + B;
ERROR: 46: float offs = ( A * t + B ) * t + C;
ERROR: 47: return abs(slope) ERROR: 48: }
ERROR: 49: int i = 0;
ERROR: 50: for (i = 0; i ERROR: 51: {
ERROR: 52: if (x ERROR: 53: {
ERROR: 54: break;
ERROR: 55: }
ERROR: 56: }
ERROR: 57: float A = ocio_grading_rgbcurve_coefs_05eaefa7f[coefsOffs + i];
ERROR: 58: float B = ocio_grading_rgbcurve_coefs_05eaefa7f[coefsOffs + coefsSets + i];
ERROR: 59: float C = ocio_grading_rgbcurve_coefs_05eaefa7f[coefsOffs + coefsSets * 2 + i];
ERROR: 60: float kn = ocio_grading_rgbcurve_knots_05eaefa7f[knotsOffs + i];
ERROR: 61: float C0 = C - x;
ERROR: 62: float discrim = sqrt(B * B - 4. * A * C0);
ERROR: 63: return kn + (-2. * C0) / (discrim + B);
ERROR: 64: }
ERROR: 65:
ERROR: 66: const int ocio_grading_rgbcurve_knotsOffsets_15eaefa7f[8] = int[8](-1, 0, -1, 0, -1, 0, 0, 9);
ERROR: 67: const float ocio_grading_rgbcurve_knots_15eaefa7f[9] = float[9](-5.26017761, -3.75502753, -2.24987745, -0.744727492, 1.06145251, 1.96573484, 2.86763239, 3.77526045, 4.67381239);
ERROR: 68: const int ocio_grading_rgbcurve_coefsOffsets_15eaefa7f[8] = int[8](-1, 0, -1, 0, -1, 0, 0, 24);
ERROR: 69: const float ocio_grading_rgbcurve_coefs_15eaefa7f[24] = float[24](0.185970441, 0.403778881, -0.0748505071, -0.185833707, -0.192129433, -0.19314684, -0.0501050949, -0.0511224195, 0., 0.559826851, 1.77532244, 1.54999995, 0.878701687, 0.531223178, 0.182825878, 0.0918722972, -4., -3.57868838, -1.82131326, 0.681241214, 2.87457752, 3.51206255, 3.8340621, 3.95872402);
ERROR: 70:
ERROR: 71: float ocio_grading_rgbcurve_evalBSplineCurve_15eaefa7f(in int curveIdx, in float x)
ERROR: 72: {
ERROR: 73: int knotsOffs = ocio_grading_rgbcurve_knotsOffsets_15eaefa7f[curveIdx * 2];
ERROR: 74: int knotsCnt = ocio_grading_rgbcurve_knotsOffsets_15eaefa7f[curveIdx * 2 + 1];
ERROR: 75: int coefsOffs = ocio_grading_rgbcurve_coefsOffsets_15eaefa7f[curveIdx * 2];
ERROR: 76: int coefsCnt = ocio_grading_rgbcurve_coefsOffsets_15eaefa7f[curveIdx * 2 + 1];
ERROR: 77: int coefsSets = coefsCnt / 3;
ERROR: 78: if (coefsSets == 0)
ERROR: 79: {
ERROR: 80: return x;
ERROR: 81: }
ERROR: 82: float knStart = ocio_grading_rgbcurve_knots_15eaefa7f[knotsOffs];
ERROR: 83: float knEnd = ocio_grading_rgbcurve_knots_15eaefa7f[knotsOffs + knotsCnt - 1];
ERROR: 84: float knStartY = ocio_grading_rgbcurve_coefs_15eaefa7f[coefsOffs + coefsSets * 2];
ERROR: 85: float knEndY;
ERROR: 86: {
ERROR: 87: float A = ocio_grading_rgbcurve_coefs_15eaefa7f[coefsOffs + coefsSets - 1];
ERROR: 88: float B = ocio_grading_rgbcurve_coefs_15eaefa7f[coefsOffs + coefsSets * 2 - 1];
ERROR: 89: float C = ocio_grading_rgbcurve_coefs_15eaefa7f[coefsOffs + coefsSets * 3 - 1];
ERROR: 90: float kn = ocio_grading_rgbcurve_knots_15eaefa7f[knotsOffs + knotsCnt - 2];
ERROR: 91: float t = knEnd - kn;
ERROR: 92: knEndY = ( A * t + B ) * t + C;
ERROR: 93: }
ERROR: 94: if (x ERROR: 95: {
ERROR: 96: float B = ocio_grading_rgbcurve_coefs_15eaefa7f[coefsOffs + coefsSets];
ERROR: 97: float C = ocio_grading_rgbcurve_coefs_15eaefa7f[coefsOffs + coefsSets * 2];
ERROR: 98: return abs(B) ERROR: 99: }
ERROR: 100: else if (x >= knEndY)
ERROR: 101: {
ERROR: 102: float A = ocio_grading_rgbcurve_coefs_15eaefa7f[coefsOffs + coefsSets - 1];
ERROR: 103: float B = ocio_grading_rgbcurve_coefs_15eaefa7f[coefsOffs + coefsSets * 2 - 1];
ERROR: 104: float C = ocio_grading_rgbcurve_coefs_15eaefa7f[coefsOffs + coefsSets * 3 - 1];
ERROR: 105: float kn = ocio_grading_rgbcurve_knots_15eaefa7f[knotsOffs + knotsCnt - 2];
ERROR: 106: float t = knEnd - kn;
ERROR: 107: float slope = 2. * A * t + B;
ERROR: 108: float offs = ( A * t + B ) * t + C;
ERROR: 109: return abs(slope) ERROR: 110: }
ERROR: 111: int i = 0;
ERROR: 112: for (i = 0; i ERROR: 113: {
ERROR: 114: if (x ERROR: 115: {
ERROR: 116: break;
ERROR: 117: }
ERROR: 118: }
ERROR: 119: float A = ocio_grading_rgbcurve_coefs_15eaefa7f[coefsOffs + i];
ERROR: 120: float B = ocio_grading_rgbcurve_coefs_15eaefa7f[coefsOffs + coefsSets + i];
ERROR: 121: float C = ocio_grading_rgbcurve_coefs_15eaefa7f[coefsOffs + coefsSets * 2 + i];
ERROR: 122: float kn = ocio_grading_rgbcurve_knots_15eaefa7f[knotsOffs + i];
ERROR: 123: float C0 = C - x;
ERROR: 124: float discrim = sqrt(B * B - 4. * A * C0);
ERROR: 125: return kn + (-2. * C0) / (discrim + B);
ERROR: 126: }
ERROR: 127:
ERROR: 128:
ERROR: 129:
ERROR: 130: vec4 OCIO_c_Output_ACES_1_0_SDR_Video_Rec_1886_Rec_709_2_ACEScg_sourceGroup000000_tolinPipeline_0_62236c128fa3023c5eaefa7f ( in vec4 inPixel)
ERROR: 131: {
ERROR: 132: vec4 outColor = inPixel;
ERROR: 133:
ERROR: 134:
ERROR: 135:
ERROR: 136: {
ERROR: 137: outColor.rgb = max(vec3(0., 0., 0.), outColor.rgb);
ERROR: 138: outColor.rgb = min(vec3(1., 1., 1.), outColor.rgb);
ERROR: 139: }
ERROR: 140:
ERROR: 141:
ERROR: 142:
ERROR: 143: {
ERROR: 144: vec4 gamma = vec4(2.3999999999999999, 2.3999999999999999, 2.3999999999999999, 1.);
ERROR: 145: vec4 res = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma );
ERROR: 146: outColor.rgb = vec3(res.x, res.y, res.z);
ERROR: 147: outColor.a = res.w;
ERROR: 148: }
ERROR: 149:
ERROR: 150:
ERROR: 151:
ERROR: 152: {
ERROR: 153: vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);
ERROR: 154: vec4 tmp = res;
ERROR: 155: res = mat4(0.6430371952570656, 0.05926979748114361, 0.0059599807205470666, 0., 0.31118556603888886, 0.9314336659025827, 0.063923874376552767, 0., 0.045777238703049693, 0.0092965366152725631, 0.93011614490189853, 0., 0., 0., 0., 1.) * tmp;
ERROR: 156: outColor.rgb = vec3(res.x, res.y, res.z);
ERROR: 157: outColor.a = res.w;
ERROR: 158: }
ERROR: 159:
ERROR: 160:
ERROR: 161:
ERROR: 162: {
ERROR: 163: float Y = max( 1e-10, 0.27222871678091454 * outColor.rgb.r + 0.67408176581114831 * outColor.rgb.g + 0.053689517407937051 * outColor.rgb.b );
ERROR: 164: float Ypow_over_Y = pow( Y, 0.019264102);
ERROR: 165: outColor.rgb = outColor.rgb * Ypow_over_Y;
ERROR: 166: }
ERROR: 167:
ERROR: 168:
ERROR: 169:
ERROR: 170: {
ERROR: 171: vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);
ERROR: 172: res = vec4(47.9799995, 47.9799995, 47.9799995, 1.) * res;
ERROR: 173: res = vec4(0.0199999996, 0.0199999996, 0.0199999996, -0.) + res;
ERROR: 174: outColor.rgb = vec3(res.x, res.y, res.z);
ERROR: 175: outColor.a = res.w;
ERROR: 176: }
ERROR: 177:
ERROR: 178:
ERROR: 179:
ERROR: 180: {
ERROR: 181: outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);
ERROR: 182: outColor.rgb = log(outColor.rgb) * vec3(0.434294462, 0.434294462, 0.434294462);
ERROR: 183: }
ERROR: 184:
ERROR: 185:
ERROR: 186:
ERROR: 187: {
ERROR: 188: outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve_05eaefa7f(3, outColor.rgb.r);
ERROR: 189: outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve_05eaefa7f(3, outColor.rgb.g);
ERROR: 190: outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve_05eaefa7f(3, outColor.rgb.b);
ERROR: 191: outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve_05eaefa7f(0, outColor.rgb.r);
ERROR: 192: outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve_05eaefa7f(1, outColor.rgb.g);
ERROR: 193: outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve_05eaefa7f(2, outColor.rgb.b);
ERROR: 194: }
ERROR: 195:
ERROR: 196:
ERROR: 197:
ERROR: 198: {
ERROR: 199: outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve_15eaefa7f(3, outColor.rgb.r);
ERROR: 200: outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve_15eaefa7f(3, outColor.rgb.g);
ERROR: 201: outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve_15eaefa7f(3, outColor.rgb.b);
ERROR: 202: outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve_15eaefa7f(0, outColor.rgb.r);
ERROR: 203: outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve_15eaefa7f(1, outColor.rgb.g);
ERROR: 204: outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve_15eaefa7f(2, outColor.rgb.b);
ERROR: 205: }
ERROR: 206:
ERROR: 207:
ERROR: 208:
ERROR: 209: {
ERROR: 210: outColor.rgb = pow( vec3(10., 10., 10.), outColor.rgb);
ERROR: 211: }
ERROR: 212:
ERROR: 213:
ERROR: 214:
ERROR: 215: {
ERROR: 216: vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);
ERROR: 217: vec4 tmp = res;
ERROR: 218: res = mat4(1.0303238034676969, -0.011342863198969676, -0.011342863198969676, 0., -0.028086740241694757, 1.0135799264249721, -0.028086740241694753, 0., -0.0022370632250022365, -0.002237063225002237, 1.0394296034416644, 0., 0., 0., 0., 1.) * tmp;
ERROR: 219: outColor.rgb = vec3(res.x, res.y, res.z);
ERROR: 220: outColor.a = res.w;
ERROR: 221: }
ERROR: 222:
ERROR: 223:
ERROR: 224:
ERROR: 225: {
ERROR: 226: outColor.rgb = max(vec3(0., 0., 0.), outColor.rgb);
ERROR: 227: }
ERROR: 228:
ERROR: 229:
ERROR: 230:
ERROR: 231: {
ERROR: 232: vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);
ERROR: 233: vec4 tmp = res;
ERROR: 234: res = mat4(0.69545224135745176, 0.044794563372037632, -0.0055258825581135443, 0., 0.14067869647029416, 0.85967111845642163, 0.0040252103059786586, 0., 0.16386906217225403, 0.095534318171540358, 1.0015006722521349, 0., 0., 0., 0., 1.) * tmp;
ERROR: 235: outColor.rgb = vec3(res.x, res.y, res.z);
ERROR: 236: outColor.a = res.w;
ERROR: 237: }
ERROR: 238:
ERROR: 239:
ERROR: 240:
ERROR: 241: {
ERROR: 242: outColor.rgb = max(vec3(0., 0., 0.), outColor.rgb);
ERROR: 243: }
ERROR: 244:
ERROR: 245:
ERROR: 246:
ERROR: 247: {
ERROR: 248: float a = 2.0 * outColor.rgb.r - (outColor.rgb.g + outColor.rgb.b);
ERROR: 249: float b = 1.7320508075688772 * (outColor.rgb.g - outColor.rgb.b);
ERROR: 250: float hue = atan(b, a);
ERROR: 251: float knot_coord = clamp(2. + hue * float(1.6976527), 0., 4.);
ERROR: 252: int j = int(min(knot_coord, 3.));
ERROR: 253: float t = knot_coord - float(j);
ERROR: 254: vec4 monomials = vec4(t*t*t, t*t, t, 1.);
ERROR: 255: vec4 m0 = vec4(0.25, 0., 0., 0.);
ERROR: 256: vec4 m1 = vec4(-0.75, 0.75, 0.75, 0.25);
ERROR: 257: vec4 m2 = vec4(0.75, -1.5, 0., 1.);
ERROR: 258: vec4 m3 = vec4(-0.25, 0.75, -0.75, 0.25);
ERROR: 259: vec4 coefs = mix(m0, m1, float(j == 1));
ERROR: 260: coefs = mix(coefs, m2, float(j == 2));
ERROR: 261: coefs = mix(coefs, m3, float(j == 3));
ERROR: 262: float f_H = dot(coefs, monomials);
ERROR: 263: if (f_H > 0.)
ERROR: 264: {
ERROR: 265: float minval = min( outColor.rgb.g, outColor.rgb.b);
ERROR: 266: float ka = f_H * 0.180000007 - 1.;
ERROR: 267: float kb = outColor.rgb.r - f_H * (0.0299999993 + minval) * 0.180000007;
ERROR: 268: float kc = f_H * 0.0299999993 * minval * 0.180000007;
ERROR: 269: outColor.rgb.r = ( -kb - sqrt( kb * kb - 4. * ka * kc)) / ( 2. * ka);
ERROR: 270: }
ERROR: 271: }
ERROR: 272:
ERROR: 273:
ERROR: 274:
ERROR: 275: {
ERROR: 276: float chroma = sqrt( outColor.rgb.b * (outColor.rgb.b - outColor.rgb.g) + outColor.rgb.g * (outColor.rgb.g - outColor.rgb.r) + outColor.rgb.r * (outColor.rgb.r - outColor.rgb.b) );
ERROR: 277: float YC = (outColor.rgb.b + outColor.rgb.g + outColor.rgb.r + 1.75 * chroma) / 3.;
ERROR: 278: float maxval = max( outColor.rgb.r, max( outColor.rgb.g, outColor.rgb.b));
ERROR: 279: float minval = min( outColor.rgb.r, min( outColor.rgb.g, outColor.rgb.b));
ERROR: 280: float sat = ( max(1e-10, maxval) - max(1e-10, minval) ) / max(1e-2, maxval);
ERROR: 281: float x = (sat - 0.4) * 5.;
ERROR: 282: float t = max( 0., 1. - 0.5 * abs(x));
ERROR: 283: float s = 0.5 * (1. + sign(x) * (1. - t * t));
ERROR: 284: float GlowGain = 0.0500000007 * s;
ERROR: 285: float GlowMid = 0.0799999982;
ERROR: 286: float glowGainOut = mix(-GlowGain / (1. + GlowGain), GlowGain * (GlowMid / YC - 0.5) / (GlowGain * 0.5 - 1.), float( YC > (1. + GlowGain) * GlowMid * 2. / 3. ));
ERROR: 287: glowGainOut = mix(glowGainOut, 0., float( YC > GlowMid * 2. ));
ERROR: 288: outColor.rgb = outColor.rgb * glowGainOut + outColor.rgb;
ERROR: 289: }
ERROR: 290:
ERROR: 291:
ERROR: 292:
ERROR: 293: {
ERROR: 294: vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);
ERROR: 295: vec4 tmp = res;
ERROR: 296: res = mat4(1.4514393161456651, -0.076553773396020569, 0.008316148425697719, 0., -0.23651074689374021, 1.1762296998335731, -0.0060324497910210278, 0., -0.2149285692519253, -0.099675926437552229, 0.99771630136532341, 0., 0., 0., 0., 1.) * tmp;
ERROR: 297: outColor.rgb = vec3(res.x, res.y, res.z);
ERROR: 298: outColor.a = res.w;
ERROR: 299: }
ERROR: 300:
ERROR: 301: return outColor;
ERROR: 302: }
ERROR: 303:
ERROR: //
ERROR: // FUNCTION: SourceBGRA
ERROR: //
ERROR: 1:
ERROR: 2:
ERROR: 3:
ERROR: 4:
ERROR: 5:
ERROR: 6:
ERROR: 7:
ERROR: 8:
ERROR: 9:
ERROR: 10:
ERROR: 11:
ERROR: 12:
ERROR: 13:
ERROR: 14:
ERROR: 15:
ERROR: 16:
ERROR: 17:
ERROR: 18:
ERROR: 19:
ERROR: 20:
ERROR: 21: vec4 SourceBGRA250d5436 (const in sampler2DRect RGBA_sampler, const in vec2 ST, const in vec2 offset, const in vec2 RGBA_samplerSize, const in float orientation)
ERROR: 22: {
ERROR: 23: vec2 t = ST + offset;
ERROR: 24: if (t.x = RGBA_samplerSize.x || t.y >= RGBA_samplerSize.y)
ERROR: 25: return vec4(0.0);
ERROR: 26:
ERROR: 27: if (orientation == 1.0)
ERROR: 28: {
ERROR: 29: t.y = RGBA_samplerSize.y - t.y;
ERROR: 30: }
ERROR: 31: else if (orientation == 2.0)
ERROR: 32: {
ERROR: 33: t.x = RGBA_samplerSize.x - t.x;
ERROR: 34: }
ERROR: 35: else if (orientation == 3.0)
ERROR: 36: {
ERROR: 37: t.x = RGBA_samplerSize.x - t.x;
ERROR: 38: t.y = RGBA_samplerSize.y - t.y;
ERROR: 39: }
ERROR: 40:
ERROR: 41: return texture(RGBA_sampler, t).bgra;
ERROR: 42: }
ERROR: 43:
ERROR: 44:
ERROR: //
ERROR: // PROGRAM:
ERROR: //
ERROR: 1: uniform float orientation_1;
ERROR: 2: uniform vec2 samplerSize_1;
ERROR: 3: uniform sampler2DRect RGBA_sampler_1;
ERROR: 4: in vec2 TexCoord0;
ERROR: 5: out vec4 FragColor;
ERROR: 6: vec4 OCIO_d_Rec_1886_Rec_709_Display_ACES_1_0_SDR_Video_displayGroup0_colorPipeline_0_a70bdbda61d952ca3d1ac249(in vec4);
ERROR: 7: vec4 OCIO_c_Output_ACES_1_0_SDR_Video_Rec_1886_Rec_709_2_ACEScg_sourceGroup000000_tolinPipeline_0_62236c128fa3023c5eaefa7f(in vec4);
ERROR: 8: vec4 SourceBGRA250d5436(const in sampler2DRect, const in vec2, const in vec2, const in vec2, const in float);
ERROR: 9:
ERROR: 10: vec4 ResizeDownSampleDerivativeb6a2019f_0(const in vec2);
ERROR: 11:
ERROR: 12: vec4 _samplerExpr1 (const in vec2 _offset)
ERROR: 13: {
ERROR: 14: return SourceBGRA250d5436(RGBA_sampler_1, TexCoord0.xy, _offset, samplerSize_1, orientation_1);
ERROR: 15: }
ERROR: 16:
ERROR: 17:
ERROR: 18:
ERROR: 19:
ERROR: 20:
ERROR: 21:
ERROR: 22: vec4 ResizeDownSampleDerivativeb6a2019f_0 (const in vec2 _offset)
ERROR: 23: {
ERROR: 24:
ERROR: 25: vec2 absDer = fwidth( TexCoord0.st );
ERROR: 26:
ERROR: 27:
ERROR: 28: float maxAbsDer = max( absDer.x, absDer.y );
ERROR: 29:
ERROR: 30:
ERROR: 31:
ERROR: 32:
ERROR: 33: int KERNEL_SIZE = int( maxAbsDer / 2.0 );
ERROR: 34:
ERROR: 35:
ERROR: 36:
ERROR: 37:
ERROR: 38:
ERROR: 39:
ERROR: 40:
ERROR: 41:
ERROR: 42:
ERROR: 43:
ERROR: 44:
ERROR: 45:
ERROR: 46:
ERROR: 47:
ERROR: 48:
ERROR: 49:
ERROR: 50:
ERROR: 51:
ERROR: 52:
ERROR: 53:
ERROR: 54:
ERROR: 55:
ERROR: 56: if ( KERNEL_SIZE ERROR: 57: {
ERROR: 58: KERNEL_SIZE = 0;
ERROR: 59: }
ERROR: 60: else if ( KERNEL_SIZE > 16 )
ERROR: 61: {
ERROR: 62: KERNEL_SIZE = 16;
ERROR: 63: }
ERROR: 64:
ERROR: 65:
ERROR: 66: vec4 averageColor=vec4(0.0,0.0,0.0,0.0);
ERROR: 67: for ( int x = -KERNEL_SIZE ; x ERROR: 68: {
ERROR: 69: for ( int y = -KERNEL_SIZE ; y ERROR: 70: {
ERROR: 71: averageColor+= _samplerExpr1(_offset + vec2 ( x , y ) );
ERROR: 72: }
ERROR: 73: }
ERROR: 74:
ERROR: 75:
ERROR: 76: float nbSamples = float( ( KERNEL_SIZE * 2 + 1 )* ( KERNEL_SIZE * 2 + 1 ) );
ERROR: 77: averageColor /= vec4(nbSamples);
ERROR: 78:
ERROR: 79: return averageColor;
ERROR: 80: }
ERROR: 81:
ERROR: 82:
ERROR: 83: void main ()
ERROR: 84: {
ERROR: 85: FragColor = OCIO_d_Rec_1886_Rec_709_Display_ACES_1_0_SDR_Video_displayGroup0_colorPipeline_0_a70bdbda61d952ca3d1ac249(OCIO_c_Output_ACES_1_0_SDR_Video_Rec_1886_Rec_709_2_ACEScg_sourceGroup000000_tolinPipeline_0_62236c128fa3023c5eaefa7f(ResizeDownSampleDerivativeb6a2019f_0(vec2(0.0, 0.0))));
ERROR: 86: }
ERROR: 87:
ERROR: compiling program:
ERROR: with functions: ResizeDownSampleDerivative OCIO_d_Rec_1886_Rec_709_Display_ACES_1_0_SDR_Video_displayGroup0_colorPipeline_0_a70bdbda61d952ca OCIO_c_Output_ACES_1_0_SDR_Video_Rec_1886_Rec_709_2_ACEScg_sourceGroup000000_tolinPipeline_0_62236c128fa3023c SourceBGRA
ERROR: Fragment info
ERROR: -------------
ERROR: 0(32) : error C1068: array index out of bounds
ERROR: 0(32) : error C1068: array index out of bounds
ERROR: 0(33) : error C1068: array index out of bounds
ERROR: 0(33) : error C1068: array index out of bounds
ERROR: 0(33) : error C1068: array index out of bounds
ERROR: 0(35) : error C1068: array index out of bounds
ERROR: 0(39) : error C1068: array index out of bounds
ERROR: 0(39) : error C1068: array index out of bounds
ERROR: 0(39) : error C1068: array index out of bounds
ERROR: 0(39) : error C1068: array index out of bounds
ERROR: 0(39) : error C1068: array index out of bounds
ERROR: 0(47) : error C1068: array index out of bounds
ERROR: 0(47) : error C1068: array index out of bounds
ERROR: 0(48) : error C1068: array index out of bounds
ERROR: 0(48) : error C1068: array index out of bounds
ERROR: 0(49) : error C1068: array index out of bounds
ERROR: 0(49) : error C1068: array index out of bounds
ERROR: 0(49) : error C1068: array index out of bounds
ERROR: 0(50) : error C1068: array index out of bounds
ERROR: 0(50) : error C1068: array index out of bounds
ERROR: 0(94) : error C1068: array index out of bounds
ERROR: 0(94) : error C1068: array index out of bounds
ERROR: 0(95) : error C1068: array index out of bounds
ERROR: 0(95) : error C1068: array index out of bounds
ERROR: 0(95) : error C1068: array index out of bounds
ERROR: 0(97) : error C1068: array index out of bounds
ERROR: 0(101) : error C1068: array index out of bounds
ERROR: 0(101) : error C1068: array index out of bounds
ERROR: 0(101) : error C1068: array index out of bounds
ERROR: 0(101) : error C1068: array index out of bounds
ERROR: 0(101) : error C1068: array index out of bounds
ERROR: 0(109) : error C1068: array index out of bounds
ERROR: 0(109) : error C1068: array index out of bounds
ERROR: 0(110) : error C1068: array index out of bounds
ERROR: 0(110) : error C1068: array index out of bounds
ERROR: 0(111) : error C1068: array index out of bounds
ERROR: 0(111) : error C1068: array index out of bounds
ERROR: 0(111) : error C1068: array index out of bounds
ERROR: 0(112) : error C1068: array index out of bounds
ERROR: 0(112) : error C1068: array index out of bounds
ERROR: failed to compile/select GL program: ERROR: failed to select the GL program
```

### Environment variables

_No response_

### Extra information

_No response_

### Code of Conduct

- [x] I agree to follow this project's Code of Conduct

Contributor guide

Open the contributing guide

Research direction

No source file or test is named. Start by reproducing the failure on Windows 11 with the supplied custom OCIO 2.1.0 ColorSpace, switching from sequence playback to the source directly, and inspect the reported shader log. Done means the source view renders without the GL program error or black output.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.