[Kde-imaging] [kipiplugins] [Bug 319882] Crash when stitching a panorama

Axel Krebs axel.krebs at t-online.de
Fri Jun 7 17:04:22 UTC 2013


https://bugs.kde.org/show_bug.cgi?id=319882

--- Comment #5 from Axel Krebs <axel.krebs at t-online.de> ---
To compare with digiKam/kipiplugin capabilities, I started HUGIN with the same
(both) pics: crash!

Bug-report from HUGIN:
===========================================================================
***************  Panorama makefile generated by Hugin       ***************
===========================================================================
System information
===========================================================================
Operating system: GNU/Linux
Release: 3.8.0-25-generic
Kernel version: #37-Ubuntu SMP Thu Jun 6 20:47:07 UTC 2013
Machine: x86_64
Disc usage
Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
/dev/sda1        19G    7,3G   11G   42% /
none            4,0K       0  4,0K    0% /sys/fs/cgroup
udev            3,9G    4,0K  3,9G    1% /dev
tmpfs           799M    1,2M  798M    1% /run
none            5,0M       0  5,0M    0% /run/lock
none            3,9G    1,2M  3,9G    1% /run/shm
none            100M     12K  100M    1% /run/user
/dev/sda2       181M     86M   87M   50% /boot
/dev/sdb1       1,8T    1,7T   54G   97% /data
/dev/sda4       895G    751G  100G   89% /home
/dev/sdi1        30G    5,2G   25G   18% /media/CORSAIR
/dev/sdh1       1,8T    1,6T  187G   90% /media/INTENSO_2TB
/dev/sdg1        91M    5,6M   80M    7%
/media/3cbb70ec-84cf-466c-ac1a-067aa63519f6
Memory usage
             total       used       free     shared    buffers     cached
Speicher:       7986       5394       2591          0        265       1495
-/+ Puffer/Zwischenspeicher:       3633       4352
Auslagerungsdatei:       3717          0       3717
===========================================================================
Output options
===========================================================================
Hugin Version: 2011.4.0.cf9be9344356
Project file: /tmp/huginpto_HqyXVG
Output prefix: DSC_0037-DSC_0038
Projection: Equirectangular (2)
Field of view: 24 x 106
Canvas dimensions: 4586 x 20255
Crop area: (601,16780) - (4314,20201)
Output exposure value: 13.01
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/ak/Downloads/QUADRO_Bilder/130530_TM/DSC_0037.JPG
Image 0: Size 5520x3680, Exposure: 12.98
Image 1: /home/ak/Downloads/QUADRO_Bilder/130530_TM/DSC_0038.JPG
Image 1: Size 5520x3680, Exposure: 13.03
===========================================================================
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 DSC_0037-DSC_0038 -i 0 /tmp/huginpto_HqyXVG
nona: using graphics card: nouveau Gallium 0.4 on NV98
destStart=[601, 16780]
destEnd=[4169, 20201]
destSize=[(3568, 3421)]
srcSize=[(5520, 3680)]
srcBuffer=0x2aaab6518010
srcAlphaBuffer=0
destBuffer=0x2aaab9f37010
destAlphaBuffer=0x2aaabc224010
destGLInternalFormat=GL_RGBA8
destGLFormat=GL_RGB
destGLType=GL_UNSIGNED_BYTE
srcGLInternalFormat=GL_RGBA8
srcGLFormat=GL_RGB
srcGLType=GL_UNSIGNED_BYTE
srcAlphaGLType=GL_BYTE
destAlphaGLType=GL_UNSIGNED_BYTE
warparound=0
needsAtanWorkaround=0
maxTextureSize=8192
Source chunks:
    [(0, 0) to (5520, 3680) = (5520x3680)]
Dest chunks:
    [(0, 0) to (1784, 1711) = (1784x1711)]
    [(1784, 0) to (3568, 1711) = (1784x1711)]
    [(0, 1711) to (1784, 3421) = (1784x1710)]
    [(1784, 1711) to (3568, 3421) = (1784x1710)]
Total GPU memory used: 276501856
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(2293.0000000000000000, 10127.500000000000000);

    // rotate_erect(34395.000000000000000, 269.34601504281783946)
    {
        src.s += 269.34601504281783946;
        float w = (abs(src.s) > 34395.000000000000000) ? 1.0 : 0.0;
        float n = (src.s < 0.0) ? 0.5 : -0.5;
        src.s += w * -68790.000000000000000 * ceil(src.s /
68790.000000000000000 + n);
    }

    // sphere_tp_erect(10948.268535291481385)
    {
        float phi = src.s / 10948.268535291481385;
        float theta = -src.t / 10948.268535291481385 + 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 = 10948.268535291481385 * atan2_safe(r, s * cos(phi));
        src = v * (theta / r);
    }

    // persp_sphere(10948.268535291481385)
    {
        mat3 m = mat3(6.1232339957367660359e-17, -0.71629207928719007548,
0.69780058551883850093,
                      1.0000000000000000000, 4.3860240107682970194e-17,
-4.2727962674939726463e-17,
                      0.0000000000000000000, 0.69780058551883850093,
0.71629207928719007548);
        float r = length(src);
        float theta = r / 10948.268535291481385;
        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 = 10948.268535291481385 * atan2_safe(r, u.p) / r;
        src = theta * u.st;
    }

    // rect_sphere_tp(10948.268535291481385)
    {
        float r = length(src);
        float theta = r / 10948.268535291481385;
        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.4705521652215638451, 1.4705521652215638451)
    src *= vec2(1.4705521652215638451, 1.4705521652215638451);

    // radial(0.97129638591855782526, 0.0000000000000000000,
0.028703614081442199030, 0.0000000000000000000, 1840.0000000000000000,
1000.0000000000000000)
    {
        float r = length(src) / 1840.0000000000000000;
        float scale = 1000.0; 
        if (r < 1000.0000000000000000) {
            scale = ((0.0000000000000000000 * r + 0.028703614081442199030) * r
+ 0.0000000000000000000) * r + 0.97129638591855782526;
        }
        src *= scale;
    }

    src += vec2(2759.5000000000000000, 1839.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 = 256.00000000000000000
    // pixelMax = 255.00000000000000000
    // destLutSize = 1024.0000000000000000
    // destExposure = 0.00012155526470237255378
    // srcExposure = 0.00012398333886234303380
    // whiteBalanceRed = 1.0000000000000000000
    // whiteBalanceBlue = 1.0000000000000000000
    p.rgb = p.rgb * 255.00000000000000000;
    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(2759.5000000000000000,
1839.5000000000000000);
        float radiusScale=0.00030146749794849404857;
        float radialVigCorrCoeff0 = 1.0000000000000000000;
        float radialVigCorrCoeff1 = 0.18668408896774799088;
        float radialVigCorrCoeff2 = -0.93686420389978897205;
        float radialVigCorrCoeff3 = 0.63815654815826194923;
        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(0.98041612540644407225,
0.98041612540644407225, 0.98041612540644407225);
    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.093
nona: Unsupported framebuffer format in:
/build/buildd/hugin-2011.4.0+dfsg/src/hugin_base/vigra_ext/ImageTransformsGPU.cpp:713
make: *** [DSC_0037-DSC_00380000.tif] Fehler 1

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Kde-imaging mailing list