<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body><span class="vcard"><a class="email" href="mailto:nixscripter@gmail.com" title="nixscripter@gmail.com">nixscripter@gmail.com</a>
</span> changed
          <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [r600g]ImageMagick issues in Gaussian Blur kernel"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=99488">bug 99488</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Summary</td>
           <td>[r600g]OpenCL driver causes ImageMagick to hang on JPEG input in Gaussian Blur kernel
           </td>
           <td>[r600g]ImageMagick issues in Gaussian Blur kernel
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [r600g]ImageMagick issues in Gaussian Blur kernel"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=99488#c13">Comment # 13</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [r600g]ImageMagick issues in Gaussian Blur kernel"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=99488">bug 99488</a>
              from <span class="vcard"><a class="email" href="mailto:nixscripter@gmail.com" title="nixscripter@gmail.com">nixscripter@gmail.com</a>
</span></b>
        <pre>I have updated the bug's title to expand the scope in order to continue work on
the assert.

With my debug build and that patch, I can now run the ImageMagick self-tests
and easily replicate the assert. Here is the easiest way:

1. Before you configure ImageMagick set the CFLAGS environment variable to "-O
-ggdb".
2. Build ImageMagick with "make".
3. Run "make check" to build all the self-tests (it's not done by default).
4. From the top level of the source tree, run "bash
test/tests/validate-formats-memory.tap".

This is the output you will see:

[... snip ...]
  test 856: XWD/Undefined/TrueColor/12-bits... pass
  test 857: XWD/Undefined/TrueColor/16-bits... pass
lt-validate:
/home/admin/Software/r600/llvm-svn/src/llvm/include/llvm/MC/MCRegisterInfo.h:64:
unsigned int llvm::MCRegisterClass::getRegister(unsigned int) const: Assertion
`i < getNumRegs() && "Register number out of range!"' failed.
  test 858: YUV/Undefined/TrueColor/8-bits

That last test is where the issue is.

Here is the backtrace (now that I have debug symbols for everything):

(gdb) bt
#0  0x00000381c351c04f in raise () from /usr/lib/libc.so.6
#1  0x00000381c351d47a in abort () from /usr/lib/libc.so.6
#2  0x00000381c3514ea7 in __assert_fail_base () from /usr/lib/libc.so.6
#3  0x00000381c3514f52 in __assert_fail () from /usr/lib/libc.so.6
#4  0x00000381ac85cd47 in llvm::MCRegisterClass::getRegister (
    i=<optimized out>, this=<optimized out>)
    at
/home/admin/Software/r600/llvm-svn/src/llvm/include/llvm/MC/MCRegisterInfo.h:64
#5  llvm::TargetRegisterClass::getRegister (this=<optimized out>, 
    i=<optimized out>)
    at
/home/admin/Software/r600/llvm-svn/src/llvm/include/llvm/Target/TargetRegisterInfo.h:81
#6  0x00000381adc07b0c in llvm::TargetRegisterClass::getRegister (
    this=<optimized out>, i=<optimized out>)
    at
/home/admin/Software/r600/llvm-svn/src/llvm/include/llvm/MC/MCRegisterInfo.h:64
#7  llvm::R600InstrInfo::buildIndirectRead (this=this@entry=0x1a29020, 
    MBB=0x1aae9a0, I=I@entry=..., ValueReg=1611, Address=<optimized out>, 
    OffsetReg=OffsetReg@entry=1621, AddrChan=2)
    at
/home/admin/Software/r600/llvm-svn/src/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp:1156
#8  0x00000381adc07f6a in llvm::R600InstrInfo::expandPostRAPseudo (
    this=0x1a29020, MI=...)
    at
/home/admin/Software/r600/llvm-svn/src/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp:1070 
#9  0x00000381acb1bc7b in (anonymous
namespace)::ExpandPostRA::runOnMachineFunction (this=0xcc6b10, MF=...)          
    at
/home/admin/Software/r600/llvm-svn/src/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp:200 
#10 0x00000381acc03ea4 in llvm::MachineFunctionPass::runOnFunction (            
    this=0xcc6b10, F=...)                                                       
    at
/home/admin/Software/r600/llvm-svn/src/llvm/lib/CodeGen/MachineFunctionPass.cpp:62 
#11 0x00000381aca54caf in llvm::FPPassManager::runOnFunction (this=0xbfd9d0,    
    F=...)                                                                      
    at
/home/admin/Software/r600/llvm-svn/src/llvm/lib/IR/LegacyPassManager.cpp:1513   
#12 0x00000381aca54d5c in llvm::FPPassManager::runOnModule (this=0xbfd9d0,      
    M=...)                                                                      
    at
/home/admin/Software/r600/llvm-svn/src/llvm/lib/IR/LegacyPassManager.cpp:1534   
#13 0x00000381aca55930 in (anonymous namespace)::MPPassManager::runOnModule (   
    M=..., this=<optimized out>)                                                
    at
/home/admin/Software/r600/llvm-svn/src/llvm/lib/IR/LegacyPassManager.cpp:1590   
#14 llvm::legacy::PassManagerImpl::run (this=0x1b04d20, M=...)                  
    at
/home/admin/Software/r600/llvm-svn/src/llvm/lib/IR/LegacyPassManager.cpp:1693
#15 0x00000381afb7e4ec in (anonymous namespace)::emit_code(llvm::Module&,
clover::llvm::target const&, llvm::TargetMachine::CodeGenFileType,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
<span class="quote">>&) ()</span >
   from /usr/lib/libMesaOpenCL.so.1
#16 0x00000381afb7eb50 in clover::llvm::build_module_native(llvm::Module&,
clover::llvm::target const&, clang::CompilerInstance const&,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
<span class="quote">>&) ()</span >
   from /usr/lib/libMesaOpenCL.so.1
#17 0x00000381afb7ad5d in
clover::llvm::link_program(std::vector<clover::module,
std::allocator<clover::module> > const&, pipe_shader_ir,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
const&, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >&) ()
   from /usr/lib/libMesaOpenCL.so.1
#18 0x00000381afb6b9a1 in
clover::program::link(clover::ref_vector<clover::device> const&,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
const&, clover::ref_vector<clover::program> const&) ()
   from /usr/lib/libMesaOpenCL.so.1
#19 0x00000381afb494ec in clBuildProgram () from /usr/lib/libMesaOpenCL.so.1
#20 0x00000381b15bb50b in clBuildProgram () from /usr/lib/libOpenCL.so
#21 0x00000381c4213f12 in CompileOpenCLKernel (exception=0xac7490, 
    signature=<optimized out>, 
    options=0x3d8f0b54500 "-cl-single-precision-constant -cl-mad-enable
-DMAGICKCORE_HDRI_SUPPORT=1 -DCLQuantum=float -DCLSignedQuantum=float
-DCLPixelType=float4 -DQuantumRange=65535.000000f -DQuantumScale=0.000015
-DCharQuant"..., 
    kernel=<optimized out>, device=0xac5760) at MagickCore/opencl.c:1361
#22 HasOpenCLDevices (clEnv=clEnv@entry=0xac4d50, 
    exception=exception@entry=0xac7490) at MagickCore/opencl.c:2104
#23 0x00000381c4215327 in InitializeOpenCL (clEnv=clEnv@entry=0xac4d50, 
    exception=exception@entry=0xac7490) at MagickCore/opencl.c:2321
#24 0x00000381c411c19b in getOpenCLEnvironment (
    exception=exception@entry=0xac7490) at MagickCore/accelerate.c:223
#25 0x00000381c411d729 in AccelerateBlurImage (image=image@entry=0xb250d0, 
    radius=radius@entry=10, sigma=sigma@entry=3.5, 
    exception=exception@entry=0xac7490) at MagickCore/accelerate.c:773
#26 0x00000381c41afa48 in BlurImage (image=image@entry=0xb250d0, 
    radius=radius@entry=10, sigma=sigma@entry=3.5, 
    exception=exception@entry=0xac7490) at MagickCore/effect.c:789
#27 0x00000381c421392c in RunOpenCLBenchmark (is_cpu=is_cpu@entry=MagickFalse)
    at MagickCore/opencl.c:1048
#28 0x00000381c4215aa3 in RunDeviceBenckmark (device=0xac5760, 
    testEnv=0xac4d50, clEnv=0xa729d0) at MagickCore/opencl.c:1088
#29 BenchmarkOpenCLDevices (clEnv=0xa729d0) at MagickCore/opencl.c:1177
#30 AutoSelectOpenCLDevices (clEnv=0xa729d0) at MagickCore/opencl.c:975
#31 InitializeOpenCL (clEnv=clEnv@entry=0xa729d0, 
    exception=exception@entry=0x98b990) at MagickCore/opencl.c:2328
#32 0x00000381c411c19b in getOpenCLEnvironment (
    exception=exception@entry=0x98b990) at MagickCore/accelerate.c:223
#33 0x00000381c4124a45 in AccelerateResizeImage (image=image@entry=0xa72c50, 
    resizedColumns=resizedColumns@entry=70, resizedRows=resizedRows@entry=46, 
    resizeFilter=resizeFilter@entry=0xa71bf0, 
    exception=exception@entry=0x98b990) at MagickCore/accelerate.c:4430
#34 0x00000381c4274c9f in ResizeImage (image=image@entry=0xa72c50, 
    columns=columns@entry=70, rows=rows@entry=46, 
    filter=filter@entry=TriangleFilter, exception=exception@entry=0x98b990)
    at MagickCore/resize.c:2877
#35 0x00000381b17d11f4 in WriteYUVImage (image_info=0xa67840, image=0xa72c50, 
    exception=0x98b990) at coders/yuv.c:649
#36 0x00000381c416bcb2 in WriteImage (image_info=image_info@entry=0x98ca10, 
    image=image@entry=0xa72c50, exception=exception@entry=0x98b990)
    at MagickCore/constitute.c:1114
#37 0x00000000004021bb in ValidateImageFormatsInMemory (
    image_info=image_info@entry=0x98ca10, 
    reference_filename=reference_filename@entry=0x3d8f0b5abb0
"/tmp/magick-308288PpulFoRmPFl", 
    output_filename=output_filename@entry=0x3d8f0b5bbb0
"/tmp/magick-30828ayJzZh43jT2f", fail=fail@entry=0x3d8f0b5aba8,
exception=exception@entry=0x98b990)
    at tests/validate.c:1623
#38 0x000000000040548a in main (argc=<optimized out>, argv=<optimized out>)
    at tests/validate.c:2629</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>