hugin-devs team mailing list archive
-
hugin-devs team
-
Mailing list archive
-
Message #06175
[Bug 1322695] Re: Hugin won't create a panorama with "Use GPU for remapping" checked.
I confirm the fix fixes this issue on Win 7 64bit / Intel GMA card with
64bit build of Hugin 2016.0. Thanks!
--
You received this bug notification because you are a member of Hugin
Developers, which is subscribed to Hugin.
https://bugs.launchpad.net/bugs/1322695
Title:
Hugin won't create a panorama with "Use GPU for remapping" checked.
Status in Hugin:
Fix Released
Bug description:
I've got a SandyBridge i7, no external graphics card.
Hugin supplied with xubuntu 14.04.
===========================================================================
*************** Panorama makefile generated by Hugin ***************
===========================================================================
System information
===========================================================================
Operating system: GNU/Linux
Release: 3.13.0-24-generic
Kernel version: #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014
Machine: x86_64
Disc usage
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 94G 5.0G 84G 6% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 3.8G 4.0K 3.8G 1% /dev
tmpfs 771M 1.4M 769M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 3.8G 808K 3.8G 1% /run/shm
none 100M 48K 100M 1% /run/user
/dev/sda1 180M 36M 132M 22% /boot
/dev/sda4 816G 436G 339G 57% /home
total used free shared buffers cached
Mem: 7701 6183 1518 342 67 2464
-/+ buffers/cache: 3650 4050
Swap: 7812 56 7756
===========================================================================
Output options
===========================================================================
Hugin Version: 2013.0.0.4692917e7a55
Project file: /tmp/huginpto_N2njr0
Output prefix: IMG_8429-1 - IMG_8430-1
Projection: Equirectangular (2)
Field of view: 74 x 74
Canvas dimensions: 4098 x 4098
Crop area: (88,168) - (4027,3132)
Output exposure value: 11.39
Output stacks minimum overlap: 0.700
Output layers maximum Ev difference: 0.50
Selected outputs
Normal panorama
* Blended panorama
Using GPU for remapping
===========================================================================
Input images
===========================================================================
Number of images in project file: 2
Number of active images: 2
Image 0: /home/ian/Pictures/2014-05-10 Boat Trip Leeds Liverpool/2014-05-12 Wigan Flight Down Wigam Pier/converted/IMG_8429-1.tif
Image 0: Size 2848x4282, Exposure: 11.40
Image 1: /home/ian/Pictures/2014-05-10 Boat Trip Leeds Liverpool/2014-05-12 Wigan Flight Down Wigam Pier/converted/IMG_8430-1.tif
Image 1: Size 2848x4282, Exposure: 11.39
===========================================================================
Testing programs
===========================================================================
Checking nona...[OK]
Checking enblend...[OK]
Checking enfuse...[OK]
Checking hugin_hdrmerge...[OK]
Checking exiftool...[OK]
===========================================================================
Stitching panorama
===========================================================================
nona -g -z LZW -r ldr -m TIFF_m -o IMG_8429-1\ -\ IMG_8430-1 -i 0 /tmp/huginpto_N2njr0
nona: using graphics card: Intel Open Source Technology Center Mesa DRI Intel(R) Sandybridge Desktop
destStart=[88, 168]
destEnd=[2664, 3132]
destSize=[(2576, 2964)]
srcSize=[(2848, 4282)]
srcBuffer=0x2b1c5c686010
srcAlphaBuffer=0
destBuffer=0x2b1c60c4e010
destAlphaBuffer=0x2b1c637ff010
destGLInternalFormat=GL_RGBA16
destGLFormat=GL_RGB
destGLType=GL_UNSIGNED_SHORT
srcGLInternalFormat=GL_RGBA16
srcGLFormat=GL_RGB
srcGLType=GL_UNSIGNED_SHORT
srcAlphaGLType=GL_BYTE
destAlphaGLType=GL_UNSIGNED_BYTE
warparound=0
needsAtanWorkaround=0
maxTextureSize=8192
Source chunks:
[(0, 0) to (2848, 4282) = (2848x4282)]
Dest chunks:
[(0, 0) to (1288, 1482) = (1288x1482)]
[(1288, 0) to (2576, 1482) = (1288x1482)]
[(0, 1482) to (1288, 2964) = (1288x1482)]
[(1288, 1482) to (2576, 2964) = (1288x1482)]
Total GPU memory used: 260446256
Interpolator chunks:
[(0, 0) to (4, 4) = (4x4)]
#version 110
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect SrcTexture;
float sinh(in float x) { return (exp(x) - exp(-x)) / 2.0; }
float cosh(in float x) { return (exp(x) + exp(-x)) / 2.0; }
float atan2_xge0(const in float y, const in float x) {
return atan(y, x);
}
float atan2_safe(const in float y, const in float x) {
return atan(y, x);
}
float atan_safe(const in float yx) {
return atan(yx);
}
void main(void)
{
float discardA = 1.0;
float discardB = 0.0;
vec2 src = gl_TexCoord[0].st;
src -= vec2(2049.0000000000000000, 2049.0000000000000000);
// rotate_erect(9968.1081081081083539, 734.44677103224705661)
{
src.s += 734.44677103224705661;
float w = (abs(src.s) > 9968.1081081081083539) ? 1.0 : 0.0;
float n = (src.s < 0.0) ? 0.5 : -0.5;
src.s += w * -19936.216216216216708 * ceil(src.s / 19936.216216216216708 + n);
}
// sphere_tp_erect(3172.9473573596128517)
{
float phi = src.s / 3172.9473573596128517;
float theta = -src.t / 3172.9473573596128517 + 1.5707963267948965580;
if (theta < 0.0) {
theta = -theta;
phi += 3.1415926535897931160;
}
if (theta > 3.1415926535897931160) {
theta = 3.1415926535897931160 - (theta - 3.1415926535897931160);
phi += 3.1415926535897931160;
}
float s = sin(theta);
vec2 v = vec2(s * sin(phi), cos(theta));
float r = length(v);
theta = 3172.9473573596128517 * atan2_safe(r, s * cos(phi));
src = v * (theta / r);
}
// persp_sphere(3172.9473573596128517)
{
mat3 m = mat3(1.0000000000000000000, 8.3266726846886789836e-17, 6.1716875719902952767e-18,
-8.3495134752153772000e-17, 0.99726441659211662039, 0.073916732876835020138,
0.0000000000000000000, -0.073916732876835020138, 0.99726441659211662039);
float r = length(src);
float theta = r / 3172.9473573596128517;
float s = 0.0;
if (r != 0.0) s = sin(theta) / r;
vec3 v = vec3(s * src.s, s * src.t, cos(theta));
vec3 u = v * m;
r = length(u.st);
theta = 0.0;
if (r != 0.0) theta = 3172.9473573596128517 * atan2_safe(r, u.p) / r;
src = theta * u.st;
}
// rect_sphere_tp(3172.9473573596128517)
{
float r = length(src);
float theta = r / 3172.9473573596128517;
float rho = 0.0;
if (theta >= 1.5707963267948965580) rho = 1.6e16;
else if (theta == 0.0) rho = 1.0;
else rho = tan(theta) / theta;
src *= rho;
}
// resize(1.0270517266772629661, 1.0270517266772629661)
src *= vec2(1.0270517266772629661, 1.0270517266772629661);
// radial(0.97371777052458663437, 0.0000000000000000000, 0.026282229475413400321, 0.0000000000000000000, 1424.0000000000000000, 1000.0000000000000000)
{
float r = length(src) / 1424.0000000000000000;
float scale = 1000.0;
if (r < 1000.0000000000000000) {
scale = ((0.0000000000000000000 * r + 0.026282229475413400321) * r + 0.0000000000000000000) * r + 0.97371777052458663437;
}
src *= scale;
}
src += vec2(1423.5000000000000000, 2140.5000000000000000);
src = src * discardA + vec2(-1000.0, -1000.0) * discardB;
gl_FragColor = vec4(src.s, 0.0, 0.0, src.t);
}
#version 110
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect CoordTexture;
uniform sampler2DRect SrcTexture;
uniform sampler2DRect AccumTexture;
uniform vec2 SrcUL;
uniform vec2 SrcLR;
uniform vec2 KernelUL;
uniform vec2 KernelWH;
float w(const in float i, const in float f) {
float A = -0.75000000000000000000;
float c = abs(i - 1.0);
float m = (i > 1.0) ? -1.0 : 1.0;
float p = c + m * f;
if (i == 1.0 || i == 2.0) {
return (( A + 2.0 )*p - ( A + 3.0 ))*p*p + 1.0;
} else {
return (( A * p - 5.0 * A ) * p + 8.0 * A ) * p - 4.0 * A;
}
}
void main(void)
{
vec2 src = texture2DRect(CoordTexture, gl_TexCoord[0].st).sq;
vec4 accum = texture2DRect(AccumTexture, gl_TexCoord[0].st);
src -= SrcUL;
vec2 t = floor(src) + -0.50000000000000000000;
vec2 f = fract(src);
vec2 k = vec2(0.0, 0.0);
for (float ky = 0.0; ky < 4.0000000000000000000; ky += 1.0) {
k.t = ky + KernelUL.t;
float wy = w(k.t, f.t);
for (float kx = 0.0; kx < 4.0000000000000000000; kx += 1.0) {
k.s = kx + KernelUL.s;
float wx = w(k.s, f.s);
vec2 ix = t + k;
vec4 sp = texture2DRect(SrcTexture, ix);
float weight = wx * wy * sp.a;
accum += sp * weight;
}
}
gl_FragColor = accum;
}
#version 120
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect NormTexture;
uniform sampler2DRect CoordTexture;
uniform sampler2DRect InvLutTexture;
uniform sampler2DRect DestLutTexture;
void main(void)
{
// Normalization
vec4 n = texture2DRect(NormTexture, gl_TexCoord[0].st);
vec4 p = vec4(0.0, 0.0, 0.0, 0.0);
if (n.a >= 0.2) p = n / n.a;
// Photometric
// invLutSize = 1024.0000000000000000
// pixelMax = 65535.000000000000000
// destLutSize = 1024.0000000000000000
// destExposure = 0.00037251857878706234493
// srcExposure = 0.00037127799462741026227
// whiteBalanceRed = 1.0000000000000000000
// whiteBalanceBlue = 1.0000000000000000000
p.rgb = p.rgb * 1023.0000000000000000;
vec2 invR = texture2DRect(InvLutTexture, vec2(p.r, 0.0)).sq;
vec2 invG = texture2DRect(InvLutTexture, vec2(p.g, 0.0)).sq;
vec2 invB = texture2DRect(InvLutTexture, vec2(p.b, 0.0)).sq;
vec3 invX = vec3(invR.x, invG.x, invB.x);
vec3 invY = vec3(invR.y, invG.y, invB.y);
vec3 invA = fract(p.rgb);
p.rgb = mix(invX, invY, invA);
// VigCorrMode=VIGCORR_RADIAL
float vig = 1.0;
{
vec2 vigCorrCenter = vec2(1423.5000000000000000, 2140.5000000000000000);
float radiusScale=0.00038890617819337537208;
float radialVigCorrCoeff0 = 1.0000000000000000000;
float radialVigCorrCoeff1 = 0.016847625337309098809;
float radialVigCorrCoeff2 = 0.081252655071550994315;
float radialVigCorrCoeff3 = -0.059167709616513797233;
vec2 src = texture2DRect(CoordTexture, gl_TexCoord[0].st).sq;
vec2 d = src - vigCorrCenter;
d *= radiusScale;
vig = radialVigCorrCoeff0;
float r2 = dot(d, d);
float r = r2;
vig += radialVigCorrCoeff1 * r;
r *= r2;
vig += radialVigCorrCoeff2 * r;
r *= r2;
vig += radialVigCorrCoeff3 * r;
}
vec3 exposure_whitebalance = vec3(1.0033413888719611151, 1.0033413888719611151, 1.0033413888719611151);
p.rgb = (p.rgb * exposure_whitebalance) / vig;
p.rgb = p.rgb * 1023.0000000000000000;
vec2 destR = texture2DRect(DestLutTexture, vec2(p.r, 0.0)).sq;
vec2 destG = texture2DRect(DestLutTexture, vec2(p.g, 0.0)).sq;
vec2 destB = texture2DRect(DestLutTexture, vec2(p.b, 0.0)).sq;
vec3 destX = vec3(destR.x, destG.x, destB.x);
vec3 destY = vec3(destR.y, destG.y, destB.y);
vec3 destA = fract(p.rgb);
p.rgb = mix(destX, destY, destA);
gl_FragColor = p;
}
gpu shader program compile time = 0.028
nona: Unsupported framebuffer format in: /build/buildd/hugin-2013.0.0+dfsg/src/hugin_base/vigra_ext/ImageTransformsGPU.cpp:714
make: *** [IMG_8429-1 - IMG_8430-10000.tif] Error 1
To manage notifications about this bug go to:
https://bugs.launchpad.net/hugin/+bug/1322695/+subscriptions
References