Hugin won't create a panorama with "Use GPU for remapping" checked.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Hugin |
Fix Released
|
Undecided
|
Unassigned |
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.
Project file: /tmp/huginpto_
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/
Image 0: Size 2848x4282, Exposure: 11.40
Image 1: /home/ian/
Image 1: Size 2848x4282, Exposure: 11.39
=======
Testing programs
=======
Checking nona...[OK]
Checking enblend...[OK]
Checking enfuse...[OK]
Checking hugin_hdrmerge.
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_
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=
srcAlphaBuffer=0
destBuffer=
destAlphaBuffer
destGLInternalF
destGLFormat=GL_RGB
destGLType=
srcGLInternalFo
srcGLFormat=GL_RGB
srcGLType=
srcAlphaGLType=
destAlphaGLType
warparound=0
needsAtanWorkar
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_
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.
// rotate_
{
src.s += 734.44677103224
float w = (abs(src.s) > 9968.1081081081
float n = (src.s < 0.0) ? 0.5 : -0.5;
src.s += w * -19936.
}
// sphere_
{
float phi = src.s / 3172.9473573596
float theta = -src.t / 3172.9473573596
if (theta < 0.0) {
theta = -theta;
phi += 3.1415926535897
}
if (theta > 3.1415926535897
theta = 3.1415926535897
phi += 3.1415926535897
}
float s = sin(theta);
vec2 v = vec2(s * sin(phi), cos(theta));
float r = length(v);
theta = 3172.9473573596
src = v * (theta / r);
}
// persp_sphere(
{
mat3 m = mat3(1.
float r = length(src);
float theta = r / 3172.9473573596
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.9473573596
src = theta * u.st;
}
// rect_sphere_
{
float r = length(src);
float theta = r / 3172.9473573596
float rho = 0.0;
if (theta >= 1.5707963267948
else if (theta == 0.0) rho = 1.0;
else rho = tan(theta) / theta;
src *= rho;
}
// resize(
src *= vec2(1.
// radial(
{
float r = length(src) / 1424.0000000000
float scale = 1000.0;
if (r < 1000.0000000000
scale = ((0.00000000000
}
src *= scale;
}
src += vec2(1423.
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_
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.750000000000
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(
vec4 accum = texture2DRect(
src -= SrcUL;
vec2 t = floor(src) + -0.500000000000
vec2 f = fract(src);
vec2 k = vec2(0.0, 0.0);
for (float ky = 0.0; ky < 4.0000000000000
k.t = ky + KernelUL.t;
float wy = w(k.t, f.t);
for (float kx = 0.0; kx < 4.0000000000000
k.s = kx + KernelUL.s;
float wx = w(k.s, f.s);
vec2 ix = t + k;
vec4 sp = texture2DRect(
float weight = wx * wy * sp.a;
accum += sp * weight;
}
}
gl_FragColor = accum;
}
#version 120
#extension GL_ARB_
uniform sampler2DRect NormTexture;
uniform sampler2DRect CoordTexture;
uniform sampler2DRect InvLutTexture;
uniform sampler2DRect DestLutTexture;
void main(void)
{
// Normalization
vec4 n = texture2DRect(
vec4 p = vec4(0.0, 0.0, 0.0, 0.0);
if (n.a >= 0.2) p = n / n.a;
// Photometric
// invLutSize = 1024.0000000000
// pixelMax = 65535.000000000
// destLutSize = 1024.0000000000
// destExposure = 0.0003725185787
// srcExposure = 0.0003712779946
// whiteBalanceRed = 1.0000000000000
// whiteBalanceBlue = 1.0000000000000
p.rgb = p.rgb * 1023.0000000000
vec2 invR = texture2DRect(
vec2 invG = texture2DRect(
vec2 invB = texture2DRect(
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=
float vig = 1.0;
{
vec2 vigCorrCenter = vec2(1423.
float radiusScale=
float radialVigCorrCoeff0 = 1.0000000000000
float radialVigCorrCoeff1 = 0.0168476253373
float radialVigCorrCoeff2 = 0.0812526550715
float radialVigCorrCoeff3 = -0.059167709616
vec2 src = texture2DRect(
vec2 d = src - vigCorrCenter;
d *= radiusScale;
vig = radialVigCorrCo
float r2 = dot(d, d);
float r = r2;
vig += radialVigCorrCoeff1 * r;
r *= r2;
vig += radialVigCorrCoeff2 * r;
r *= r2;
vig += radialVigCorrCoeff3 * r;
}
vec3 exposure_
p.rgb = (p.rgb * exposure_
p.rgb = p.rgb * 1023.0000000000
vec2 destR = texture2DRect(
vec2 destG = texture2DRect(
vec2 destB = texture2DRect(
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/
make: *** [IMG_8429-1 - IMG_8430-10000.tif] Error 1
Changed in hugin: | |
milestone: | none → 2016.0beta1 |
status: | Fix Committed → Fix Released |
Note to self: Read the FAQ _before_ filling up the bug database.
http:// http:// wiki.panotools. org/Hugin_ FAQ#GPU- stitching_ .28nona. 29
says that only nVidea & AMD graphics cards are supported.
Devs, is it worth adding some code so that the option is greyed out if hugin does not detect an nVidea or AMD chip?
PS. My version is 2013.0. 0.4692917e7a55