Skip to content

Commit 7cf3380

Browse files
committed
Vectors are now .rgba, not .xyzw
1 parent d9a152e commit 7cf3380

14 files changed

Lines changed: 1106 additions & 1000 deletions

Source/astcenc_averages_and_directions.cpp

Lines changed: 75 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -85,22 +85,22 @@ void compute_averages_and_directions_rgba(
8585
blk->data_a[iwt]);
8686
texel_datum = (texel_datum - average) * weight;
8787

88-
if (texel_datum.x > 0.0f)
88+
if (texel_datum.r > 0.0f)
8989
{
9090
sum_xp = sum_xp + texel_datum;
9191
}
9292

93-
if (texel_datum.y > 0.0f)
93+
if (texel_datum.g > 0.0f)
9494
{
9595
sum_yp = sum_yp + texel_datum;
9696
}
9797

98-
if (texel_datum.z > 0.0f)
98+
if (texel_datum.b > 0.0f)
9999
{
100100
sum_zp = sum_zp + texel_datum;
101101
}
102102

103-
if (texel_datum.w > 0.0f)
103+
if (texel_datum.a > 0.0f)
104104
{
105105
sum_wp = sum_wp + texel_datum;
106106
}
@@ -168,7 +168,7 @@ void compute_averages_and_directions_rgb(
168168

169169
float4 csf = color_scalefactors[partition];
170170
float3 average = base_sum * (1.0f / MAX(partition_weight, 1e-7f));
171-
averages[partition] = average * float3(csf.x, csf.y, csf.z);
171+
averages[partition] = average * float3(csf.r, csf.g, csf.b);
172172

173173
float3 sum_xp = float3(0.0f, 0.0f, 0.0f);
174174
float3 sum_yp = float3(0.0f, 0.0f, 0.0f);
@@ -183,17 +183,17 @@ void compute_averages_and_directions_rgb(
183183
blk->data_b[iwt]);
184184
texel_datum = (texel_datum - average) * weight;
185185

186-
if (texel_datum.x > 0.0f)
186+
if (texel_datum.r > 0.0f)
187187
{
188188
sum_xp = sum_xp + texel_datum;
189189
}
190190

191-
if (texel_datum.y > 0.0f)
191+
if (texel_datum.g > 0.0f)
192192
{
193193
sum_yp = sum_yp + texel_datum;
194194
}
195195

196-
if (texel_datum.z > 0.0f)
196+
if (texel_datum.b > 0.0f)
197197
{
198198
sum_zp = sum_zp + texel_datum;
199199
}
@@ -289,7 +289,7 @@ void compute_averages_and_directions_3_components(
289289
float3 csf = color_scalefactors[partition];
290290

291291
float3 average = base_sum * (1.0f / MAX(partition_weight, 1e-7f));
292-
averages[partition] = average * float3(csf.x, csf.y, csf.z);
292+
averages[partition] = average * float3(csf.r, csf.g, csf.b);
293293

294294
float3 sum_xp = float3(0.0f, 0.0f, 0.0f);
295295
float3 sum_yp = float3(0.0f, 0.0f, 0.0f);
@@ -304,17 +304,17 @@ void compute_averages_and_directions_3_components(
304304
data_vb[iwt]);
305305
texel_datum = (texel_datum - average) * weight;
306306

307-
if (texel_datum.x > 0.0f)
307+
if (texel_datum.r > 0.0f)
308308
{
309309
sum_xp = sum_xp + texel_datum;
310310
}
311311

312-
if (texel_datum.y > 0.0f)
312+
if (texel_datum.g > 0.0f)
313313
{
314314
sum_yp = sum_yp + texel_datum;
315315
}
316316

317-
if (texel_datum.z > 0.0f)
317+
if (texel_datum.b > 0.0f)
318318
{
319319
sum_zp = sum_zp + texel_datum;
320320
}
@@ -404,7 +404,7 @@ void compute_averages_and_directions_2_components(
404404
float2 csf = color_scalefactors[partition];
405405

406406
float2 average = base_sum * (1.0f / MAX(partition_weight, 1e-7f));
407-
averages[partition] = average * float2(csf.x, csf.y);
407+
averages[partition] = average * float2(csf.r, csf.g);
408408

409409
float2 sum_xp = float2(0.0f, 0.0f);
410410
float2 sum_yp = float2(0.0f, 0.0f);
@@ -416,12 +416,12 @@ void compute_averages_and_directions_2_components(
416416
float2 texel_datum = float2(data_vr[iwt], data_vg[iwt]);
417417
texel_datum = (texel_datum - average) * weight;
418418

419-
if (texel_datum.x > 0.0f)
419+
if (texel_datum.r > 0.0f)
420420
{
421421
sum_xp = sum_xp + texel_datum;
422422
}
423423

424-
if (texel_datum.y > 0.0f)
424+
if (texel_datum.g > 0.0f)
425425
{
426426
sum_yp = sum_yp + texel_datum;
427427
}
@@ -513,20 +513,20 @@ void compute_error_squared_rgba(
513513
samechroma_lowparam = MIN(samechroma_param, samechroma_lowparam);
514514
samechroma_highparam = MAX(samechroma_param, samechroma_highparam);
515515

516-
float4 separate_param = float4(dot(float3(dat.y, dat.z, dat.w), l_red.bs),
517-
dot(float3(dat.x, dat.z, dat.w), l_green.bs),
518-
dot(float3(dat.x, dat.y, dat.w), l_blue.bs),
519-
dot(float3(dat.x, dat.y, dat.z), l_alpha.bs));
516+
float4 separate_param = float4(dot(float3(dat.g, dat.b, dat.a), l_red.bs),
517+
dot(float3(dat.r, dat.b, dat.a), l_green.bs),
518+
dot(float3(dat.r, dat.g, dat.a), l_blue.bs),
519+
dot(float3(dat.r, dat.g, dat.b), l_alpha.bs));
520520

521-
separate_lowparam = float4(MIN(separate_param.x, separate_lowparam.x),
522-
MIN(separate_param.y, separate_lowparam.y),
523-
MIN(separate_param.z, separate_lowparam.z),
524-
MIN(separate_param.w, separate_lowparam.w));
521+
separate_lowparam = float4(MIN(separate_param.r, separate_lowparam.r),
522+
MIN(separate_param.g, separate_lowparam.g),
523+
MIN(separate_param.b, separate_lowparam.b),
524+
MIN(separate_param.a, separate_lowparam.a));
525525

526-
separate_highparam = float4(MAX(separate_param.x, separate_highparam.x),
527-
MAX(separate_param.y, separate_highparam.y),
528-
MAX(separate_param.z, separate_highparam.z),
529-
MAX(separate_param.w, separate_highparam.w));
526+
separate_highparam = float4(MAX(separate_param.r, separate_highparam.r),
527+
MAX(separate_param.g, separate_highparam.g),
528+
MAX(separate_param.b, separate_highparam.b),
529+
MAX(separate_param.a, separate_highparam.a));
530530

531531
float4 uncorr_dist = (l_uncorr.amod - dat) + (uncorr_param * l_uncorr.bis);
532532
uncorr_errorsum += dot(ews, uncorr_dist * uncorr_dist);
@@ -535,21 +535,21 @@ void compute_error_squared_rgba(
535535
(samechroma_param * l_samechroma.bis);
536536
samechroma_errorsum += dot(ews, samechroma_dist * samechroma_dist);
537537

538-
float3 red_dist = (l_red.amod - float3(dat.y, dat.z, dat.w)) +
539-
(separate_param.x * l_red.bis);
540-
red_errorsum += dot(float3(ews.y, ews.z, ews.w), red_dist * red_dist);
538+
float3 red_dist = (l_red.amod - float3(dat.g, dat.b, dat.a)) +
539+
(separate_param.r * l_red.bis);
540+
red_errorsum += dot(float3(ews.g, ews.b, ews.a), red_dist * red_dist);
541541

542-
float3 green_dist = (l_green.amod - float3(dat.x, dat.z, dat.w)) +
543-
(separate_param.y * l_green.bis);
544-
green_errorsum += dot(float3(ews.x, ews.z, ews.w), green_dist * green_dist);
542+
float3 green_dist = (l_green.amod - float3(dat.r, dat.b, dat.a)) +
543+
(separate_param.g * l_green.bis);
544+
green_errorsum += dot(float3(ews.r, ews.b, ews.a), green_dist * green_dist);
545545

546-
float3 blue_dist = (l_blue.amod - float3(dat.x, dat.y, dat.w)) +
547-
(separate_param.z * l_blue.bis);
548-
blue_errorsum += dot(float3(ews.x, ews.y, ews.w), blue_dist * blue_dist);
546+
float3 blue_dist = (l_blue.amod - float3(dat.r, dat.g, dat.a)) +
547+
(separate_param.b * l_blue.bis);
548+
blue_errorsum += dot(float3(ews.r, ews.g, ews.a), blue_dist * blue_dist);
549549

550-
float3 alpha_dist = (l_alpha.amod - float3(dat.x, dat.y, dat.z)) +
551-
(separate_param.w * l_alpha.bis);
552-
alpha_errorsum += dot(float3(ews.x, ews.y, ews.z), alpha_dist * alpha_dist);
550+
float3 alpha_dist = (l_alpha.amod - float3(dat.r, dat.g, dat.b)) +
551+
(separate_param.a * l_alpha.bis);
552+
alpha_errorsum += dot(float3(ews.r, ews.g, ews.b), alpha_dist * alpha_dist);
553553
}
554554
}
555555

@@ -568,24 +568,24 @@ void compute_error_squared_rgba(
568568
samechroma_linelen = 1e-7f;
569569
}
570570

571-
if (!(separate_linelen.x > 1e-7f))
571+
if (!(separate_linelen.r > 1e-7f))
572572
{
573-
separate_linelen.x = 1e-7f;
573+
separate_linelen.r = 1e-7f;
574574
}
575575

576-
if (!(separate_linelen.y > 1e-7f))
576+
if (!(separate_linelen.g > 1e-7f))
577577
{
578-
separate_linelen.y = 1e-7f;
578+
separate_linelen.g = 1e-7f;
579579
}
580580

581-
if (!(separate_linelen.z > 1e-7f))
581+
if (!(separate_linelen.b > 1e-7f))
582582
{
583-
separate_linelen.z = 1e-7f;
583+
separate_linelen.b = 1e-7f;
584584
}
585585

586-
if (!(separate_linelen.w > 1e-7f))
586+
if (!(separate_linelen.a > 1e-7f))
587587
{
588-
separate_linelen.w = 1e-7f;
588+
separate_linelen.a = 1e-7f;
589589
}
590590

591591
lengths_uncorr[partition] = uncorr_linelen;
@@ -656,9 +656,9 @@ void compute_error_squared_rgb(
656656
blk->data_g[iwt],
657657
blk->data_b[iwt]);
658658

659-
float3 ews = float3(ewb->error_weights[iwt].x,
660-
ewb->error_weights[iwt].y,
661-
ewb->error_weights[iwt].z);
659+
float3 ews = float3(ewb->error_weights[iwt].r,
660+
ewb->error_weights[iwt].g,
661+
ewb->error_weights[iwt].b);
662662

663663
float uncorr_param = dot(dat, l_uncorr.bs);
664664
uncorr_lowparam = MIN(uncorr_param, uncorr_lowparam);
@@ -668,17 +668,17 @@ void compute_error_squared_rgb(
668668
samechroma_lowparam = MIN(samechroma_param, samechroma_lowparam);
669669
samechroma_highparam = MAX(samechroma_param, samechroma_highparam);
670670

671-
float3 separate_param = float3(dot(float2(dat.y, dat.z), l_red.bs),
672-
dot(float2(dat.x, dat.z), l_green.bs),
673-
dot(float2(dat.x, dat.y), l_blue.bs));
671+
float3 separate_param = float3(dot(float2(dat.g, dat.b), l_red.bs),
672+
dot(float2(dat.r, dat.b), l_green.bs),
673+
dot(float2(dat.r, dat.g), l_blue.bs));
674674

675-
separate_lowparam = float3(MIN(separate_param.x, separate_lowparam.x),
676-
MIN(separate_param.y, separate_lowparam.y),
677-
MIN(separate_param.z, separate_lowparam.z));
675+
separate_lowparam = float3(MIN(separate_param.r, separate_lowparam.r),
676+
MIN(separate_param.g, separate_lowparam.g),
677+
MIN(separate_param.b, separate_lowparam.b));
678678

679-
separate_highparam = float3(MAX(separate_param.x, separate_highparam.x),
680-
MAX(separate_param.y, separate_highparam.y),
681-
MAX(separate_param.z, separate_highparam.z));
679+
separate_highparam = float3(MAX(separate_param.r, separate_highparam.r),
680+
MAX(separate_param.g, separate_highparam.g),
681+
MAX(separate_param.b, separate_highparam.b));
682682

683683
float3 uncorr_dist = (l_uncorr.amod - dat) +
684684
(uncorr_param * l_uncorr.bis);
@@ -688,17 +688,17 @@ void compute_error_squared_rgb(
688688
(samechroma_param * l_samechroma.bis);
689689
samechroma_errorsum += dot(ews, samechroma_dist * samechroma_dist);
690690

691-
float2 red_dist = (l_red.amod - float2(dat.y, dat.z)) +
692-
(separate_param.x * l_red.bis);
693-
red_errorsum += dot(float2(ews.y, ews.z), red_dist * red_dist);
691+
float2 red_dist = (l_red.amod - float2(dat.g, dat.b)) +
692+
(separate_param.r * l_red.bis);
693+
red_errorsum += dot(float2(ews.g, ews.b), red_dist * red_dist);
694694

695-
float2 green_dist = (l_green.amod - float2(dat.x, dat.z)) +
696-
(separate_param.y * l_green.bis);
697-
green_errorsum += dot(float2(ews.x, ews.z), green_dist * green_dist);
695+
float2 green_dist = (l_green.amod - float2(dat.r, dat.b)) +
696+
(separate_param.g * l_green.bis);
697+
green_errorsum += dot(float2(ews.r, ews.b), green_dist * green_dist);
698698

699-
float2 blue_dist = (l_blue.amod - float2(dat.x, dat.y)) +
700-
(separate_param.z * l_blue.bis);
701-
blue_errorsum += dot(float2(ews.x, ews.y), blue_dist * blue_dist);
699+
float2 blue_dist = (l_blue.amod - float2(dat.r, dat.g)) +
700+
(separate_param.b * l_blue.bis);
701+
blue_errorsum += dot(float2(ews.r, ews.g), blue_dist * blue_dist);
702702
}
703703
}
704704

@@ -717,19 +717,19 @@ void compute_error_squared_rgb(
717717
samechroma_linelen = 1e-7f;
718718
}
719719

720-
if (!(separate_linelen.x > 1e-7f))
720+
if (!(separate_linelen.r > 1e-7f))
721721
{
722-
separate_linelen.x = 1e-7f;
722+
separate_linelen.r = 1e-7f;
723723
}
724724

725-
if (!(separate_linelen.y > 1e-7f))
725+
if (!(separate_linelen.g > 1e-7f))
726726
{
727-
separate_linelen.y = 1e-7f;
727+
separate_linelen.g = 1e-7f;
728728
}
729729

730-
if (!(separate_linelen.z > 1e-7f))
730+
if (!(separate_linelen.b > 1e-7f))
731731
{
732-
separate_linelen.z = 1e-7f;
732+
separate_linelen.b = 1e-7f;
733733
}
734734

735735
lengths_uncorr[partition] = uncorr_linelen;
@@ -772,7 +772,7 @@ float compute_error_squared_rgb_single_partition(
772772
float3 rp1 = lin->amod + param * lin->bis;
773773
float3 dist = rp1 - point;
774774
float4 ews = ewb->error_weights[i];
775-
float3 ews3 = float3(ews.x, ews.y, ews.z);
775+
float3 ews3 = float3(ews.r, ews.g, ews.b);
776776
errorsum += dot(ews3, dist * dist);
777777
}
778778

0 commit comments

Comments
 (0)