10 Replies Latest reply on Jul 24, 2014 12:45 AM by pinform

    result image from SimpleImage sample has artifacts

    snoukkis

      Hi!

       

      I started learning OpenCL two days ago in Java with LJWGL. I loosely based by learning project program after the SimpleImage example that came with AMD-APP-SDK-v2.8-Windows-64. It does the same thing: just loads the image and writes it back unchanged. I got everything working, kind of...

       

      ... except very often when I run it, it crashes the display driver with the following error message:

      "Display driver stopped responding and has recovered

      Display driver AMD driver stopped responding and has successfully recovered."

       

      And in addition the result image sometimes contains artifacts, even sometimes when the driver doesn't crash.

       

      After countless hours of frustrating debugging I discovered that the original precompiled SimpleImage.exe has the same EXACT crash/artifact problem.

       

      Here's the output:

      SimpleImage_Output.bmp

       

      The exact pattern of artifacts varies. Sometimes it's just strange lines, but mostly similar to the image above.

       

      EDIT: When comparing multiple images with artifacts, I noticed that those random errors seem to reoccur in the same 8x8 pixel areas. Actually there seems to be two distinct configurations of those error boxes where those errors may or may not occur. Not sure what that means. Maybe those boxes correspond to some constant areas on GPU die that are faulty? I'm not a hardware expert though.

       

      My environment:

      - Intel Lynnfield Core i7 860 CPU

      - Radeon HD 7950

      - Windows 7 64-bit

      - Catalyst 13.1

      - VS 2010

      - AMD-APP-SDK-v2.8-Windows-64

      - Java 7 32-bit & 64-bit + LWJGL 2.8.4

       

      So the problem is  easily reproducible with the precompiled binary and self compiled 32-bit/64-bit release/debug binaries as well as with the similar Java program I made.

       

      So what do you think? Hardware problem? Those sure look similar to the graphics artifacts that I saw in my distant youth when I was still playing around with too aggressive overclocking. Then again I haven't ever overclocked this GPU and this really isn't a 3D graphics application. In games I've had a little bit too much crashing problems over the year that I've owned this GPU. Though not so much that I would have consider it out of ordinary until now. Not with what I've come to expect from Windows and games in general.

       

      Or could it be a driver problem? Anyone seen something similar before? I'll make a point of trying different versions of SDK and Catalyst once I've handled more pressing education duties.

       

      Any other ideas?

        • Re: result image from SimpleImage sample has artifacts
          himanshu.gautam

          Can you post what all DLLs are loaded and from what location for the executable. Also are you running the SimpleGL.exe that comes with APP SDK, or is it something in LWjGL?

            • Re: result image from SimpleImage sample has artifacts
              snoukkis

              No, not SimpleGL. I mean SimpleImage. It comes with APP SDK 2.8.

               

              Project:

              %UserProfile%\Documents\AMD APP\samples\opencl\cl\app\SimpleImage

               

              Precompiled binary:

              %UserProfile%\Documents\AMD APP\samples\opencl\bin\x86_64\SimpleImage.exe

              %UserProfile%\Documents\AMD APP\samples\opencl\bin\x86\SimpleImage.exe

               

              Basically it just creates input and output images with clCreateImage (OpenCL 1.2). Then the kernel just copies the input image to output image unmodified. Despite this, the output image is not equal to the input, it has those artifacts in it sometimes.

               

              I additionally created another custom application in Java with LWJGL that is loosely based on the SimpleImage sample. I mentioned both to highlight the fact that the problem occurs in many applications across different programming languages.

               

               

              I looked into the loaded DLL:s.

               

              By default the 32-bit version loads:

              C:\Windows\SysWOW64\OpenCL.dll (1.2.10.0)

              C:\Windows\SysWOW64\amdocl.dll (10.0.1084.4)

              and the 64-bit version loads:

              C:\Windows\System32\OpenCL.dll (1.2.10.0)

              C:\Windows\System32\amdocl64.dll (10.0.1084.4)

               

              When I tried renaming those files it seems to load older versions from the SDK installation.

              32-bit:

              C:\Program Files (x86)\AMD APP\bin\x86\OpenCL.dll (1.2.1.0)

              C:\Program Files (x86)\AMD APP\bin\x86\amdocl.dll (10.0.1016.4)

              64-bit:

              C:\Program Files (x86)\AMD APP\bin\x86_64\amdocl64.dll (10.0.1016.4)

              C:\Program Files (x86)\AMD APP\bin\x86_64\OpenCL.dll (1.2.1.0)

               

              Not sure why they are different. In any case when I tested, the older versions have the same behavior. It still crashes/has artifacts sometimes.