Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
I
imagej-elphel
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
3
Issues
3
List
Board
Labels
Milestones
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Elphel
imagej-elphel
Commits
4478067f
Commit
4478067f
authored
Sep 30, 2018
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tweaking output to compare with GPU
parent
4c45ca5b
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
149 additions
and
11 deletions
+149
-11
ImageDtt.java
src/main/java/ImageDtt.java
+148
-10
TwoQuadCLT.java
src/main/java/TwoQuadCLT.java
+1
-1
No files found.
src/main/java/ImageDtt.java
View file @
4478067f
...
@@ -4662,7 +4662,7 @@ public class ImageDtt {
...
@@ -4662,7 +4662,7 @@ public class ImageDtt {
int
kernel_step
,
int
kernel_step
,
int
transform_size
,
int
transform_size
,
DttRad2
dtt
,
DttRad2
dtt
,
int
chn
,
int
chn
,
// color channel
double
centerX
,
// center of aberration-corrected (common model) tile, X
double
centerX
,
// center of aberration-corrected (common model) tile, X
double
centerY
,
//
double
centerY
,
//
int
debugLevel
,
int
debugLevel
,
...
@@ -4673,8 +4673,10 @@ public class ImageDtt {
...
@@ -4673,8 +4673,10 @@ public class ImageDtt {
{
{
// boolean debug_fpga = debugLevel < -9;
// boolean debug_fpga = debugLevel < -9;
boolean
debug_fpga
=
(
debugLevel
<
-
9
)
||
(
debugLevel
==
2
);
boolean
debug_fpga
=
(
debugLevel
<
-
9
);
// || (debugLevel == 2);
boolean
debug_gpu
=
(
debugLevel
==
2
);
if
(
debug_fpga
)
debugLevel
=
1
;
if
(
debug_fpga
)
debugLevel
=
1
;
if
(
debug_gpu
)
debugLevel
=
0
;
// 1; // skip too many images
boolean
use_kernels
=
(
clt_kernels
!=
null
)
&&
!
dbg_no_deconvolution
;
boolean
use_kernels
=
(
clt_kernels
!=
null
)
&&
!
dbg_no_deconvolution
;
boolean
bdebug0
=
debugLevel
>
0
;
boolean
bdebug0
=
debugLevel
>
0
;
...
@@ -4707,6 +4709,17 @@ public class ImageDtt {
...
@@ -4707,6 +4709,17 @@ public class ImageDtt {
// same with extra shift
// same with extra shift
px
=
centerX
-
transform_size
-
(
ce
.
data_x
+
ce
.
dxc_dx
*
kdx
+
ce
.
dxc_dy
*
kdy
)
;
// fractional left corner
px
=
centerX
-
transform_size
-
(
ce
.
data_x
+
ce
.
dxc_dx
*
kdx
+
ce
.
dxc_dy
*
kdy
)
;
// fractional left corner
py
=
centerY
-
transform_size
-
(
ce
.
data_y
+
ce
.
dyc_dx
*
kdx
+
ce
.
dyc_dy
*
kdy
)
;
// fractional top corner
py
=
centerY
-
transform_size
-
(
ce
.
data_y
+
ce
.
dyc_dx
*
kdx
+
ce
.
dyc_dy
*
kdy
)
;
// fractional top corner
if
(
debug_gpu
)
{
System
.
out
.
println
(
"========= Color channel "
+
chn
+
" ============="
);
System
.
out
.
println
(
"ce.data_x="
+
ce
.
data_x
+
", ce.data_y="
+
ce
.
data_y
);
System
.
out
.
println
(
"ce.center_x="
+
ce
.
center_x
+
", ce.center_y="
+
ce
.
center_y
);
System
.
out
.
println
(
"ce.dxc_dx="
+
ce
.
dxc_dx
+
", ce.dxc_dy="
+
ce
.
dxc_dy
);
System
.
out
.
println
(
"ce.dyc_dx="
+
ce
.
dyc_dx
+
", ce.dyc_dy="
+
ce
.
dyc_dy
);
System
.
out
.
println
(
"centerX="
+
centerX
+
", centerY="
+
centerY
);
System
.
out
.
println
(
"px="
+
px
+
", py="
+
py
);
System
.
out
.
println
(
"ktileX="
+
ktileX
+
", ktileY="
+
ktileY
);
System
.
out
.
println
(
"kdx="
+
kdx
+
", kdy="
+
kdy
);
}
}
else
{
}
else
{
// System.out.println("Skipping kernels!!!"); // Happens when using macro_mode, should not happen otherwise
// System.out.println("Skipping kernels!!!"); // Happens when using macro_mode, should not happen otherwise
}
}
...
@@ -4718,6 +4731,13 @@ public class ImageDtt {
...
@@ -4718,6 +4731,13 @@ public class ImageDtt {
int
ctile_top
=
(
int
)
-
Math
.
round
(-
py
);
int
ctile_top
=
(
int
)
-
Math
.
round
(-
py
);
residual_shift
[
0
]
=
-(
px
-
ctile_left
);
residual_shift
[
0
]
=
-(
px
-
ctile_left
);
residual_shift
[
1
]
=
-(
py
-
ctile_top
);
residual_shift
[
1
]
=
-(
py
-
ctile_top
);
if
(
debug_gpu
)
{
System
.
out
.
println
(
"ctile_left="
+
ctile_left
+
", ctile_top="
+
ctile_top
);
System
.
out
.
println
(
"residual_shift[0]="
+
residual_shift
[
0
]+
", residual_shift[1]="
+
residual_shift
[
1
]);
}
// 4. Verify the tile fits in image and use System.arraycopy(sym_conv, 0, tile_in, 0, n2*n2) to copy data to tile_in
// 4. Verify the tile fits in image and use System.arraycopy(sym_conv, 0, tile_in, 0, n2*n2) to copy data to tile_in
// if does not fit - extend by duplication? Or just use 0?
// if does not fit - extend by duplication? Or just use 0?
if
((
ctile_left
>=
0
)
&&
(
ctile_left
<
(
width
-
transform_size2
))
&&
if
((
ctile_left
>=
0
)
&&
(
ctile_left
<
(
width
-
transform_size2
))
&&
...
@@ -4738,6 +4758,17 @@ public class ImageDtt {
...
@@ -4738,6 +4758,17 @@ public class ImageDtt {
}
}
}
}
}
}
if
(
debug_gpu
)
{
System
.
out
.
println
(
"---Image tile for color="
+
chn
+
"---"
);
for
(
int
i
=
0
;
i
<
transform_size2
;
i
++)
{
for
(
int
j
=
0
;
j
<
transform_size2
;
j
++)
{
System
.
out
.
print
(
String
.
format
(
"%10.5f "
,
tile_in
[
transform_size2
*
i
+
j
]));
}
System
.
out
.
println
();
}
}
if
(
debug_fpga
){
// show extended tile, all colors
if
(
debug_fpga
){
// show extended tile, all colors
// //FPGA_TILE_SIZE
// //FPGA_TILE_SIZE
System
.
out
.
println
(
"\nFull Bayer fpga tile data"
);
System
.
out
.
println
(
"\nFull Bayer fpga tile data"
);
...
@@ -5000,12 +5031,24 @@ public class ImageDtt {
...
@@ -5000,12 +5031,24 @@ public class ImageDtt {
if
(!
debug_fpga
)
{
if
(!
debug_fpga
)
{
for
(
int
dct_mode
=
0
;
dct_mode
<
4
;
dct_mode
++)
{
for
(
int
dct_mode
=
0
;
dct_mode
<
4
;
dct_mode
++)
{
if
(
fold_coeff
!=
null
){
if
(
fold_coeff
!=
null
){
clt_tile
[
dct_mode
]
=
dtt
.
fold_tile
(
tile_in
,
transform_size
,
dct_mode
,
fold_coeff
);
// DCCT, DSCT, DCST, DSST
clt_tile
[
dct_mode
]
=
dtt
.
fold_tile
(
tile_in
,
transform_size
,
dct_mode
,
fold_coeff
);
// DCCT, DSCT, DCST, DSST
}
else
{
}
else
{
clt_tile
[
dct_mode
]
=
dtt
.
fold_tile
(
tile_in
,
transform_size
,
dct_mode
);
// DCCT, DSCT, DCST, DSST
clt_tile
[
dct_mode
]
=
dtt
.
fold_tile
(
tile_in
,
transform_size
,
dct_mode
);
// DCCT, DSCT, DCST, DSST
}
}
if
(
debug_gpu
)
{
System
.
out
.
println
(
"=== Image tile folded for color="
+
chn
+
", dct_mode="
+
dct_mode
+
" ==="
);
for
(
int
i
=
0
;
i
<
transform_size
;
i
++)
{
for
(
int
j
=
0
;
j
<
transform_size
;
j
++)
{
System
.
out
.
print
(
String
.
format
(
"%10.5f "
,
clt_tile
[
dct_mode
][
transform_size
*
i
+
j
]));
}
System
.
out
.
println
();
}
}
// clt_tile[dct_mode] = dtt.dttt_iv (clt_tile[dct_mode], dct_mode, transform_size);
// clt_tile[dct_mode] = dtt.dttt_iv (clt_tile[dct_mode], dct_mode, transform_size);
/*
/*
if (bdebug) {
if (bdebug) {
...
@@ -5023,12 +5066,19 @@ public class ImageDtt {
...
@@ -5023,12 +5066,19 @@ public class ImageDtt {
System.out.println("done debug");
System.out.println("done debug");
} else {
} else {
*/
*/
clt_tile
[
dct_mode
]
=
dtt
.
dttt_iv
(
clt_tile
[
dct_mode
],
dct_mode
,
transform_size
);
clt_tile
[
dct_mode
]
=
dtt
.
dttt_iv
(
clt_tile
[
dct_mode
],
dct_mode
,
transform_size
);
/*
/*
}
}
*/
*/
if
(
debug_gpu
)
{
System
.
out
.
println
(
"=== Image tile DTT converted for color="
+
chn
+
", dct_mode="
+
dct_mode
+
" ==="
);
for
(
int
i
=
0
;
i
<
transform_size
;
i
++)
{
for
(
int
j
=
0
;
j
<
transform_size
;
j
++)
{
System
.
out
.
print
(
String
.
format
(
"%10.5f "
,
clt_tile
[
dct_mode
][
transform_size
*
i
+
j
]));
}
System
.
out
.
println
();
}
}
}
}
}
}
...
@@ -5127,12 +5177,35 @@ public class ImageDtt {
...
@@ -5127,12 +5177,35 @@ public class ImageDtt {
// deconvolve with kernel
// deconvolve with kernel
if
(
use_kernels
)
{
if
(
use_kernels
)
{
double
[][]
ktile
=
clt_kernels
[
chn
][
ktileY
][
ktileX
];
double
[][]
ktile
=
clt_kernels
[
chn
][
ktileY
][
ktileX
];
if
(
debug_gpu
)
{
System
.
out
.
println
(
"=== kernel tile for color="
+
chn
+
" ==="
);
for
(
int
dct_mode
=
0
;
dct_mode
<
4
;
dct_mode
++)
{
System
.
out
.
println
(
"dct_mode="
+
dct_mode
);
for
(
int
i
=
0
;
i
<
transform_size
;
i
++)
{
for
(
int
j
=
0
;
j
<
transform_size
;
j
++)
{
System
.
out
.
print
(
String
.
format
(
"%10.5f "
,
ktile
[
dct_mode
][
transform_size
*
i
+
j
]));
}
System
.
out
.
println
();
}
}
}
convolve_tile
(
convolve_tile
(
clt_tile
,
// double [][] data, // array [transform_size*transform_size], will be updated DTT4 converted
clt_tile
,
// double [][] data, // array [transform_size*transform_size], will be updated DTT4 converted
ktile
,
// double [][] kernel, // array [4][transform_size*transform_size] DTT3 converted
ktile
,
// double [][] kernel, // array [4][transform_size*transform_size] DTT3 converted
transform_size
,
transform_size
,
bdebug
);
bdebug
);
// dbg_transpose);
if
(
debug_gpu
)
{
System
.
out
.
println
(
"=== convolved tile for color="
+
chn
+
" ==="
);
for
(
int
dct_mode
=
0
;
dct_mode
<
4
;
dct_mode
++)
{
System
.
out
.
println
(
"dct_mode="
+
dct_mode
);
for
(
int
i
=
0
;
i
<
transform_size
;
i
++)
{
for
(
int
j
=
0
;
j
<
transform_size
;
j
++)
{
System
.
out
.
print
(
String
.
format
(
"%10.5f "
,
clt_tile
[
dct_mode
][
transform_size
*
i
+
j
]));
}
System
.
out
.
println
();
}
}
}
}
}
if
(
bdebug
)
{
if
(
bdebug
)
{
showDoubleFloatArrays
sdfa_instance
=
new
showDoubleFloatArrays
();
// just for debugging?
showDoubleFloatArrays
sdfa_instance
=
new
showDoubleFloatArrays
();
// just for debugging?
...
@@ -5211,6 +5284,7 @@ public class ImageDtt {
...
@@ -5211,6 +5284,7 @@ public class ImageDtt {
double
shiftY
,
double
shiftY
,
boolean
bdebug
)
boolean
bdebug
)
{
{
boolean
debug_images
=
false
;
int
transform_len
=
transform_size
*
transform_size
;
int
transform_len
=
transform_size
*
transform_size
;
double
[]
cos_hor
=
new
double
[
transform_len
];
double
[]
cos_hor
=
new
double
[
transform_len
];
double
[]
sin_hor
=
new
double
[
transform_len
];
double
[]
sin_hor
=
new
double
[
transform_len
];
...
@@ -5230,7 +5304,38 @@ public class ImageDtt {
...
@@ -5230,7 +5304,38 @@ public class ImageDtt {
sin_vert
[
iv
]
=
sv
;
sin_vert
[
iv
]
=
sv
;
}
}
}
}
if
(
bdebug
){
if
(
bdebug
)
{
System
.
out
.
println
(
"cos_hor , shift_hor = "
+
shiftX
);
for
(
int
irow
=
0
;
irow
<
transform_size
;
irow
++)
{
for
(
int
jcol
=
0
;
jcol
<
transform_size
;
jcol
++)
{
System
.
out
.
print
(
String
.
format
(
"%10.5f "
,
cos_hor
[
transform_size
*
irow
+
jcol
]));
}
System
.
out
.
println
();
}
System
.
out
.
println
(
"\nsin_hor , shift_hor = "
+
shiftX
);
for
(
int
irow
=
0
;
irow
<
transform_size
;
irow
++)
{
for
(
int
jcol
=
0
;
jcol
<
transform_size
;
jcol
++)
{
System
.
out
.
print
(
String
.
format
(
"%10.5f "
,
sin_hor
[
transform_size
*
irow
+
jcol
]));
}
System
.
out
.
println
();
}
System
.
out
.
println
(
"cos_vert , shift_vert = "
+
shiftY
);
for
(
int
irow
=
0
;
irow
<
transform_size
;
irow
++)
{
for
(
int
jcol
=
0
;
jcol
<
transform_size
;
jcol
++)
{
System
.
out
.
print
(
String
.
format
(
"%10.5f "
,
cos_vert
[
transform_size
*
irow
+
jcol
]));
}
System
.
out
.
println
();
}
System
.
out
.
println
(
"\nsin_vert , shift_vert = "
+
shiftY
);
for
(
int
irow
=
0
;
irow
<
transform_size
;
irow
++)
{
for
(
int
jcol
=
0
;
jcol
<
transform_size
;
jcol
++)
{
System
.
out
.
print
(
String
.
format
(
"%10.5f "
,
sin_vert
[
transform_size
*
irow
+
jcol
]));
}
System
.
out
.
println
();
}
System
.
out
.
println
();
}
if
(
bdebug
&&
debug_images
){
showDoubleFloatArrays
sdfa_instance
=
new
showDoubleFloatArrays
();
// just for debugging?
showDoubleFloatArrays
sdfa_instance
=
new
showDoubleFloatArrays
();
// just for debugging?
String
[]
titles
=
{
"cos_hor"
,
"sin_hor"
,
"cos_vert"
,
"sin_vert"
};
String
[]
titles
=
{
"cos_hor"
,
"sin_hor"
,
"cos_vert"
,
"sin_vert"
};
double
[][]
cs_dbg
=
{
cos_hor
,
sin_hor
,
cos_vert
,
sin_vert
};
double
[][]
cs_dbg
=
{
cos_hor
,
sin_hor
,
cos_vert
,
sin_vert
};
...
@@ -5245,6 +5350,19 @@ public class ImageDtt {
...
@@ -5245,6 +5350,19 @@ public class ImageDtt {
tmp_tile
[
2
][
i
]
=
clt_tile
[
2
][
i
]
*
cos_hor
[
i
]
-
clt_tile
[
3
][
i
]
*
sin_hor
[
i
];
tmp_tile
[
2
][
i
]
=
clt_tile
[
2
][
i
]
*
cos_hor
[
i
]
-
clt_tile
[
3
][
i
]
*
sin_hor
[
i
];
tmp_tile
[
3
][
i
]
=
clt_tile
[
3
][
i
]
*
cos_hor
[
i
]
+
clt_tile
[
2
][
i
]
*
sin_hor
[
i
]
;
tmp_tile
[
3
][
i
]
=
clt_tile
[
3
][
i
]
*
cos_hor
[
i
]
+
clt_tile
[
2
][
i
]
*
sin_hor
[
i
]
;
}
}
if
(
bdebug
)
{
System
.
out
.
println
(
"---Shifted image tile horizontally, shift_hor = "
+
shiftX
);
for
(
int
dct_mode
=
0
;
dct_mode
<
4
;
dct_mode
++
)
{
System
.
out
.
println
(
"dct_mode="
+
dct_mode
);
for
(
int
irow
=
0
;
irow
<
transform_size
;
irow
++)
{
for
(
int
jcol
=
0
;
jcol
<
transform_size
;
jcol
++)
{
System
.
out
.
print
(
String
.
format
(
"%10.5f "
,
tmp_tile
[
dct_mode
][
transform_size
*
irow
+
jcol
]));
}
System
.
out
.
println
();
}
System
.
out
.
println
();
}
}
// Vertical shift (back to original array)
// Vertical shift (back to original array)
for
(
int
i
=
0
;
i
<
cos_hor
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
cos_hor
.
length
;
i
++)
{
clt_tile
[
0
][
i
]
=
tmp_tile
[
0
][
i
]
*
cos_vert
[
i
]
-
tmp_tile
[
2
][
i
]
*
sin_vert
[
i
];
clt_tile
[
0
][
i
]
=
tmp_tile
[
0
][
i
]
*
cos_vert
[
i
]
-
tmp_tile
[
2
][
i
]
*
sin_vert
[
i
];
...
@@ -7933,7 +8051,9 @@ public class ImageDtt {
...
@@ -7933,7 +8051,9 @@ public class ImageDtt {
chn
,
chn
,
centersXY_main
[
i
][
0
],
// centerX, // center of aberration-corrected (common model) tile, X
centersXY_main
[
i
][
0
],
// centerX, // center of aberration-corrected (common model) tile, X
centersXY_main
[
i
][
1
],
// centerY, //
centersXY_main
[
i
][
1
],
// centerY, //
// 0, // (globalDebugLevel > -2) && (tileX == debug_tileX) && (tileY == debug_tileY)? 2:0, // external tile compare
(
globalDebugLevel
>
-
2
)
&&
(
tileX
==
debug_tileX
)
&&
(
tileY
==
debug_tileY
)?
2
:
0
,
// external tile compare
(
globalDebugLevel
>
-
2
)
&&
(
tileX
==
debug_tileX
)
&&
(
tileY
==
debug_tileY
)?
2
:
0
,
// external tile compare
// (globalDebugLevel > -2) && (tileX == debug_tileX) && (tileY == debug_tileY) && (i == 0)? 2:0, // external tile compare
false
,
// no_deconvolution,
false
,
// no_deconvolution,
false
,
// ); // transpose);
false
,
// ); // transpose);
((
saturation_main
!=
null
)
?
saturation_main
[
i
]
:
null
),
//final boolean [][] saturation_imp, // (near) saturated pixels or null
((
saturation_main
!=
null
)
?
saturation_main
[
i
]
:
null
),
//final boolean [][] saturation_imp, // (near) saturated pixels or null
...
@@ -7990,15 +8110,33 @@ public class ImageDtt {
...
@@ -7990,15 +8110,33 @@ public class ImageDtt {
}
}
// apply residual shift
// apply residual shift
boolean
debug_gpu
=
(
globalDebugLevel
>
-
2
)
&&
(
tileX
==
debug_tileX
)
&&
(
tileY
==
debug_tileY
);
for
(
int
i
=
0
;
i
<
quad_main
;
i
++)
{
for
(
int
i
=
0
;
i
<
quad_main
;
i
++)
{
fract_shift
(
// fractional shift in transform domain. Currently uses sin/cos - change to tables with 2? rotations
fract_shift
(
// fractional shift in transform domain. Currently uses sin/cos - change to tables with 2? rotations
clt_data_main
[
i
][
chn
],
// double [][] clt_tile,
clt_data_main
[
i
][
chn
],
// double [][] clt_tile,
clt_parameters
.
transform_size
,
clt_parameters
.
transform_size
,
fract_shiftsXY_main
[
i
][
0
],
// double shiftX,
fract_shiftsXY_main
[
i
][
0
],
// double shiftX,
fract_shiftsXY_main
[
i
][
1
],
// double shiftY,
fract_shiftsXY_main
[
i
][
1
],
// double shiftY,
((
globalDebugLevel
>
1
)
&&
(
chn
==
0
)
&&
(
tileX
>=
debug_tileX
-
2
)
&&
(
tileX
<=
debug_tileX
+
2
)
&&
// ((globalDebugLevel > 1) && (chn==0) && (tileX >= debug_tileX - 2) && (tileX <= debug_tileX + 2) &&
(
tileY
>=
debug_tileY
-
2
)
&&
(
tileY
<=
debug_tileY
+
2
)));
// (tileY >= debug_tileY - 2) && (tileY <= debug_tileY+2))
false
//debug_gpu
);
// (globalDebugLevel > -2) && (tileX == debug_tileX) && (tileY == debug_tileY)? 2:0, // external tile compare
if
(
debug_gpu
)
{
System
.
out
.
println
(
"---Shifted image tile for quad="
+
i
+
" color="
+
chn
+
", shift_hor = "
+
fract_shiftsXY_main
[
i
][
0
]+
", shift_vert = "
+
fract_shiftsXY_main
[
i
][
1
]+
"---"
);
for
(
int
dct_mode
=
0
;
dct_mode
<
4
;
dct_mode
++
)
{
System
.
out
.
println
(
"dct_mode="
+
dct_mode
);
for
(
int
irow
=
0
;
irow
<
clt_parameters
.
transform_size
;
irow
++)
{
for
(
int
jcol
=
0
;
jcol
<
clt_parameters
.
transform_size
;
jcol
++)
{
System
.
out
.
print
(
String
.
format
(
"%10.5f "
,
clt_data_main
[
i
][
chn
][
dct_mode
][
clt_parameters
.
transform_size
*
irow
+
jcol
]));
}
System
.
out
.
println
();
}
System
.
out
.
println
();
}
}
}
}
for
(
int
i
=
0
;
i
<
quad_aux
;
i
++)
{
for
(
int
i
=
0
;
i
<
quad_aux
;
i
++)
{
fract_shift
(
// fractional shift in transform domain. Currently uses sin/cos - change to tables with 2? rotations
fract_shift
(
// fractional shift in transform domain. Currently uses sin/cos - change to tables with 2? rotations
clt_data_aux
[
i
][
chn
],
// double [][] clt_tile,
clt_data_aux
[
i
][
chn
],
// double [][] clt_tile,
...
...
src/main/java/TwoQuadCLT.java
View file @
4478067f
...
@@ -1261,7 +1261,7 @@ public class TwoQuadCLT {
...
@@ -1261,7 +1261,7 @@ public class TwoQuadCLT {
port_xy_main_dbg
,
// final double [][][] port_xy_main_dbg, // for each tile/port save x,y pixel coordinates (gpu code development)
port_xy_main_dbg
,
// final double [][][] port_xy_main_dbg, // for each tile/port save x,y pixel coordinates (gpu code development)
port_xy_aux_dbg
);
// final double [][][] port_xy_aux_dbg) // for each tile/port save x,y pixel coordinates (gpu code development)
port_xy_aux_dbg
);
// final double [][][] port_xy_aux_dbg) // for each tile/port save x,y pixel coordinates (gpu code development)
if
(
debugLevel
<
-
1000
)
{
if
(
debugLevel
<
1000
)
{
return
null
;
return
null
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment