[Bug 213732] lang/beignet: crashes with some OpenCL apps

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sun Oct 23 16:12:47 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=213732

            Bug ID: 213732
           Summary: lang/beignet: crashes with some OpenCL apps
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Keywords: needs-qa
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: x11 at FreeBSD.org
          Reporter: jbeich at FreeBSD.org
                CC: mmacy at nextbsd.org
          Assignee: x11 at FreeBSD.org
             Flags: maintainer-feedback?(x11 at FreeBSD.org)

I'm using drm-next-4.7 (rebased) + xserver-next. Either Beignet or drm-next-4.7
appears to have partially broken OpenCL implementation. Not sure if the issue
affects the main tree but filing here for better visibility.

Let's prepare

  $ pkg install -qy beignet pocl waifu2x-converter-cpp ffmpeg
  $ fetch
https://github.com/nagadomi/waifu2x/raw/master/images/miku_CC_BY-NC_noisy.jpg
  $ fetch
http://demo-uhd3d.com/files/uhd4k/Samsung_UHD_7Wonders_of_the_World_Italy.ts


clinfo is a bit too verbose, here's what a typical app only cares about.

  $ waifu2x-converter-cpp --list-processor
     0: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz     (FMA       ): num_core=8
     1: Intel(R) HD Graphics Skylake Desktop GT2     (OpenCL    ): num_core=24
     2: pthread                                      (OpenCL    ): num_core=8
  Nothing to output !

or from under linuxulator

  $ waifu2x-converter-cpp --list-processor
     0: GeForce GT 640                               (CUDA      ): num_core=2
     1: GeForce GT 640                               (OpenCL    ): num_core=2
     2: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz     (FMA       ): num_core=8

POCL is good to check OpenCL on FreeBSD isn't broken elsewhere.

  $ waifu2x-converter-cpp --processor 2 -i miku_CC_BY-NC_noisy.jpg
  OpenCL: pthread
  start process block (0,0) ...
  Iteration #1(3->32)...(50.0566[ms], 9.04946[GFLOPS], 0.733174[GB/s])
  Iteration #2(32->32)...(143.36[ms], 33.7042[GFLOPS], 0.468114[GB/s])
  Iteration #3(32->64)...(271.268[ms], 35.6241[GFLOPS], 0.371084[GB/s])
  Iteration #4(64->64)...(671.44[ms], 28.7849[GFLOPS], 0.199895[GB/s])
  [...]

  $ waifu2x-converter-cpp --processor 1 -i miku_CC_BY-NC_noisy.jpg
  Unresolved symbol: _Z14__gen_ocl_fmaxff
  Aborting...
  Caller instruction:
    %call.i.630 = tail call float @_Z14__gen_ocl_fmaxff(float %add807, float
0.000000e+00) #6
  Callee function:

  ; Function Attrs: nounwind readnone
  declare spir_func float @_Z14__gen_ocl_fmaxff(float, float) #1

  Unresolved symbol: _Z14__gen_ocl_fminff
  Aborting...
  Caller instruction:
    %call.i.631 = tail call float @_Z14__gen_ocl_fminff(float %add807, float
0.000000e+00) #6
  Callee function:

  ; Function Attrs: nounwind readnone
  declare spir_func float @_Z14__gen_ocl_fminff(float, float) #1

  Unresolved symbol: _Z14__gen_ocl_fmaxff
  Aborting...
  Caller instruction:
    %call.i.632 = tail call float @_Z14__gen_ocl_fmaxff(float %add818, float
0.000000e+00) #6
  Callee function:

  ; Function Attrs: nounwind readnone
  declare spir_func float @_Z14__gen_ocl_fmaxff(float, float) #1

  Unresolved symbol: _Z14__gen_ocl_fminff
  Aborting...
  Caller instruction:
    %call.i.633 = tail call float @_Z14__gen_ocl_fminff(float %add818, float
0.000000e+00) #6
  Callee function:

  ; Function Attrs: nounwind readnone
  declare spir_func float @_Z14__gen_ocl_fminff(float, float) #1

  Unresolved symbol: _Z14__gen_ocl_fmaxff
  Aborting...
  Caller instruction:
    %call.i.634 = tail call float @_Z14__gen_ocl_fmaxff(float %add831, float
0.000000e+00) #6
  Callee function:

  ; Function Attrs: nounwind readnone
  declare spir_func float @_Z14__gen_ocl_fmaxff(float, float) #1

  Unresolved symbol: _Z14__gen_ocl_fminff
  Aborting...
  Caller instruction:
    %call.i.635 = tail call float @_Z14__gen_ocl_fminff(float %add831, float
0.000000e+00) #6
  Callee function:

  ; Function Attrs: nounwind readnone
  declare spir_func float @_Z14__gen_ocl_fminff(float, float) #1

  Unresolved symbol: _Z14__gen_ocl_fmaxff
  Aborting...
  Caller instruction:
    %call.i.636 = tail call float @_Z14__gen_ocl_fmaxff(float %add844, float
0.000000e+00) #6
  Callee function:

  ; Function Attrs: nounwind readnone
  declare spir_func float @_Z14__gen_ocl_fmaxff(float, float) #1

  Unresolved symbol: _Z14__gen_ocl_fminff
  Aborting...
  Caller instruction:
    %call.i.637 = tail call float @_Z14__gen_ocl_fminff(float %add844, float
0.000000e+00) #6
  Callee function:

  ; Function Attrs: nounwind readnone
  declare spir_func float @_Z14__gen_ocl_fminff(float, float) #1

  Unresolved symbol: _Z14__gen_ocl_fmaxff
  Aborting...
  Caller instruction:
    %call.i.638 = tail call float @_Z14__gen_ocl_fmaxff(float %add857, float
0.000000e+00) #6
  Callee function:

  ; Function Attrs: nounwind readnone
  declare spir_func float @_Z14__gen_ocl_fmaxff(float, float) #1

  Unresolved symbol: _Z14__gen_ocl_fminff
  Aborting...
  Caller instruction:
    %call.i.639 = tail call float @_Z14__gen_ocl_fminff(float %add857, float
0.000000e+00) #6
  Callee function:

  ; Function Attrs: nounwind readnone
  declare spir_func float @_Z14__gen_ocl_fminff(float, float) #1

  Unresolved symbol: _Z14__gen_ocl_fmaxff
  Aborting...
  Caller instruction:
    %call.i.640 = tail call float @_Z14__gen_ocl_fmaxff(float %add870, float
0.000000e+00) #6
  Callee function:

  ; Function Attrs: nounwind readnone
  declare spir_func float @_Z14__gen_ocl_fmaxff(float, float) #1

  Unresolved symbol: _Z14__gen_ocl_fminff
  Aborting...
  Caller instruction:
    %call.i.641 = tail call float @_Z14__gen_ocl_fminff(float %add870, float
0.000000e+00) #6
  Callee function:

  ; Function Attrs: nounwind readnone
  declare spir_func float @_Z14__gen_ocl_fminff(float, float) #1

  Unresolved symbol: _Z14__gen_ocl_fmaxff
  Aborting...
  Caller instruction:
    %call.i.642 = tail call float @_Z14__gen_ocl_fmaxff(float %add883, float
0.000000e+00) #6
  Callee function:

  ; Function Attrs: nounwind readnone
  declare spir_func float @_Z14__gen_ocl_fmaxff(float, float) #1

  Unresolved symbol: _Z14__gen_ocl_fminff
  Aborting...
  Caller instruction:
    %call.i.643 = tail call float @_Z14__gen_ocl_fminff(float %add883, float
0.000000e+00) #6
  Callee function:

  ; Function Attrs: nounwind readnone
  declare spir_func float @_Z14__gen_ocl_fminff(float, float) #1

  Unresolved symbol: _Z14__gen_ocl_fmaxff
  Aborting...
  Caller instruction:
    %call.i.644 = tail call float @_Z14__gen_ocl_fmaxff(float %add896, float
0.000000e+00) #6
  Callee function:

  ; Function Attrs: nounwind readnone
  declare spir_func float @_Z14__gen_ocl_fmaxff(float, float) #1

  Unresolved symbol: _Z14__gen_ocl_fminff
  Aborting...
  Caller instruction:
    %call.i.645 = tail call float @_Z14__gen_ocl_fminff(float %add896, float
0.000000e+00) #6
  Callee function:

  ; Function Attrs: nounwind readnone
  declare spir_func float @_Z14__gen_ocl_fminff(float, float) #1

  Unresolved symbol: _Z14__gen_ocl_fmaxff
  Aborting...
  Unresolved symbol: _Z14__gen_ocl_fminff
  Aborting...
  Unresolved symbol: _Z14__gen_ocl_fmaxff
  Aborting...
  Unresolved symbol: _Z14__gen_ocl_fminff
  Aborting...
  Unresolved symbol: _Z14__gen_ocl_fmaxff
  Aborting...
  Unresolved symbol: _Z14__gen_ocl_fminff
  Aborting...
  Unresolved symbol: _Z14__gen_ocl_fmaxff
  Aborting...
  Unresolved symbol: _Z14__gen_ocl_fminff
  Aborting...
  Unresolved symbol: _Z14__gen_ocl_fmaxff
  Aborting...
  Unresolved symbol: _Z14__gen_ocl_fminff
  Aborting...
  Unresolved symbol: _Z14__gen_ocl_fmaxff
  Aborting...
  Unresolved symbol: _Z14__gen_ocl_fminff
  Aborting...
  Unresolved symbol: _Z14__gen_ocl_fmaxff
  Aborting...
  Unresolved symbol: _Z14__gen_ocl_fminff
  Aborting...
  Unresolved symbol: _Z14__gen_ocl_fmaxff
  Aborting...
  Unresolved symbol: _Z14__gen_ocl_fminff
  Aborting...

  $ pkg install -qy beignet ffmpeg
  $ fetch
http://demo-uhd3d.com/files/uhd4k/Samsung_UHD_7Wonders_of_the_World_Italy.ts
  $ ffmpeg -hide_banner -i /p/Samsung_UHD_7Wonders_of_the_World_Italy.ts
-x264opts opencl:opencl-device=0 -codec:v libx264 -y /tmp/a.mp4
  [mpegts @ 0x80ac7a000] start time for stream 1 is not set in
estimate_timings_from_pts
  [mpegts @ 0x80ac7a000] Could not find codec parameters for stream 1 (Audio:
aac ([15][0][0][0] / 0x000F), 0 channels, fltp): unspecified sample rate
  Consider increasing the value for the 'analyzeduration' and 'probesize'
options
  Input #0, mpegts, from '/p/Samsung_UHD_7Wonders_of_the_World_Italy.ts':
    Duration: 00:02:12.28, start: 1.050044, bitrate: 51922 kb/s
    Program 1
      Stream #0:0[0x101]: Video: hevc (Main 10) ([36][0][0][0] / 0x0024),
yuv420p10le(tv), 3840x2160 [SAR 1:1 DAR 16:9], 59.94 fps, 59.94 tbr, 90k tbn,
59.94 tbc
      Stream #0:1[0x102](und): Audio: aac ([15][0][0][0] / 0x000F), 0 channels,
fltp
  [libx264 @ 0x80ac18d00] using SAR=1/1
  [libx264 @ 0x80ac18d00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
AVX FMA3 AVX2 LZCNT BMI2
  [libx264 @ 0x80ac18d00] OpenCL acceleration enabled with Intel Intel(R) HD
Graphics Skylake Desktop GT2
  [libx264 @ 0x80ac18d00] Compiling OpenCL kernels...
  Unresolved symbol: _Z23__gen_ocl_write_imageui11ocl_image2dDv2_iDv4_j
  Aborting...
  Unresolved symbol: _Z23__gen_ocl_write_imageui11ocl_image2dDv2_iDv4_j
  Aborting...
  While deleting: <4 x i32> %
  Use still stuck around after Def is destroyed:  tail call void
@_Z23__gen_ocl_write_imageui11ocl_image2dDv2_iDv4_j(%opencl.image2d_t.0
addrspace(1)* %fenc_img, <2 x i32> %vecinit6, <4 x i32> <badref>) #10
  Assertion failed: (use_empty() && "Uses remain when a value is destroyed!"),
function ~Value, file
/usr/ports/devel/llvm37/work/llvm-3.7.1.src/lib/IR/Value.cpp, line 82.

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


More information about the freebsd-x11 mailing list