Skip to content

Commit 4a5001e

Browse files
larochjdoug-walker
authored andcommitted
Fixes for Test 2: test_cpu
1 parent bf78019 commit 4a5001e

File tree

3 files changed

+38
-30
lines changed

3 files changed

+38
-30
lines changed

src/OpenColorIO/DynamicProperty.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,12 +225,12 @@ bool DynamicPropertyGradingRGBCurveImpl::getLocalBypass() const
225225

226226
int DynamicPropertyGradingRGBCurveImpl::getNumKnots() const
227227
{
228-
return static_cast<int>(m_knotsCoefs.m_knotsArray.size());
228+
return static_cast<int>(m_knotsCoefs.m_numKnots);
229229
}
230230

231231
int DynamicPropertyGradingRGBCurveImpl::getNumCoefs() const
232232
{
233-
return static_cast<int>(m_knotsCoefs.m_coefsArray.size());
233+
return static_cast<int>(m_knotsCoefs.m_numCoefs);
234234
}
235235

236236
const int * DynamicPropertyGradingRGBCurveImpl::getKnotsOffsetsArray() const

tests/cpu/GpuShader_tests.cpp

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1037,7 +1037,7 @@ constant constexpr static float ocio_grading_rgbcurve_knots_0[5] = {0., 0.333333
10371037
constant constexpr static int ocio_grading_rgbcurve_coefsOffsets_0[8] = {0, 12, -1, 0, -1, 0, -1, 0};
10381038
constant constexpr static float ocio_grading_rgbcurve_coefs_0[12] = {0.0982520878, 0.393008381, 0.347727984, 0.08693178, 0.934498608, 1., 1.13100278, 1.246912, 0., 0.322416425, 0.5, 0.698159397};
10391039
1040-
float ocio_grading_rgbcurve_evalBSplineCurve_0(int curveIdx, float x)
1040+
float ocio_grading_rgbcurve_evalBSplineCurve_0(int curveIdx, float x, float identity_x)
10411041
{
10421042
int knotsOffs = ocio_grading_rgbcurve_knotsOffsets_0[curveIdx * 2];
10431043
int knotsCnt = ocio_grading_rgbcurve_knotsOffsets_0[curveIdx * 2 + 1];
@@ -1046,7 +1046,7 @@ float ocio_grading_rgbcurve_evalBSplineCurve_0(int curveIdx, float x)
10461046
int coefsSets = coefsCnt / 3;
10471047
if (coefsSets == 0)
10481048
{
1049-
return x;
1049+
return identity_x;
10501050
}
10511051
float knStart = ocio_grading_rgbcurve_knots_0[knotsOffs];
10521052
float knEnd = ocio_grading_rgbcurve_knots_0[knotsOffs + knotsCnt - 1];
@@ -1092,12 +1092,12 @@ float4 OCIOMain(float4 inPixel)
10921092
// Add GradingRGBCurve 'log' forward processing
10931093
10941094
{
1095-
outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve_0(0, outColor.rgb.r);
1096-
outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve_0(1, outColor.rgb.g);
1097-
outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve_0(2, outColor.rgb.b);
1098-
outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve_0(3, outColor.rgb.r);
1099-
outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve_0(3, outColor.rgb.g);
1100-
outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve_0(3, outColor.rgb.b);
1095+
outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve_0(0, outColor.rgb.r, outColor.rgb.r);
1096+
outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve_0(1, outColor.rgb.g, outColor.rgb.g);
1097+
outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve_0(2, outColor.rgb.b, outColor.rgb.b);
1098+
outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve_0(3, outColor.rgb.r, outColor.rgb.r);
1099+
outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve_0(3, outColor.rgb.g, outColor.rgb.g);
1100+
outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve_0(3, outColor.rgb.b, outColor.rgb.b);
11011101
}
11021102
11031103
return outColor;
@@ -1143,11 +1143,11 @@ struct ocioOCIOMain
11431143
ocioOCIOMain(
11441144
constant int ocio_grading_rgbcurve_knotsOffsets[8]
11451145
, int ocio_grading_rgbcurve_knotsOffsets_count
1146-
, constant float ocio_grading_rgbcurve_knots[60]
1146+
, constant float ocio_grading_rgbcurve_knots[120]
11471147
, int ocio_grading_rgbcurve_knots_count
11481148
, constant int ocio_grading_rgbcurve_coefsOffsets[8]
11491149
, int ocio_grading_rgbcurve_coefsOffsets_count
1150-
, constant float ocio_grading_rgbcurve_coefs[180]
1150+
, constant float ocio_grading_rgbcurve_coefs[360]
11511151
, int ocio_grading_rgbcurve_coefs_count
11521152
, bool ocio_grading_rgbcurve_localBypass
11531153
)
@@ -1164,7 +1164,7 @@ ocioOCIOMain(
11641164
{
11651165
this->ocio_grading_rgbcurve_knots[i] = ocio_grading_rgbcurve_knots[i];
11661166
}
1167-
for(int i = ocio_grading_rgbcurve_knots_count; i < 60; ++i)
1167+
for(int i = ocio_grading_rgbcurve_knots_count; i < 120; ++i)
11681168
{
11691169
this->ocio_grading_rgbcurve_knots[i] = 0;
11701170
}
@@ -1180,7 +1180,7 @@ ocioOCIOMain(
11801180
{
11811181
this->ocio_grading_rgbcurve_coefs[i] = ocio_grading_rgbcurve_coefs[i];
11821182
}
1183-
for(int i = ocio_grading_rgbcurve_coefs_count; i < 180; ++i)
1183+
for(int i = ocio_grading_rgbcurve_coefs_count; i < 360; ++i)
11841184
{
11851185
this->ocio_grading_rgbcurve_coefs[i] = 0;
11861186
}
@@ -1191,15 +1191,15 @@ ocioOCIOMain(
11911191
// Declaration of all variables
11921192
11931193
int ocio_grading_rgbcurve_knotsOffsets[8];
1194-
float ocio_grading_rgbcurve_knots[60];
1194+
float ocio_grading_rgbcurve_knots[120];
11951195
int ocio_grading_rgbcurve_coefsOffsets[8];
1196-
float ocio_grading_rgbcurve_coefs[180];
1196+
float ocio_grading_rgbcurve_coefs[360];
11971197
bool ocio_grading_rgbcurve_localBypass;
11981198
11991199
// Declaration of all helper methods
12001200
12011201
1202-
float ocio_grading_rgbcurve_evalBSplineCurve(int curveIdx, float x)
1202+
float ocio_grading_rgbcurve_evalBSplineCurve(int curveIdx, float x, float identity_x)
12031203
{
12041204
int knotsOffs = ocio_grading_rgbcurve_knotsOffsets[curveIdx * 2];
12051205
int knotsCnt = ocio_grading_rgbcurve_knotsOffsets[curveIdx * 2 + 1];
@@ -1208,7 +1208,7 @@ float ocio_grading_rgbcurve_evalBSplineCurve(int curveIdx, float x)
12081208
int coefsSets = coefsCnt / 3;
12091209
if (coefsSets == 0)
12101210
{
1211-
return x;
1211+
return identity_x;
12121212
}
12131213
float knStart = ocio_grading_rgbcurve_knots[knotsOffs];
12141214
float knEnd = ocio_grading_rgbcurve_knots[knotsOffs + knotsCnt - 1];
@@ -1256,12 +1256,12 @@ float4 OCIOMain(float4 inPixel)
12561256
{
12571257
if (!ocio_grading_rgbcurve_localBypass)
12581258
{
1259-
outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve(0, outColor.rgb.r);
1260-
outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve(1, outColor.rgb.g);
1261-
outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve(2, outColor.rgb.b);
1262-
outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve(3, outColor.rgb.r);
1263-
outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve(3, outColor.rgb.g);
1264-
outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve(3, outColor.rgb.b);
1259+
outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve(0, outColor.rgb.r, outColor.rgb.r);
1260+
outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve(1, outColor.rgb.g, outColor.rgb.g);
1261+
outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve(2, outColor.rgb.b, outColor.rgb.b);
1262+
outColor.rgb.r = ocio_grading_rgbcurve_evalBSplineCurve(3, outColor.rgb.r, outColor.rgb.r);
1263+
outColor.rgb.g = ocio_grading_rgbcurve_evalBSplineCurve(3, outColor.rgb.g, outColor.rgb.g);
1264+
outColor.rgb.b = ocio_grading_rgbcurve_evalBSplineCurve(3, outColor.rgb.b, outColor.rgb.b);
12651265
}
12661266
}
12671267
@@ -1275,11 +1275,11 @@ float4 OCIOMain(float4 inPixel)
12751275
float4 OCIOMain(
12761276
constant int ocio_grading_rgbcurve_knotsOffsets[8]
12771277
, int ocio_grading_rgbcurve_knotsOffsets_count
1278-
, constant float ocio_grading_rgbcurve_knots[60]
1278+
, constant float ocio_grading_rgbcurve_knots[120]
12791279
, int ocio_grading_rgbcurve_knots_count
12801280
, constant int ocio_grading_rgbcurve_coefsOffsets[8]
12811281
, int ocio_grading_rgbcurve_coefsOffsets_count
1282-
, constant float ocio_grading_rgbcurve_coefs[180]
1282+
, constant float ocio_grading_rgbcurve_coefs[360]
12831283
, int ocio_grading_rgbcurve_coefs_count
12841284
, bool ocio_grading_rgbcurve_localBypass
12851285
, float4 inPixel)

tests/cpu/ops/gradingrgbcurve/GradingRGBCurve_tests.cpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,16 +111,24 @@ OCIO_ADD_TEST(GradingRGBCurve, curves)
111111
OCIO_ADD_TEST(GradingRGBCurve, max_ctrl_pnts)
112112
{
113113
auto curveR = OCIO::GradingBSplineCurve::Create({ { 0.f, 10.f },{ 2.f, 10.f },{ 3.f, 10.f },{ 5.f, 10.f },{ 6.f, 10.f },
114-
{ 8.f, 10.f },{ 9.f, 10.5f },{ 11.f, 15.f },{ 12.f, 50.f },{ 14.f, 60.f },{ 15.f, 85.f } });
114+
{ 8.f, 10.f },{ 9.f, 10.5f },{ 11.f, 15.f },{ 12.f, 50.f },{ 14.f, 60.f },{ 15.f, 85.f }, { 16.f, 86.f }, { 17.f, 87.f },
115+
{ 18.f, 88.f }, { 19.f, 89.f }, { 20.f, 90.f }, { 21.f, 91.f }, { 22.f, 92.f }, { 23.f, 93.f }, { 24.f, 94.f },
116+
{ 25.f, 95.f }, { 26.f, 96.f }, { 27.f, 97.f }, { 28.f, 98.f }, { 29.f, 99.f }, { 30.f, 100.f }});
115117

116118
auto curveG = OCIO::GradingBSplineCurve::Create({ { 0.f, 10.f },{ 2.f, 10.f },{ 3.f, 10.f },{ 5.f, 10.f },{ 6.f, 10.f },
117-
{ 8.f, 10.f },{ 9.f, 10.5f },{ 11.f, 15.f },{ 12.f, 50.f },{ 14.f, 60.f },{ 15.f, 85.f } });
119+
{ 8.f, 10.f },{ 9.f, 10.5f },{ 11.f, 15.f },{ 12.f, 50.f },{ 14.f, 60.f },{ 15.f, 85.f }, { 16.f, 86.f }, { 17.f, 87.f },
120+
{ 18.f, 88.f }, { 19.f, 89.f }, { 20.f, 90.f }, { 21.f, 91.f }, { 22.f, 92.f }, { 23.f, 93.f }, { 24.f, 94.f },
121+
{ 25.f, 95.f }, { 26.f, 96.f }, { 27.f, 97.f }, { 28.f, 98.f }, { 29.f, 99.f }, { 30.f, 100.f } });
118122

119123
auto curveB = OCIO::GradingBSplineCurve::Create({ { 0.f, 10.f },{ 2.f, 10.f },{ 3.f, 10.f },{ 5.f, 10.f },{ 6.f, 10.f },
120-
{ 8.f, 10.f },{ 9.f, 10.5f },{ 11.f, 15.f },{ 12.f, 50.f },{ 14.f, 60.f },{ 15.f, 85.f } });
124+
{ 8.f, 10.f },{ 9.f, 10.5f },{ 11.f, 15.f },{ 12.f, 50.f },{ 14.f, 60.f },{ 15.f, 85.f }, { 16.f, 86.f }, { 17.f, 87.f },
125+
{ 18.f, 88.f }, { 19.f, 89.f }, { 20.f, 90.f }, { 21.f, 91.f }, { 22.f, 92.f }, { 23.f, 93.f }, { 24.f, 94.f },
126+
{ 25.f, 95.f }, { 26.f, 96.f }, { 27.f, 97.f }, { 28.f, 98.f }, { 29.f, 99.f }, { 30.f, 100.f } });
121127

122128
auto curveM = OCIO::GradingBSplineCurve::Create({ { 0.f, 10.f },{ 2.f, 10.f },{ 3.f, 10.f },{ 5.f, 10.f },{ 6.f, 10.f },
123-
{ 8.f, 10.f },{ 9.f, 10.5f },{ 11.f, 15.f },{ 12.f, 50.f },{ 14.f, 60.f },{ 15.f, 85.f } });
129+
{ 8.f, 10.f },{ 9.f, 10.5f },{ 11.f, 15.f },{ 12.f, 50.f },{ 14.f, 60.f },{ 15.f, 85.f }, { 16.f, 86.f }, { 17.f, 87.f },
130+
{ 18.f, 88.f }, { 19.f, 89.f }, { 20.f, 90.f }, { 21.f, 91.f }, { 22.f, 92.f }, { 23.f, 93.f }, { 24.f, 94.f },
131+
{ 25.f, 95.f }, { 26.f, 96.f }, { 27.f, 97.f }, { 28.f, 98.f }, { 29.f, 99.f }, { 30.f, 100.f } });
124132

125133
auto rgbCurve = OCIO::GradingRGBCurve::Create(curveR, curveG, curveB, curveM);
126134
OCIO_REQUIRE_ASSERT(rgbCurve);

0 commit comments

Comments
 (0)